@vertexvis/viewer-toolkit-react 0.0.2-canary.3 → 0.0.2-canary.5
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.
- package/dist/bundle.cjs.js +148 -137
- package/dist/bundle.cjs.js.map +1 -1
- package/dist/bundle.esm.js +143 -133
- package/dist/bundle.esm.js.map +1 -1
- package/dist/components/common/resizable-content.d.ts +3 -2
- package/dist/components/context-menu/menu-items/__tests__/ghost-selected-menu-item.spec.d.ts +1 -0
- package/dist/components/context-menu/menu-items/__tests__/unghost-selected-menu-item.spec.d.ts +1 -0
- package/dist/components/context-menu/menu-items/ghost-selected-menu-item.d.ts +1 -0
- package/dist/components/context-menu/menu-items/unghost-selected-menu-item.d.ts +1 -0
- package/dist/components/scene-tree/vertex-scene-tree-header.d.ts +5 -0
- package/dist/components/viewer/__tests__/camera-type-menu.spec.d.ts +1 -0
- package/dist/components/viewer/camera-type-menu.d.ts +9 -0
- package/dist/components/viewer/vertex-viewer.d.ts +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/state/context-menu/actions.d.ts +2 -2
- package/dist/state/keybinding/default-keybindings.d.ts +1 -0
- package/dist/state/keybinding/index.d.ts +1 -0
- package/dist/state/viewer/camera/actions.d.ts +2 -0
- package/dist/state/viewer/camera/camera.d.ts +2 -0
- package/dist/state/viewer/camera/index.d.ts +1 -0
- package/dist/state/viewer/scene/item-operations.d.ts +3 -4
- package/package.json +16 -11
package/dist/bundle.cjs.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var tslib = require('tslib');
|
|
3
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
4
5
|
var uiReact = require('@vertexvis/ui-react');
|
|
5
6
|
var classNames = require('classnames');
|
|
@@ -9,6 +10,7 @@ var geometry = require('@vertexvis/geometry');
|
|
|
9
10
|
var utils = require('@vertexvis/utils');
|
|
10
11
|
var React = require('react');
|
|
11
12
|
var viewerReact = require('@vertexvis/viewer-react');
|
|
13
|
+
var loader$1 = require('@vertexvis/ui/loader');
|
|
12
14
|
var loader = require('@vertexvis/viewer/loader');
|
|
13
15
|
|
|
14
16
|
function _interopNamespaceDefault(e) {
|
|
@@ -31,11 +33,12 @@ function _interopNamespaceDefault(e) {
|
|
|
31
33
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
|
32
34
|
|
|
33
35
|
const DEFAULT_VERTICAL_SCALE = 1;
|
|
34
|
-
const VertexResizableContent = (
|
|
35
|
-
|
|
36
|
-
const
|
|
36
|
+
const VertexResizableContent = (_a) => {
|
|
37
|
+
var { className, style, displayShadow, heading, id, initialScale, placement = 'left', children, onResize } = _a, uiProps = tslib.__rest(_a, ["className", "style", "displayShadow", "heading", "id", "initialScale", "placement", "children", "onResize"]);
|
|
38
|
+
const isHorizontallyPositioned = placement === 'left' || placement === 'right';
|
|
39
|
+
const isVerticallyPositioned = placement === 'top';
|
|
37
40
|
function getHorizontalResizeDirection() {
|
|
38
|
-
switch (
|
|
41
|
+
switch (placement) {
|
|
39
42
|
case 'left':
|
|
40
43
|
return 'right';
|
|
41
44
|
case 'right':
|
|
@@ -45,23 +48,22 @@ const VertexResizableContent = ({ displayShadow, heading, id, initialScale, posi
|
|
|
45
48
|
}
|
|
46
49
|
}
|
|
47
50
|
function getVerticalResizeDirection() {
|
|
48
|
-
return
|
|
51
|
+
return placement === 'top' ? 'top' : 'none';
|
|
49
52
|
}
|
|
50
53
|
const initialVerticalScale = initialScale != null ? initialScale : DEFAULT_VERTICAL_SCALE;
|
|
51
|
-
return (jsxRuntime.jsx(uiReact.VertexResizable, { id: id, "data-testid": `resizable-content-position-${
|
|
52
|
-
['border-r min-w-75 max-w-half']:
|
|
53
|
-
['sidebar-shadow-right']:
|
|
54
|
-
['border-l right-0 relative']:
|
|
55
|
-
['sidebar-shadow-left']:
|
|
56
|
-
['border-t bottom-0 fixed']:
|
|
54
|
+
return (jsxRuntime.jsx(uiReact.VertexResizable, Object.assign({ id: id, "data-testid": `resizable-content-position-${placement}`, className: classNames(className, 'pointer-events-auto z-popover md:z-overlay bg-white bg-opacity-95 flex-grow-0 flex-shrink-0 border-neutral-300', {
|
|
55
|
+
['border-r min-w-75 max-w-half']: placement === 'left',
|
|
56
|
+
['sidebar-shadow-right']: placement === 'left' && displayShadow,
|
|
57
|
+
['border-l right-0 relative']: placement === 'right',
|
|
58
|
+
['sidebar-shadow-left']: placement === 'right' && displayShadow,
|
|
59
|
+
['border-t bottom-0 fixed']: placement === 'top',
|
|
57
60
|
['min-h-12 sheet']: isVerticallyPositioned,
|
|
58
|
-
}), style: {
|
|
61
|
+
}), style: Object.assign({
|
|
59
62
|
// This corrects an issue on mobile where `100vh` reflects the space
|
|
60
63
|
// under the address bar and bottom toolbar in CSS.
|
|
61
|
-
maxHeight:
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
}), children: children })] }) }));
|
|
64
|
+
maxHeight: placement === 'top' ? window.innerHeight : undefined }, style), initialHorizontalScale: isHorizontallyPositioned ? initialScale : undefined, initialVerticalScale: isVerticallyPositioned ? initialVerticalScale : undefined, horizontalDirection: getHorizontalResizeDirection(), verticalDirection: getVerticalResizeDirection(), position: placement === 'right' || placement === 'top' ? 'absolute' : 'relative', onResizeEnd: () => onResize === null || onResize === void 0 ? void 0 : onResize() }, uiProps, { children: jsxRuntime.jsxs("div", { className: "flex flex-col h-full w-full", children: [jsxRuntime.jsx("div", { className: "flex justify-center w-full", children: jsxRuntime.jsx("div", { className: "block md:hidden w-20 h-0.5 mt-0.5 bg-neutral-600 rounded" }) }), heading, jsxRuntime.jsx("div", { className: classNames('w-full flex flex-col h-0 flex-grow', {
|
|
65
|
+
['right-0']: placement === 'right',
|
|
66
|
+
}), children: children })] }) })));
|
|
65
67
|
};
|
|
66
68
|
|
|
67
69
|
function contextMenuItemIsRow(item) {
|
|
@@ -93,40 +95,6 @@ const contextMenuActivePosition = recoil.selector({
|
|
|
93
95
|
get: ({ get }) => get(contextMenuActive) != null ? get(contextMenuPosition) : undefined,
|
|
94
96
|
});
|
|
95
97
|
|
|
96
|
-
/******************************************************************************
|
|
97
|
-
Copyright (c) Microsoft Corporation.
|
|
98
|
-
|
|
99
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
|
100
|
-
purpose with or without fee is hereby granted.
|
|
101
|
-
|
|
102
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
|
103
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
|
104
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
|
105
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
|
106
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
107
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
108
|
-
PERFORMANCE OF THIS SOFTWARE.
|
|
109
|
-
***************************************************************************** */
|
|
110
|
-
/* global Reflect, Promise, SuppressedError, Symbol, Iterator */
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
function __rest(s, e) {
|
|
114
|
-
var t = {};
|
|
115
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
116
|
-
t[p] = s[p];
|
|
117
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
118
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
119
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
120
|
-
t[p[i]] = s[p[i]];
|
|
121
|
-
}
|
|
122
|
-
return t;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
126
|
-
var e = new Error(message);
|
|
127
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
128
|
-
};
|
|
129
|
-
|
|
130
98
|
// Create a new logger instance
|
|
131
99
|
const pinoLogger = Pino({
|
|
132
100
|
formatters: {
|
|
@@ -234,7 +202,7 @@ function useActionCallback(fn, deps = []) {
|
|
|
234
202
|
*/
|
|
235
203
|
function retainSnapshot(fn) {
|
|
236
204
|
return (_a) => {
|
|
237
|
-
var { snapshot } = _a, cb = __rest(_a, ["snapshot"]);
|
|
205
|
+
var { snapshot } = _a, cb = tslib.__rest(_a, ["snapshot"]);
|
|
238
206
|
return async (...args) => {
|
|
239
207
|
const release = snapshot.retain();
|
|
240
208
|
try {
|
|
@@ -363,9 +331,17 @@ function useViewerCameraActions() {
|
|
|
363
331
|
},
|
|
364
332
|
}));
|
|
365
333
|
}),
|
|
334
|
+
updateCameraType: useActionCallback(({ set }) => (type) => {
|
|
335
|
+
set(viewerCameraType, type);
|
|
336
|
+
}),
|
|
366
337
|
};
|
|
367
338
|
}
|
|
368
339
|
|
|
340
|
+
const viewerCameraType = recoil.atom({
|
|
341
|
+
key: 'viewerCameraType',
|
|
342
|
+
default: 'perspective',
|
|
343
|
+
});
|
|
344
|
+
|
|
369
345
|
class CrossSectionInteractionHandler {
|
|
370
346
|
constructor() {
|
|
371
347
|
this.interactionStarted = false;
|
|
@@ -1005,22 +981,20 @@ var index$2 = /*#__PURE__*/Object.freeze({
|
|
|
1005
981
|
|
|
1006
982
|
function useContextMenuActions() {
|
|
1007
983
|
return {
|
|
1008
|
-
pointerDown: useActionCallback(({ set }) => async (event
|
|
1009
|
-
var _a, _b;
|
|
984
|
+
pointerDown: useActionCallback(({ set }) => async (event) => {
|
|
1010
985
|
if (event.button === 2) {
|
|
1011
|
-
const xCoordinate =
|
|
1012
|
-
const yCoordinate =
|
|
986
|
+
const xCoordinate = event.clientX;
|
|
987
|
+
const yCoordinate = event === null || event === void 0 ? void 0 : event.clientY;
|
|
1013
988
|
set(contextMenuPosition, geometry.Point.create(xCoordinate, yCoordinate));
|
|
1014
989
|
set(contextMenuTarget, event.target);
|
|
1015
990
|
}
|
|
1016
991
|
}),
|
|
1017
|
-
pointerUp: useActionCallback(({ snapshot, set }) => async (event, type, predicate, onOpen
|
|
1018
|
-
var _a, _b;
|
|
992
|
+
pointerUp: useActionCallback(({ snapshot, set }) => async (event, type, predicate, onOpen) => {
|
|
1019
993
|
const downPosition = await snapshot.getPromise(contextMenuPosition);
|
|
1020
994
|
const active = await snapshot.getPromise(contextMenuActive);
|
|
1021
995
|
if (downPosition != null && active == null) {
|
|
1022
|
-
const xCoordinate =
|
|
1023
|
-
const yCoordinate =
|
|
996
|
+
const xCoordinate = event.clientX;
|
|
997
|
+
const yCoordinate = event === null || event === void 0 ? void 0 : event.clientY;
|
|
1024
998
|
const point = geometry.Point.create(xCoordinate, yCoordinate);
|
|
1025
999
|
const pointDistance = downPosition != null ? geometry.Point.distance(downPosition, point) : 0;
|
|
1026
1000
|
const predicateResult = predicate == null || predicate(event);
|
|
@@ -1322,6 +1296,18 @@ const useKeyBindings = ({ keydownRepeatInterval = 25, keydownIgnorePredicate = i
|
|
|
1322
1296
|
}, [state.applyBindings, state.lastPressed]);
|
|
1323
1297
|
};
|
|
1324
1298
|
|
|
1299
|
+
function useDefaultKeybindings() {
|
|
1300
|
+
useApplyKeyBinding({
|
|
1301
|
+
fn: useActionCallback(({ snapshot }) => async () => {
|
|
1302
|
+
const sceneProvider = await snapshot.getPromiseRequired(viewerSceneProvider);
|
|
1303
|
+
const animation = { milliseconds: 500 };
|
|
1304
|
+
const scene = await sceneProvider();
|
|
1305
|
+
await (scene === null || scene === void 0 ? void 0 : scene.camera().viewAll().render({ animation }));
|
|
1306
|
+
}),
|
|
1307
|
+
keyBind: 'f',
|
|
1308
|
+
});
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1325
1311
|
function useLongPress({ target, callback, delay = 500, onMovement, }) {
|
|
1326
1312
|
const [longPressTimeout, setLongPressTimeout] = React__namespace.useState();
|
|
1327
1313
|
const [touchStartPosition, setTouchStartPosition] = React__namespace.useState();
|
|
@@ -1368,6 +1354,7 @@ const VertexContextMenu = ({ targetElement, menuType, disableBackdrop, openPredi
|
|
|
1368
1354
|
const activeContextMenu = recoil.useRecoilValue(contextMenuActive);
|
|
1369
1355
|
const activePosition = recoil.useRecoilValue(contextMenuActivePosition);
|
|
1370
1356
|
const fallbackPlacements = React.useMemo(() => ['bottom-end', 'top-start', 'top-end', 'right', 'left'], []);
|
|
1357
|
+
const isOpen = activeContextMenu === menuType;
|
|
1371
1358
|
useStackKeyBinding({
|
|
1372
1359
|
id: 'ContextMenu',
|
|
1373
1360
|
keyBind: 'Escape',
|
|
@@ -1409,26 +1396,10 @@ const VertexContextMenu = ({ targetElement, menuType, disableBackdrop, openPredi
|
|
|
1409
1396
|
}, [disableBackdrop, menuType, activeContextMenu]);
|
|
1410
1397
|
React.useEffect(() => {
|
|
1411
1398
|
const handlePointerDown = (event) => {
|
|
1412
|
-
|
|
1413
|
-
const pointerEvent = event;
|
|
1414
|
-
const targetElement = target;
|
|
1415
|
-
const boundingBox = targetElement != null
|
|
1416
|
-
? targetElement.getBoundingClientRect()
|
|
1417
|
-
: undefined;
|
|
1418
|
-
const xCoordinate = pointerEvent.clientX - ((_a = boundingBox === null || boundingBox === void 0 ? void 0 : boundingBox.x) !== null && _a !== void 0 ? _a : 0);
|
|
1419
|
-
const yCoordinate = pointerEvent.clientY - ((_b = boundingBox === null || boundingBox === void 0 ? void 0 : boundingBox.y) !== null && _b !== void 0 ? _b : 0);
|
|
1420
|
-
contextMenuActions.pointerDown(pointerEvent, geometry.Point.create(xCoordinate, yCoordinate));
|
|
1399
|
+
contextMenuActions.pointerDown(event);
|
|
1421
1400
|
};
|
|
1422
1401
|
const handlePointerUp = (event) => {
|
|
1423
|
-
|
|
1424
|
-
const pointerEvent = event;
|
|
1425
|
-
const targetElement = target;
|
|
1426
|
-
const boundingBox = targetElement != null
|
|
1427
|
-
? targetElement.getBoundingClientRect()
|
|
1428
|
-
: undefined;
|
|
1429
|
-
const xCoordinate = pointerEvent.clientX - ((_a = boundingBox === null || boundingBox === void 0 ? void 0 : boundingBox.x) !== null && _a !== void 0 ? _a : 0);
|
|
1430
|
-
const yCoordinate = pointerEvent.clientY - ((_b = boundingBox === null || boundingBox === void 0 ? void 0 : boundingBox.y) !== null && _b !== void 0 ? _b : 0);
|
|
1431
|
-
contextMenuActions.pointerUp(event, menuType, openPredicate, onOpen, geometry.Point.create(xCoordinate, yCoordinate));
|
|
1402
|
+
contextMenuActions.pointerUp(event, menuType, openPredicate, onOpen);
|
|
1432
1403
|
};
|
|
1433
1404
|
const handleContextMenu = (event) => contextMenuActions.contextMenu(event, openPredicate);
|
|
1434
1405
|
target === null || target === void 0 ? void 0 : target.addEventListener('pointerdown', handlePointerDown);
|
|
@@ -1440,7 +1411,9 @@ const VertexContextMenu = ({ targetElement, menuType, disableBackdrop, openPredi
|
|
|
1440
1411
|
target === null || target === void 0 ? void 0 : target.removeEventListener('contextmenu', handleContextMenu);
|
|
1441
1412
|
};
|
|
1442
1413
|
}, [targetElement, menuType, openPredicate]);
|
|
1443
|
-
return (jsxRuntime.jsx(uiReact.VertexMenu, {
|
|
1414
|
+
return (jsxRuntime.jsx(uiReact.VertexMenu, { className: classNames({
|
|
1415
|
+
hidden: !isOpen,
|
|
1416
|
+
}), "data-testid": `${menuType}-context-menu`, open: isOpen, position: activePosition, fallbackPlacements: fallbackPlacements, backdrop: !disableBackdrop, onMenuClosed: () => {
|
|
1444
1417
|
contextMenuActions.clearActiveContextMenu();
|
|
1445
1418
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
1446
1419
|
}, children: jsxRuntime.jsx("div", { className: "pt-1", children: children }) }));
|
|
@@ -1723,66 +1696,63 @@ const VertexFlyToMenuItem = () => {
|
|
|
1723
1696
|
}, disabled: currentItem == null, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "paper-airplane", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Fly To" })] }));
|
|
1724
1697
|
};
|
|
1725
1698
|
|
|
1726
|
-
function useSceneItemsOperations(
|
|
1699
|
+
function useSceneItemsOperations() {
|
|
1700
|
+
const viewer = recoil.useRecoilValue(viewerElement);
|
|
1727
1701
|
const sceneItemsOperation = React.useCallback(async (f, ids) => {
|
|
1728
|
-
const scene = await (
|
|
1702
|
+
const scene = await (viewer === null || viewer === void 0 ? void 0 : viewer.scene());
|
|
1729
1703
|
if (ids == null) {
|
|
1730
1704
|
await (scene === null || scene === void 0 ? void 0 : scene.items((op) => f(op.where((q) => q.all()))).execute());
|
|
1731
1705
|
}
|
|
1732
1706
|
else if (ids.length > 0) {
|
|
1733
1707
|
await (scene === null || scene === void 0 ? void 0 : scene.items((op) => f(op.where((q) => q.withItemIds(ids)))).execute());
|
|
1734
1708
|
}
|
|
1735
|
-
}, [
|
|
1736
|
-
useApplyKeyBinding({
|
|
1737
|
-
fn: React.useCallback(async () => {
|
|
1738
|
-
const animation = { milliseconds: 500 };
|
|
1739
|
-
const scene = await (viewerElement === null || viewerElement === void 0 ? void 0 : viewerElement.scene());
|
|
1740
|
-
await (scene === null || scene === void 0 ? void 0 : scene.camera().viewAll().render({ animation }));
|
|
1741
|
-
}, [viewerElement]),
|
|
1742
|
-
keyBind: 'f',
|
|
1743
|
-
});
|
|
1709
|
+
}, [viewer]);
|
|
1744
1710
|
const showOnlySelected = React.useCallback(async () => {
|
|
1745
|
-
const scene = await (
|
|
1711
|
+
const scene = await (viewer === null || viewer === void 0 ? void 0 : viewer.scene());
|
|
1746
1712
|
scene === null || scene === void 0 ? void 0 : scene.items((op) => [
|
|
1747
1713
|
op.where((q) => q.all()).hide(),
|
|
1748
1714
|
op.where((q) => q.withSelected()).show(),
|
|
1749
1715
|
]).execute();
|
|
1750
|
-
}, [
|
|
1716
|
+
}, [viewer]);
|
|
1751
1717
|
const hideSelected = React.useCallback(async () => {
|
|
1752
|
-
const scene = await (
|
|
1718
|
+
const scene = await (viewer === null || viewer === void 0 ? void 0 : viewer.scene());
|
|
1753
1719
|
scene === null || scene === void 0 ? void 0 : scene.items((op) => [op.where((q) => q.withSelected()).hide()]).execute();
|
|
1754
|
-
}, [
|
|
1720
|
+
}, [viewer]);
|
|
1755
1721
|
const showOnlyItem = React.useCallback(async (id) => {
|
|
1756
|
-
const scene = await (
|
|
1722
|
+
const scene = await (viewer === null || viewer === void 0 ? void 0 : viewer.scene());
|
|
1757
1723
|
scene === null || scene === void 0 ? void 0 : scene.items((op) => [
|
|
1758
1724
|
op.where((q) => q.all()).hide(),
|
|
1759
1725
|
op.where((q) => q.withItemIds([id])).show(),
|
|
1760
1726
|
]).execute();
|
|
1761
|
-
}, [
|
|
1727
|
+
}, [viewer]);
|
|
1728
|
+
const ghostSelected = React.useCallback(async () => {
|
|
1729
|
+
const scene = await (viewer === null || viewer === void 0 ? void 0 : viewer.scene());
|
|
1730
|
+
scene === null || scene === void 0 ? void 0 : scene.items((op) => [op.where((q) => q.withSelected()).setPhantom(true)]).execute();
|
|
1731
|
+
}, [viewer]);
|
|
1732
|
+
const unGhostSelected = React.useCallback(async () => {
|
|
1733
|
+
const scene = await (viewer === null || viewer === void 0 ? void 0 : viewer.scene());
|
|
1734
|
+
scene === null || scene === void 0 ? void 0 : scene.items((op) => [op.where((q) => q.withSelected()).setPhantom(false)]).execute();
|
|
1735
|
+
}, [viewer]);
|
|
1762
1736
|
return {
|
|
1763
1737
|
sceneItemsOperation,
|
|
1764
1738
|
showOnlySelected,
|
|
1765
1739
|
hideSelected,
|
|
1766
1740
|
showOnlyItem,
|
|
1741
|
+
ghostSelected,
|
|
1742
|
+
unGhostSelected,
|
|
1767
1743
|
};
|
|
1768
1744
|
}
|
|
1769
1745
|
|
|
1770
1746
|
const VertexHideAllMenuItem = () => {
|
|
1771
|
-
const
|
|
1772
|
-
const sceneItemOperations = useSceneItemsOperations({
|
|
1773
|
-
viewerElement: viewerHTMLElement !== null && viewerHTMLElement !== void 0 ? viewerHTMLElement : null,
|
|
1774
|
-
});
|
|
1747
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1775
1748
|
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "hide-all-menu-option", onClick: () => {
|
|
1776
1749
|
sceneItemOperations.sceneItemsOperation((builder) => builder.hide());
|
|
1777
1750
|
}, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "visibility-hidden", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Hide All Parts" })] }));
|
|
1778
1751
|
};
|
|
1779
1752
|
|
|
1780
1753
|
const VertexHidePartMenuItem = () => {
|
|
1781
|
-
const viewerHTMLElement = recoil.useRecoilValue(viewerElement);
|
|
1782
1754
|
const currentItem = recoil.useRecoilValue(contextMenuItem);
|
|
1783
|
-
const sceneItemOperations = useSceneItemsOperations(
|
|
1784
|
-
viewerElement: viewerHTMLElement !== null && viewerHTMLElement !== void 0 ? viewerHTMLElement : null,
|
|
1785
|
-
});
|
|
1755
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1786
1756
|
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "hide-menu-option", onClick: () => {
|
|
1787
1757
|
var _a;
|
|
1788
1758
|
const isRow = contextMenuItemIsRow(currentItem);
|
|
@@ -1794,30 +1764,21 @@ const VertexHidePartMenuItem = () => {
|
|
|
1794
1764
|
};
|
|
1795
1765
|
|
|
1796
1766
|
const VertexHideSelectedMenuItem = () => {
|
|
1797
|
-
const viewerHTMLElement = recoil.useRecoilValue(viewerElement);
|
|
1798
1767
|
const selectedItems = recoil.useRecoilValue(selectionSelectedItemIds);
|
|
1799
|
-
const sceneItemOperations = useSceneItemsOperations(
|
|
1800
|
-
viewerElement: viewerHTMLElement !== null && viewerHTMLElement !== void 0 ? viewerHTMLElement : null,
|
|
1801
|
-
});
|
|
1768
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1802
1769
|
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "hide-selected-menu-option", onClick: () => sceneItemOperations.hideSelected(), disabled: selectedItems.length === 0, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "visibility-hidden", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Hide Selected" })] }));
|
|
1803
1770
|
};
|
|
1804
1771
|
|
|
1805
1772
|
const VertexShowAllMenuItem = () => {
|
|
1806
|
-
const
|
|
1807
|
-
const sceneItemOperations = useSceneItemsOperations({
|
|
1808
|
-
viewerElement: viewerHTMLElement !== null && viewerHTMLElement !== void 0 ? viewerHTMLElement : null,
|
|
1809
|
-
});
|
|
1773
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1810
1774
|
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "show-all-menu-option", onClick: () => {
|
|
1811
1775
|
sceneItemOperations.sceneItemsOperation((builder) => builder.show());
|
|
1812
1776
|
}, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "visibility-visible", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Show All Parts" })] }));
|
|
1813
1777
|
};
|
|
1814
1778
|
|
|
1815
1779
|
const VertexShowOnlyMenuItem = () => {
|
|
1816
|
-
const viewerHTMLElement = recoil.useRecoilValue(viewerElement);
|
|
1817
1780
|
const currentItem = recoil.useRecoilValue(contextMenuItem);
|
|
1818
|
-
const sceneItemOperations = useSceneItemsOperations(
|
|
1819
|
-
viewerElement: viewerHTMLElement !== null && viewerHTMLElement !== void 0 ? viewerHTMLElement : null,
|
|
1820
|
-
});
|
|
1781
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1821
1782
|
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "show-only-menu-option", onClick: () => {
|
|
1822
1783
|
var _a;
|
|
1823
1784
|
const isRow = contextMenuItemIsRow(currentItem);
|
|
@@ -1829,11 +1790,8 @@ const VertexShowOnlyMenuItem = () => {
|
|
|
1829
1790
|
};
|
|
1830
1791
|
|
|
1831
1792
|
const VertexShowOnlySelectedMenuItem = () => {
|
|
1832
|
-
const viewerHTMLElement = recoil.useRecoilValue(viewerElement);
|
|
1833
1793
|
const selectedItems = recoil.useRecoilValue(selectionSelectedItemIds);
|
|
1834
|
-
const sceneItemOperations = useSceneItemsOperations(
|
|
1835
|
-
viewerElement: viewerHTMLElement !== null && viewerHTMLElement !== void 0 ? viewerHTMLElement : null,
|
|
1836
|
-
});
|
|
1794
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1837
1795
|
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "show-only-selected-menu-option", onClick: () => sceneItemOperations.showOnlySelected(), disabled: selectedItems.length === 0, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "visibility-visible", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Show Only Selected" })] }));
|
|
1838
1796
|
};
|
|
1839
1797
|
|
|
@@ -1914,8 +1872,20 @@ function useSceneTreeActions() {
|
|
|
1914
1872
|
};
|
|
1915
1873
|
}
|
|
1916
1874
|
|
|
1875
|
+
const VertexGhostSelectedMenuItem = () => {
|
|
1876
|
+
const selectedItems = recoil.useRecoilValue(selectionSelectedItemIds);
|
|
1877
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1878
|
+
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "ghost-selected-menu-option", onClick: () => sceneItemOperations.ghostSelected(), disabled: selectedItems.length === 0, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "visibility-partial", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Ghost Selected" })] }));
|
|
1879
|
+
};
|
|
1880
|
+
|
|
1881
|
+
const VertexUnghostSelectedMenuItem = () => {
|
|
1882
|
+
const selectedItems = recoil.useRecoilValue(selectionSelectedItemIds);
|
|
1883
|
+
const sceneItemOperations = useSceneItemsOperations();
|
|
1884
|
+
return (jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "unghost-selected-menu-option", onClick: () => sceneItemOperations.unGhostSelected(), disabled: selectedItems.length === 0, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", name: "visibility-visible", size: "sm" }), jsxRuntime.jsx("div", { className: "pl-2", children: "Unghost Selected" })] }));
|
|
1885
|
+
};
|
|
1886
|
+
|
|
1917
1887
|
const DefaultSceneTreeContextMenu = () => {
|
|
1918
|
-
return (jsxRuntime.jsxs("div", { className: "w-56", children: [jsxRuntime.jsx(VertexHideSelectedMenuItem, {}), jsxRuntime.jsx(VertexHideAllMenuItem, {}), jsxRuntime.jsx(VertexShowOnlyMenuItem, {}), jsxRuntime.jsx(VertexShowOnlySelectedMenuItem, {}), jsxRuntime.jsx(VertexShowAllMenuItem, {}), jsxRuntime.jsx(
|
|
1888
|
+
return (jsxRuntime.jsxs("div", { className: "w-56", children: [jsxRuntime.jsx(VertexHideSelectedMenuItem, {}), jsxRuntime.jsx(VertexHideAllMenuItem, {}), jsxRuntime.jsx(VertexShowOnlyMenuItem, {}), jsxRuntime.jsx(VertexShowOnlySelectedMenuItem, {}), jsxRuntime.jsx(VertexShowAllMenuItem, {}), jsxRuntime.jsx(VertexGhostSelectedMenuItem, {}), jsxRuntime.jsx(VertexUnghostSelectedMenuItem, {}), jsxRuntime.jsx(uiReact.VertexMenuDivider, {}), jsxRuntime.jsx(VertexFitSelectedMenuItem, {}), jsxRuntime.jsx(VertexFlyToMenuItem, {})] }));
|
|
1919
1889
|
};
|
|
1920
1890
|
|
|
1921
1891
|
const VertexSceneTreeContextMenu = ({ children, }) => {
|
|
@@ -1929,7 +1899,7 @@ const VertexSceneTreeContextMenu = ({ children, }) => {
|
|
|
1929
1899
|
};
|
|
1930
1900
|
|
|
1931
1901
|
const DefaultViewerContextMenu = () => {
|
|
1932
|
-
return (jsxRuntime.jsxs("div", { className: "w-56", children: [jsxRuntime.jsx(VertexHidePartMenuItem, {}), jsxRuntime.jsx(VertexHideSelectedMenuItem, {}), jsxRuntime.jsx(VertexHideAllMenuItem, {}), jsxRuntime.jsx(VertexShowOnlyMenuItem, {}), jsxRuntime.jsx(VertexShowOnlySelectedMenuItem, {}), jsxRuntime.jsx(VertexShowAllMenuItem, {}), jsxRuntime.jsx(
|
|
1902
|
+
return (jsxRuntime.jsxs("div", { className: "w-56", children: [jsxRuntime.jsx(VertexHidePartMenuItem, {}), jsxRuntime.jsx(VertexHideSelectedMenuItem, {}), jsxRuntime.jsx(VertexHideAllMenuItem, {}), jsxRuntime.jsx(VertexShowOnlyMenuItem, {}), jsxRuntime.jsx(VertexShowOnlySelectedMenuItem, {}), jsxRuntime.jsx(VertexShowAllMenuItem, {}), jsxRuntime.jsx(VertexGhostSelectedMenuItem, {}), jsxRuntime.jsx(VertexUnghostSelectedMenuItem, {}), jsxRuntime.jsx(uiReact.VertexMenuDivider, {}), jsxRuntime.jsx(VertexFitSelectedMenuItem, {}), jsxRuntime.jsx(VertexFlyToMenuItem, {})] }));
|
|
1933
1903
|
};
|
|
1934
1904
|
|
|
1935
1905
|
const VertexViewerContextMenu = ({ children }) => {
|
|
@@ -2003,6 +1973,11 @@ function VertexSceneTreeToolbar() {
|
|
|
2003
1973
|
return (jsxRuntime.jsx(viewerReact.VertexSceneTreeToolbar, { className: "h-10 border-b border-neutral-300 box-border", children: jsxRuntime.jsxs("div", { className: "flex flex-shrink-0 w-full text-neutral-700 items-center gap mx-2", children: [jsxRuntime.jsx(VertexSceneTreeExpandAll, {}), jsxRuntime.jsx(VertexSceneTreeCollapseAll, {})] }) }));
|
|
2004
1974
|
}
|
|
2005
1975
|
|
|
1976
|
+
const VertexSceneTreeHeader = ({ children }) => {
|
|
1977
|
+
const hasDefinedChildren = children != null && children !== false;
|
|
1978
|
+
return (jsxRuntime.jsx("div", { slot: "header", className: "flex flex-col", children: hasDefinedChildren ? (children) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(viewerReact.VertexSceneTreeSearch, { className: "border-b border-neutral-300" }), jsxRuntime.jsx(VertexSceneTreeToolbar, {})] })) }));
|
|
1979
|
+
};
|
|
1980
|
+
|
|
2006
1981
|
const DEFAULT_NAME_COLUMN = {
|
|
2007
1982
|
binding: '{{row.node.name}}',
|
|
2008
1983
|
label: 'Name',
|
|
@@ -2082,7 +2057,7 @@ const VertexSceneTreeTableLayout = (sdkProps) => {
|
|
|
2082
2057
|
};
|
|
2083
2058
|
|
|
2084
2059
|
const VertexSceneTree = (_a) => {
|
|
2085
|
-
var { id, font, backgroundColors, children, style, onPointerDown, onClick, onToggleSelection, onToggleExpansion, onToggleVisibility, className, rowData } = _a, sdkProps = __rest(_a, ["id", "font", "backgroundColors", "children", "style", "onPointerDown", "onClick", "onToggleSelection", "onToggleExpansion", "onToggleVisibility", "className", "rowData"]);
|
|
2060
|
+
var { id, font, backgroundColors, children, style, onPointerDown, onClick, onToggleSelection, onToggleExpansion, onToggleVisibility, className, rowData } = _a, sdkProps = tslib.__rest(_a, ["id", "font", "backgroundColors", "children", "style", "onPointerDown", "onClick", "onToggleSelection", "onToggleExpansion", "onToggleVisibility", "className", "rowData"]);
|
|
2086
2061
|
const config = recoil.useRecoilValue(sdkConfig);
|
|
2087
2062
|
const selectionActions = useSelectionActions();
|
|
2088
2063
|
const sceneTreeActions = useSceneTreeActions();
|
|
@@ -2090,6 +2065,7 @@ const VertexSceneTree = (_a) => {
|
|
|
2090
2065
|
const callbackRef = useRecoilRef({
|
|
2091
2066
|
state: sceneTreeElement,
|
|
2092
2067
|
});
|
|
2068
|
+
const hasDefinedChildren = children != null && children !== false;
|
|
2093
2069
|
const wrappedExpansionHandler = (event, node, tree) => {
|
|
2094
2070
|
sceneTreeActions.toggleExpansion(event, node, tree);
|
|
2095
2071
|
onToggleExpansion === null || onToggleExpansion === void 0 ? void 0 : onToggleExpansion(event, node, tree);
|
|
@@ -2114,13 +2090,13 @@ const VertexSceneTree = (_a) => {
|
|
|
2114
2090
|
}
|
|
2115
2091
|
onPointerDown === null || onPointerDown === void 0 ? void 0 : onPointerDown(event);
|
|
2116
2092
|
};
|
|
2117
|
-
return (jsxRuntime.jsx("div", { className:
|
|
2093
|
+
return (jsxRuntime.jsx("div", { className: classNames('flex flex-col w-full h-full', className), children: jsxRuntime.jsx("div", { className: "flex group h-full", children: jsxRuntime.jsx(viewerReact.VertexSceneTree, Object.assign({ id: id !== null && id !== void 0 ? id : 'vertex-scene-tree', "data-testid": "vertex-scene-tree", config: config, ref: callbackRef, className: "flex-1", style: Object.assign(Object.assign(Object.assign({}, styleFromOptionalFont(font)), styleFromOptionalBackgroundColors(backgroundColors)), style), onConnectionError: (e) => {
|
|
2118
2094
|
logger.error('Scene Tree Connection Error: ', e.detail);
|
|
2119
2095
|
}, viewer: viewer, onPointerDown: handlePointerDown, onClick: handleClick, rowData: (row) => {
|
|
2120
2096
|
var _a;
|
|
2121
2097
|
const providedRowData = (_a = rowData === null || rowData === void 0 ? void 0 : rowData(row)) !== null && _a !== void 0 ? _a : {};
|
|
2122
2098
|
return Object.assign({ handleExpansion: wrappedExpansionHandler, handleSelection: wrappedSelectionHandler, handleVisibility: wrappedVisibilityHandler }, providedRowData);
|
|
2123
|
-
} }, sdkProps, { children: [jsxRuntime.jsx(
|
|
2099
|
+
} }, sdkProps, { children: hasDefinedChildren ? (children) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(VertexSceneTreeHeader, {}), jsxRuntime.jsx(VertexSceneTreeTableLayout, {}), jsxRuntime.jsx(VertexSceneTreeContextMenu, {})] })) })) }) }));
|
|
2124
2100
|
};
|
|
2125
2101
|
|
|
2126
2102
|
const useSynchronizedProp = (state, value) => {
|
|
@@ -2131,7 +2107,7 @@ const useSynchronizedProp = (state, value) => {
|
|
|
2131
2107
|
};
|
|
2132
2108
|
|
|
2133
2109
|
const VertexPopupButton = (_a) => {
|
|
2134
|
-
var { open, children } = _a, uiProps = __rest(_a, ["open", "children"]);
|
|
2110
|
+
var { open, children } = _a, uiProps = tslib.__rest(_a, ["open", "children"]);
|
|
2135
2111
|
const anchor = children.find((c) => c.type === Anchor);
|
|
2136
2112
|
const others = children.filter((c) => c.type !== Anchor);
|
|
2137
2113
|
if (anchor == null) {
|
|
@@ -2147,7 +2123,7 @@ const Anchor = ({ tooltipContent, children }) => {
|
|
|
2147
2123
|
VertexPopupButton.Anchor = Anchor;
|
|
2148
2124
|
|
|
2149
2125
|
const VertexSlider = (_a) => {
|
|
2150
|
-
var { value, defaultValue, onChange, onValueChange, onValueInput } = _a, uiProps = __rest(_a, ["value", "defaultValue", "onChange", "onValueChange", "onValueInput"]);
|
|
2126
|
+
var { value, defaultValue, onChange, onValueChange, onValueInput } = _a, uiProps = tslib.__rest(_a, ["value", "defaultValue", "onChange", "onValueChange", "onValueInput"]);
|
|
2151
2127
|
const [displayedValue, setDisplayedValue] = React.useState(defaultValue);
|
|
2152
2128
|
return (jsxRuntime.jsx(uiReact.VertexSlider, Object.assign({ className: "w-52 mx-2 items-center", value: value !== null && value !== void 0 ? value : displayedValue, onValueChange: (e) => {
|
|
2153
2129
|
setDisplayedValue(e.detail.value);
|
|
@@ -2487,8 +2463,33 @@ const BoxSelectionTool = () => {
|
|
|
2487
2463
|
return (jsxRuntime.jsx(viewerReact.VertexViewerBoxQueryTool, { ref: callback, "data-testid": "viewer-box-query-tool", operationType: operationType }));
|
|
2488
2464
|
};
|
|
2489
2465
|
|
|
2466
|
+
function VertexViewerCameraTypeMenu({ open, onOpen, onDismiss, onCameraTypeChange, }) {
|
|
2467
|
+
const cameraActions = useViewerCameraActions();
|
|
2468
|
+
const cameraType = recoil.useRecoilValue(viewerCameraType);
|
|
2469
|
+
return (jsxRuntime.jsxs(uiReact.VertexMenu, { "data-testid": "camera-types-popover", className: "flex", placement: "bottom-end", open: open, onMenuClosed: onDismiss, children: [jsxRuntime.jsx("div", { slot: "anchor", children: jsxRuntime.jsx("div", { className: classNames('flex bg-white hover:opacity-100 hover:text-neutral-700 hover:bg-neutral-200 rounded', {
|
|
2470
|
+
'opacity-70 text-neutral-900': !open,
|
|
2471
|
+
'opacity-100 text-neutral-700 bg-neutral-200': open,
|
|
2472
|
+
}), children: jsxRuntime.jsx(uiReact.VertexTooltip, { content: "Change View", children: jsxRuntime.jsx(uiReact.VertexIconButton, { "data-testid": "set-camera-mode-option", className: "p-1 cursor-pointer", variant: "plain", onClick: onOpen, iconName: cameraType === 'orthographic'
|
|
2473
|
+
? 'cube-orthographic'
|
|
2474
|
+
: 'cube-perspective', children: jsxRuntime.jsx(uiReact.VertexIcon, { "data-testid": "change-camera-type-icon-button", name: "chevron-down", size: "sm" }) }) }) }) }), jsxRuntime.jsxs("div", { className: "w-36", children: [jsxRuntime.jsx("div", { className: "pt-1" }), jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "set-perspective-view", onClick: () => {
|
|
2475
|
+
cameraActions.updateCameraType('perspective');
|
|
2476
|
+
onCameraTypeChange === null || onCameraTypeChange === void 0 ? void 0 : onCameraTypeChange('perspective');
|
|
2477
|
+
}, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", "data-testid": "set-perspective-view-icon", name: "cube-perspective", size: "sm", className: classNames({
|
|
2478
|
+
'text-[var(--vertex-ui-blue-700)]': cameraType === 'perspective',
|
|
2479
|
+
}) }), jsxRuntime.jsx("div", { className: classNames('ml-2 items-center', {
|
|
2480
|
+
'text-[var(--vertex-ui-blue-700)]': cameraType === 'perspective',
|
|
2481
|
+
}), children: "Perspective" })] }), jsxRuntime.jsxs(uiReact.VertexMenuItem, { "data-testid": "set-orthographic-view", onClick: () => {
|
|
2482
|
+
cameraActions.updateCameraType('orthographic');
|
|
2483
|
+
onCameraTypeChange === null || onCameraTypeChange === void 0 ? void 0 : onCameraTypeChange('orthographic');
|
|
2484
|
+
}, children: [jsxRuntime.jsx(uiReact.VertexIcon, { slot: "icon", "data-testid": "set-orthographic-view-icon", name: "cube-orthographic", size: "sm", className: classNames({
|
|
2485
|
+
'text-[var(--vertex-ui-blue-700)]': cameraType === 'orthographic',
|
|
2486
|
+
}) }), jsxRuntime.jsx("div", { className: classNames('ml-2 items-center', {
|
|
2487
|
+
'text-[var(--vertex-ui-blue-700)]': cameraType === 'orthographic',
|
|
2488
|
+
}), children: "Orthographic" })] })] })] }));
|
|
2489
|
+
}
|
|
2490
|
+
|
|
2490
2491
|
const VertexViewerViewCube = (_a) => {
|
|
2491
|
-
var { placement, children } = _a, sdkProps = __rest(_a, ["placement", "children"]);
|
|
2492
|
+
var { placement, children } = _a, sdkProps = tslib.__rest(_a, ["placement", "children"]);
|
|
2492
2493
|
const childrenAsArray = Array.isArray(children)
|
|
2493
2494
|
? children
|
|
2494
2495
|
: [children];
|
|
@@ -2496,26 +2497,34 @@ const VertexViewerViewCube = (_a) => {
|
|
|
2496
2497
|
.filter((c) => !React.isValidElement(c) || c.type !== viewerReact.VertexViewerViewCube)
|
|
2497
2498
|
.filter((c) => c != null && c !== false);
|
|
2498
2499
|
const viewCube = childrenAsArray.find((c) => React.isValidElement(c) && c.type === viewerReact.VertexViewerViewCube);
|
|
2499
|
-
|
|
2500
|
+
const [cameraMenuOpen, setCameraMenuOpen] = React.useState(false);
|
|
2501
|
+
return (jsxRuntime.jsxs(viewerReact.VertexViewerToolbar, { direction: "vertical", "data-testid": "view-cube-toolbar", placement: placement !== null && placement !== void 0 ? placement : 'top-right', children: [viewCube !== null && viewCube !== void 0 ? viewCube : jsxRuntime.jsx(viewerReact.VertexViewerViewCube, Object.assign({ className: "m-7" }, sdkProps)), definedChildrenWithoutViewCube.length === 0 ? (jsxRuntime.jsxs("div", { className: "flex items-center justify-center mt-3 gap-1", children: [jsxRuntime.jsx(VertexViewerSceneReset, {}), jsxRuntime.jsx(VertexViewerCameraTypeMenu, { open: cameraMenuOpen, onDismiss: () => setCameraMenuOpen(false), onOpen: () => setCameraMenuOpen(true) })] })) : (jsxRuntime.jsx("div", { className: "mt-3", children: definedChildrenWithoutViewCube }))] }));
|
|
2500
2502
|
};
|
|
2501
2503
|
|
|
2502
2504
|
const VertexViewer = (_a) => {
|
|
2503
|
-
var { id, disableSelection, onTap, onLongpress, onFrameDrawn, viewerRefCallback, children } = _a, sdkProps = __rest(_a, ["id", "disableSelection", "onTap", "onLongpress", "onFrameDrawn", "viewerRefCallback", "children"]);
|
|
2505
|
+
var { id, className, disableSelection, onTap, onLongpress, onFrameDrawn, viewerRefCallback, children } = _a, sdkProps = tslib.__rest(_a, ["id", "className", "disableSelection", "onTap", "onLongpress", "onFrameDrawn", "viewerRefCallback", "children"]);
|
|
2504
2506
|
const config = recoil.useRecoilValue(sdkConfig);
|
|
2505
2507
|
const callbackRef = useRecoilRef({
|
|
2506
2508
|
state: viewerElement,
|
|
2507
2509
|
});
|
|
2508
|
-
const
|
|
2509
|
-
const [sceneReady, setSceneReady] = recoil.useRecoilState(viewerInitialSceneReady);
|
|
2510
|
-
const isBoxSelectionEnabled = recoil.useRecoilValue(boxSelectionEnabled);
|
|
2511
|
-
const viewerFrameActions = useViewerFrameActions();
|
|
2510
|
+
const cameraActions = useViewerCameraActions();
|
|
2512
2511
|
const hitActions = useHitActions();
|
|
2513
2512
|
const selectionActions = useSelectionActions();
|
|
2513
|
+
const viewerFrameActions = useViewerFrameActions();
|
|
2514
|
+
const [sceneReady, setSceneReady] = recoil.useRecoilState(viewerInitialSceneReady);
|
|
2515
|
+
const cameraType = recoil.useRecoilValue(viewerCameraType);
|
|
2516
|
+
const currentCrossSectionAlignment = recoil.useRecoilValue(crossSectioningAlignment);
|
|
2517
|
+
const isBoxSelectionEnabled = recoil.useRecoilValue(boxSelectionEnabled);
|
|
2514
2518
|
const hasDefinedChildren = children != null && children !== false;
|
|
2515
2519
|
useKeyBindings();
|
|
2516
|
-
|
|
2520
|
+
useDefaultKeybindings();
|
|
2521
|
+
return (jsxRuntime.jsxs(viewerReact.VertexViewer, Object.assign({ id: id !== null && id !== void 0 ? id : 'vertex-viewer', "data-testid": "vertex-viewer", ref: viewerRefCallback !== null && viewerRefCallback !== void 0 ? viewerRefCallback : callbackRef, className: classNames('flex w-full h-full', className, {
|
|
2517
2522
|
'cursor-crosshair': currentCrossSectionAlignment.hitPending,
|
|
2518
|
-
}), config: config,
|
|
2523
|
+
}), config: config, cameraType: sceneReady ? cameraType : undefined, onCameraTypeChanged: (e) => {
|
|
2524
|
+
if (sceneReady) {
|
|
2525
|
+
cameraActions.updateCameraType(e.detail);
|
|
2526
|
+
}
|
|
2527
|
+
}, onTap: (e) => {
|
|
2519
2528
|
const actions = [
|
|
2520
2529
|
...(disableSelection ? [] : [selectionActions.selectCurrentHit]),
|
|
2521
2530
|
];
|
|
@@ -2531,7 +2540,7 @@ const VertexViewer = (_a) => {
|
|
|
2531
2540
|
if (!sceneReady) {
|
|
2532
2541
|
setSceneReady(true);
|
|
2533
2542
|
}
|
|
2534
|
-
}, children: [isBoxSelectionEnabled && jsxRuntime.jsx(BoxSelectionTool, {}), hasDefinedChildren ? (children) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(VertexViewerViewCube, {}), jsxRuntime.jsx(VertexToolbar, {})] }))] })));
|
|
2543
|
+
}, children: [isBoxSelectionEnabled && jsxRuntime.jsx(BoxSelectionTool, {}), hasDefinedChildren ? (children) : (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(VertexViewerViewCube, {}), jsxRuntime.jsx(VertexToolbar, {}), jsxRuntime.jsx(VertexViewerContextMenu, {})] }))] })));
|
|
2535
2544
|
};
|
|
2536
2545
|
|
|
2537
2546
|
function toSdkConfig(config) {
|
|
@@ -2561,9 +2570,10 @@ const VertexViewerToolkitEventListener = ({ onHitStateChange, onSelectionStateCh
|
|
|
2561
2570
|
};
|
|
2562
2571
|
|
|
2563
2572
|
const VertexViewerToolkitRoot = (_a) => {
|
|
2564
|
-
var { override, children, config } = _a, eventWrapperProps = __rest(_a, ["override", "children", "config"]);
|
|
2573
|
+
var { override, children, config } = _a, eventWrapperProps = tslib.__rest(_a, ["override", "children", "config"]);
|
|
2565
2574
|
React.useEffect(() => {
|
|
2566
2575
|
loader.defineCustomElements();
|
|
2576
|
+
loader$1.defineCustomElements();
|
|
2567
2577
|
}, []);
|
|
2568
2578
|
return (jsxRuntime.jsx(recoil.RecoilRoot, { override: override, children: jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(VertexViewerToolkitEventListener, Object.assign({}, eventWrapperProps)), jsxRuntime.jsx(VertexViewerToolkitRootConfig, { config: config, children: children })] }) }));
|
|
2569
2579
|
};
|
|
@@ -2597,6 +2607,7 @@ exports.VertexResizableContent = VertexResizableContent;
|
|
|
2597
2607
|
exports.VertexRotateButton = VertexRotateButton;
|
|
2598
2608
|
exports.VertexSceneTree = VertexSceneTree;
|
|
2599
2609
|
exports.VertexSceneTreeContextMenu = VertexSceneTreeContextMenu;
|
|
2610
|
+
exports.VertexSceneTreeHeader = VertexSceneTreeHeader;
|
|
2600
2611
|
exports.VertexSceneTreeTableLayout = VertexSceneTreeTableLayout;
|
|
2601
2612
|
exports.VertexShowAllMenuItem = VertexShowAllMenuItem;
|
|
2602
2613
|
exports.VertexShowOnlyMenuItem = VertexShowOnlyMenuItem;
|