vim-web 0.5.0-dev.9 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/style.css +34 -7
- package/dist/types/core-viewers/shared/inputAdapter.d.ts +1 -0
- package/dist/types/core-viewers/shared/keyboardHandler.d.ts +1 -1
- package/dist/types/core-viewers/shared/mouseHandler.d.ts +3 -0
- package/dist/types/core-viewers/ultra/viewer.d.ts +5 -0
- package/dist/types/core-viewers/ultra/viewport.d.ts +6 -0
- package/dist/types/core-viewers/ultra/vim.d.ts +3 -1
- package/dist/types/core-viewers/webgl/loader/mesh.d.ts +3 -1
- package/dist/types/core-viewers/webgl/loader/progressive/insertableMesh.d.ts +4 -2
- package/dist/types/core-viewers/webgl/loader/progressive/instancedMesh.d.ts +5 -0
- package/dist/types/core-viewers/webgl/loader/vim.d.ts +5 -0
- package/dist/types/core-viewers/webgl/viewer/gizmos/markers/gizmoMarker.d.ts +1 -0
- package/dist/types/core-viewers/webgl/viewer/rendering/renderer.d.ts +7 -0
- package/dist/types/core-viewers/webgl/viewer/viewer.d.ts +5 -0
- package/dist/types/core-viewers/webgl/viewer/viewport.d.ts +1 -1
- package/dist/types/react-viewers/bim/bimPanel.d.ts +3 -3
- package/dist/types/react-viewers/controlbar/controlBarIds.d.ts +32 -36
- package/dist/types/react-viewers/errors/errorStyle.d.ts +1 -1
- package/dist/types/react-viewers/helpers/reactUtils.d.ts +2 -1
- package/dist/types/react-viewers/helpers/utils.d.ts +8 -0
- package/dist/types/react-viewers/panels/axesPanel.d.ts +2 -1
- package/dist/types/react-viewers/panels/index.d.ts +1 -0
- package/dist/types/react-viewers/panels/isolationPanel.d.ts +2 -0
- package/dist/types/react-viewers/panels/messageBox.d.ts +2 -0
- package/dist/types/react-viewers/panels/sidePanel.d.ts +1 -1
- package/dist/types/react-viewers/settings/anySettings.d.ts +7 -0
- package/dist/types/react-viewers/settings/index.d.ts +1 -1
- package/dist/types/react-viewers/settings/settingsInputBox.d.ts +4 -0
- package/dist/types/react-viewers/settings/settingsItem.d.ts +30 -0
- package/dist/types/react-viewers/settings/settingsKeys.d.ts +46 -0
- package/dist/types/react-viewers/settings/settingsPanel.d.ts +5 -4
- package/dist/types/react-viewers/settings/settingsPanelContent.d.ts +6 -0
- package/dist/types/react-viewers/settings/settingsState.d.ts +11 -11
- package/dist/types/react-viewers/settings/settingsStorage.d.ts +3 -3
- package/dist/types/react-viewers/settings/settingsSubtitle.d.ts +2 -0
- package/dist/types/react-viewers/settings/settingsToggle.d.ts +11 -0
- package/dist/types/react-viewers/state/controlBarState.d.ts +41 -7
- package/dist/types/react-viewers/state/sharedIsolation.d.ts +2 -0
- package/dist/types/react-viewers/ultra/controlBar.d.ts +4 -1
- package/dist/types/react-viewers/ultra/index.d.ts +1 -0
- package/dist/types/react-viewers/ultra/settings.d.ts +13 -0
- package/dist/types/react-viewers/ultra/settingsPanel.d.ts +5 -0
- package/dist/types/react-viewers/ultra/viewer.d.ts +3 -1
- package/dist/types/react-viewers/ultra/viewerRef.d.ts +3 -0
- package/dist/types/react-viewers/urls.d.ts +0 -1
- package/dist/types/react-viewers/webgl/index.d.ts +1 -0
- package/dist/types/react-viewers/webgl/loading.d.ts +2 -2
- package/dist/types/react-viewers/webgl/settings.d.ts +36 -0
- package/dist/types/react-viewers/webgl/settingsPanel.d.ts +12 -0
- package/dist/types/react-viewers/webgl/viewer.d.ts +3 -3
- package/dist/types/react-viewers/webgl/viewerRef.d.ts +12 -5
- package/dist/vim-web.iife.js +1384 -728
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +1384 -728
- package/dist/vim-web.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/react-viewers/settings/settings.d.ts +0 -61
package/dist/vim-web.iife.js
CHANGED
|
@@ -46785,6 +46785,11 @@ void main() {
|
|
|
46785
46785
|
* @param {boolean} isLegacy - Indicates whether the Vim object uses a legacy loading pipeline.
|
|
46786
46786
|
*/
|
|
46787
46787
|
constructor(header, document2, g3d2, scene, settings2, map, builder, source, format) {
|
|
46788
|
+
/**
|
|
46789
|
+
* The type of the viewer, indicating it is a WebGL viewer.
|
|
46790
|
+
* Useful for distinguishing between different viewer types in a multi-viewer application.
|
|
46791
|
+
*/
|
|
46792
|
+
__publicField(this, "type", "webgl");
|
|
46788
46793
|
/**
|
|
46789
46794
|
* Indicates whether the vim was opened from a vim or vimx file.
|
|
46790
46795
|
*/
|
|
@@ -48862,19 +48867,38 @@ void main() {
|
|
|
48862
48867
|
return new InsertableSubmesh(this, index2);
|
|
48863
48868
|
}
|
|
48864
48869
|
/**
|
|
48865
|
-
|
|
48866
|
-
|
|
48870
|
+
* Sets the material for this mesh.
|
|
48871
|
+
* Set to undefined to reset to original materials.
|
|
48872
|
+
*/
|
|
48867
48873
|
setMaterial(value) {
|
|
48868
|
-
if (this._material === value) return;
|
|
48869
48874
|
if (this.ignoreSceneMaterial) return;
|
|
48870
|
-
|
|
48875
|
+
const base = this._material;
|
|
48876
|
+
let mat;
|
|
48877
|
+
if (Array.isArray(value)) {
|
|
48878
|
+
mat = this._mergeMaterials(value, base);
|
|
48879
|
+
} else {
|
|
48880
|
+
mat = value ?? base;
|
|
48881
|
+
}
|
|
48882
|
+
this.mesh.material = mat;
|
|
48871
48883
|
this.mesh.geometry.clearGroups();
|
|
48872
|
-
if (
|
|
48873
|
-
|
|
48884
|
+
if (Array.isArray(mat)) {
|
|
48885
|
+
mat.forEach((_m, i2) => {
|
|
48874
48886
|
this.mesh.geometry.addGroup(0, Infinity, i2);
|
|
48875
48887
|
});
|
|
48876
48888
|
}
|
|
48877
48889
|
}
|
|
48890
|
+
_mergeMaterials(value, base) {
|
|
48891
|
+
const baseArr = Array.isArray(base) ? base : [base];
|
|
48892
|
+
const result = [];
|
|
48893
|
+
for (const v of value) {
|
|
48894
|
+
if (v === void 0) {
|
|
48895
|
+
result.push(...baseArr);
|
|
48896
|
+
} else {
|
|
48897
|
+
result.push(v);
|
|
48898
|
+
}
|
|
48899
|
+
}
|
|
48900
|
+
return result;
|
|
48901
|
+
}
|
|
48878
48902
|
}
|
|
48879
48903
|
class InstancedSubmesh {
|
|
48880
48904
|
constructor(mesh, index2) {
|
|
@@ -48961,17 +48985,39 @@ void main() {
|
|
|
48961
48985
|
}
|
|
48962
48986
|
return submeshes;
|
|
48963
48987
|
}
|
|
48988
|
+
/**
|
|
48989
|
+
* Sets the material for this mesh.
|
|
48990
|
+
* Set to undefined to reset to original materials.
|
|
48991
|
+
*/
|
|
48964
48992
|
setMaterial(value) {
|
|
48965
|
-
if (this._material === value) return;
|
|
48966
48993
|
if (this.ignoreSceneMaterial) return;
|
|
48967
|
-
|
|
48994
|
+
const base = this._material;
|
|
48995
|
+
let mat;
|
|
48996
|
+
if (Array.isArray(value)) {
|
|
48997
|
+
mat = this._mergeMaterials(value, base);
|
|
48998
|
+
} else {
|
|
48999
|
+
mat = value ?? base;
|
|
49000
|
+
}
|
|
49001
|
+
this.mesh.material = mat;
|
|
48968
49002
|
this.mesh.geometry.clearGroups();
|
|
48969
|
-
if (
|
|
48970
|
-
|
|
49003
|
+
if (Array.isArray(mat)) {
|
|
49004
|
+
mat.forEach((_m, i2) => {
|
|
48971
49005
|
this.mesh.geometry.addGroup(0, Infinity, i2);
|
|
48972
49006
|
});
|
|
48973
49007
|
}
|
|
48974
49008
|
}
|
|
49009
|
+
_mergeMaterials(value, base) {
|
|
49010
|
+
const baseArr = Array.isArray(base) ? base : [base];
|
|
49011
|
+
const result = [];
|
|
49012
|
+
for (const v of value) {
|
|
49013
|
+
if (v === void 0) {
|
|
49014
|
+
result.push(...baseArr);
|
|
49015
|
+
} else {
|
|
49016
|
+
result.push(v);
|
|
49017
|
+
}
|
|
49018
|
+
}
|
|
49019
|
+
return result;
|
|
49020
|
+
}
|
|
48975
49021
|
computeBoundingBoxes() {
|
|
48976
49022
|
this.mesh.geometry.computeBoundingBox();
|
|
48977
49023
|
const boxes = new Array(this.mesh.count);
|
|
@@ -50111,6 +50157,9 @@ void main() {
|
|
|
50111
50157
|
get index() {
|
|
50112
50158
|
return this._submesh.index;
|
|
50113
50159
|
}
|
|
50160
|
+
get isRoom() {
|
|
50161
|
+
return false;
|
|
50162
|
+
}
|
|
50114
50163
|
/**
|
|
50115
50164
|
* Updates the underlying submesh and rebinds all attributes to the new mesh.
|
|
50116
50165
|
* @param mesh - The new submesh to bind to this marker.
|
|
@@ -52597,7 +52646,11 @@ void main() {
|
|
|
52597
52646
|
* @param handler Callback invoked on key up.
|
|
52598
52647
|
*/
|
|
52599
52648
|
registerKeyUp(code, mode, handler) {
|
|
52600
|
-
|
|
52649
|
+
if (Array.isArray(code)) {
|
|
52650
|
+
code.forEach((c) => this.registerKey(this.keyUpHandlers, c, mode, handler));
|
|
52651
|
+
} else {
|
|
52652
|
+
this.registerKey(this.keyUpHandlers, code, mode, handler);
|
|
52653
|
+
}
|
|
52601
52654
|
}
|
|
52602
52655
|
registerKey(map, code, mode, callback) {
|
|
52603
52656
|
mode = map.has(code) ? mode : "replace";
|
|
@@ -52635,6 +52688,7 @@ void main() {
|
|
|
52635
52688
|
__publicField(this, "_capture");
|
|
52636
52689
|
__publicField(this, "_dragHandler");
|
|
52637
52690
|
__publicField(this, "_doubleClickHandler", new DoubleClickHandler());
|
|
52691
|
+
__publicField(this, "_clickHandler", new ClickHandler());
|
|
52638
52692
|
__publicField(this, "onButtonDown");
|
|
52639
52693
|
__publicField(this, "onButtonUp");
|
|
52640
52694
|
__publicField(this, "onMouseMove");
|
|
@@ -52643,6 +52697,7 @@ void main() {
|
|
|
52643
52697
|
__publicField(this, "onClick");
|
|
52644
52698
|
__publicField(this, "onDoubleClick");
|
|
52645
52699
|
__publicField(this, "onWheel");
|
|
52700
|
+
__publicField(this, "onContextMenu");
|
|
52646
52701
|
this._capture = new CaptureHandler(canvas);
|
|
52647
52702
|
this._dragHandler = new DragHandler((delta, button) => this.onDrag(delta, button));
|
|
52648
52703
|
}
|
|
@@ -52670,22 +52725,28 @@ void main() {
|
|
|
52670
52725
|
(_a3 = this.onButtonDown) == null ? void 0 : _a3.call(this, pos, event.button);
|
|
52671
52726
|
this._lastMouseDownPosition = pos;
|
|
52672
52727
|
this._dragHandler.onPointerDown(pos, event.button);
|
|
52728
|
+
this._clickHandler.onPointerDown(pos);
|
|
52673
52729
|
this._capture.onPointerDown(event);
|
|
52674
52730
|
event.preventDefault();
|
|
52675
52731
|
}
|
|
52676
52732
|
handlePointerUp(event) {
|
|
52677
52733
|
var _a3;
|
|
52678
52734
|
if (event.pointerType !== "mouse") return;
|
|
52735
|
+
event.preventDefault();
|
|
52679
52736
|
const pos = this.relativePosition(event);
|
|
52680
52737
|
(_a3 = this.onButtonUp) == null ? void 0 : _a3.call(this, pos, event.button);
|
|
52681
52738
|
this._capture.onPointerUp(event);
|
|
52682
52739
|
this._dragHandler.onPointerUp();
|
|
52683
|
-
|
|
52740
|
+
this._clickHandler.onPointerUp();
|
|
52741
|
+
if (this._doubleClickHandler.isDoubleClick(event)) {
|
|
52684
52742
|
this.handleDoubleClick(event);
|
|
52685
|
-
|
|
52743
|
+
return;
|
|
52744
|
+
}
|
|
52745
|
+
if (this._clickHandler.isClick(event)) {
|
|
52686
52746
|
this.handleMouseClick(event);
|
|
52747
|
+
return;
|
|
52687
52748
|
}
|
|
52688
|
-
|
|
52749
|
+
this.handleContextMenu(event);
|
|
52689
52750
|
}
|
|
52690
52751
|
async handleMouseClick(event) {
|
|
52691
52752
|
var _a3;
|
|
@@ -52698,12 +52759,23 @@ void main() {
|
|
|
52698
52759
|
const modif = event.getModifierState("Shift") || event.getModifierState("Control");
|
|
52699
52760
|
(_a3 = this.onClick) == null ? void 0 : _a3.call(this, pos, modif);
|
|
52700
52761
|
}
|
|
52762
|
+
async handleContextMenu(event) {
|
|
52763
|
+
var _a3;
|
|
52764
|
+
if (event.pointerType !== "mouse") return;
|
|
52765
|
+
if (event.button !== 2) return;
|
|
52766
|
+
const pos = this.relativePosition(event);
|
|
52767
|
+
if (!almostEqual(this._lastMouseDownPosition, pos, 0.01)) {
|
|
52768
|
+
return;
|
|
52769
|
+
}
|
|
52770
|
+
(_a3 = this.onContextMenu) == null ? void 0 : _a3.call(this, new Vector2(event.clientX, event.clientY));
|
|
52771
|
+
}
|
|
52701
52772
|
handlePointerMove(event) {
|
|
52702
52773
|
var _a3;
|
|
52703
52774
|
if (event.pointerType !== "mouse") return;
|
|
52704
52775
|
this._canvas.focus();
|
|
52705
52776
|
const pos = this.relativePosition(event);
|
|
52706
52777
|
this._dragHandler.onPointerMove(pos);
|
|
52778
|
+
this._clickHandler.onPointerMove(pos);
|
|
52707
52779
|
(_a3 = this.onMouseMove) == null ? void 0 : _a3.call(this, pos);
|
|
52708
52780
|
}
|
|
52709
52781
|
async handleDoubleClick(event) {
|
|
@@ -52747,17 +52819,46 @@ void main() {
|
|
|
52747
52819
|
}
|
|
52748
52820
|
}
|
|
52749
52821
|
}
|
|
52822
|
+
class ClickHandler {
|
|
52823
|
+
constructor() {
|
|
52824
|
+
__publicField(this, "_moved", false);
|
|
52825
|
+
__publicField(this, "_startPosition", new Vector2());
|
|
52826
|
+
__publicField(this, "_clickThreshold", 3e-3);
|
|
52827
|
+
}
|
|
52828
|
+
onPointerDown(pos) {
|
|
52829
|
+
this._moved = false;
|
|
52830
|
+
this._startPosition.copy(pos);
|
|
52831
|
+
}
|
|
52832
|
+
onPointerMove(pos) {
|
|
52833
|
+
if (pos.distanceTo(this._startPosition) > this._clickThreshold) {
|
|
52834
|
+
this._moved = true;
|
|
52835
|
+
}
|
|
52836
|
+
}
|
|
52837
|
+
onPointerUp() {
|
|
52838
|
+
}
|
|
52839
|
+
isClick(event) {
|
|
52840
|
+
if (event.button !== 0) return false;
|
|
52841
|
+
return !this._moved;
|
|
52842
|
+
}
|
|
52843
|
+
}
|
|
52750
52844
|
class DoubleClickHandler {
|
|
52751
52845
|
constructor() {
|
|
52752
52846
|
__publicField(this, "_lastClickTime", 0);
|
|
52753
52847
|
__publicField(this, "_clickDelay", 300);
|
|
52848
|
+
// Max time between clicks for double-click
|
|
52849
|
+
__publicField(this, "_lastClickPosition", null);
|
|
52850
|
+
__publicField(this, "_positionThreshold", 5);
|
|
52754
52851
|
}
|
|
52755
|
-
//
|
|
52756
|
-
|
|
52852
|
+
// Max pixel distance between clicks
|
|
52853
|
+
isDoubleClick(event) {
|
|
52757
52854
|
const currentTime = Date.now();
|
|
52855
|
+
const currentPosition = new Vector2(event.clientX, event.clientY);
|
|
52758
52856
|
const timeDiff = currentTime - this._lastClickTime;
|
|
52857
|
+
const isClose = this._lastClickPosition !== null && this._lastClickPosition.distanceTo(currentPosition) < this._positionThreshold;
|
|
52858
|
+
const isWithinTime = timeDiff < this._clickDelay;
|
|
52759
52859
|
this._lastClickTime = currentTime;
|
|
52760
|
-
|
|
52860
|
+
this._lastClickPosition = currentPosition;
|
|
52861
|
+
return isClose && isWithinTime;
|
|
52761
52862
|
}
|
|
52762
52863
|
}
|
|
52763
52864
|
class DragHandler {
|
|
@@ -52997,23 +53098,15 @@ void main() {
|
|
|
52997
53098
|
this._moveSpeed = settings2.moveSpeed ?? 1;
|
|
52998
53099
|
this.rotateSpeed = settings2.rotateSpeed ?? 1;
|
|
52999
53100
|
this.orbitSpeed = settings2.orbitSpeed ?? 1;
|
|
53000
|
-
this.reg(document, "contextmenu", (e) => {
|
|
53001
|
-
this._onContextMenu.dispatch(new Vector2(e.clientX, e.clientY));
|
|
53002
|
-
e.preventDefault();
|
|
53003
|
-
});
|
|
53004
53101
|
this.keyboard = new KeyboardHandler(canvas);
|
|
53005
53102
|
this.mouse = new MouseHandler(canvas);
|
|
53006
53103
|
this.touch = new TouchHandler(canvas);
|
|
53007
53104
|
this.keyboard.onKeyDown = (key) => adapter.keyDown(key);
|
|
53008
53105
|
this.keyboard.onKeyUp = (key) => adapter.keyUp(key);
|
|
53009
53106
|
this.keyboard.registerKeyUp("KeyP", "replace", () => adapter.toggleOrthographic());
|
|
53010
|
-
this.keyboard.registerKeyUp("Equal", "replace", () => this.moveSpeed++);
|
|
53011
|
-
this.keyboard.registerKeyUp("Minus", "replace", () => this.moveSpeed--);
|
|
53012
|
-
this.keyboard.registerKeyUp("Space", "replace", () =>
|
|
53013
|
-
this._pointerActive = this._pointerActive === "orbit" ? "look" : "orbit";
|
|
53014
|
-
this._pointerFallback = this._pointerActive;
|
|
53015
|
-
this._onPointerModeChanged.dispatch();
|
|
53016
|
-
});
|
|
53107
|
+
this.keyboard.registerKeyUp(["Equal", "NumpadAdd"], "replace", () => this.moveSpeed++);
|
|
53108
|
+
this.keyboard.registerKeyUp(["Minus", "NumpadSubtract"], "replace", () => this.moveSpeed--);
|
|
53109
|
+
this.keyboard.registerKeyUp("Space", "replace", () => adapter.toggleCameraOrbitMode());
|
|
53017
53110
|
this.keyboard.registerKeyUp("Home", "replace", () => adapter.resetCamera());
|
|
53018
53111
|
this.keyboard.registerKeyUp("Escape", "replace", () => adapter.clearSelection());
|
|
53019
53112
|
this.keyboard.registerKeyUp("KeyF", "replace", () => {
|
|
@@ -53023,18 +53116,28 @@ void main() {
|
|
|
53023
53116
|
const mul = Math.pow(1.25, this._moveSpeed);
|
|
53024
53117
|
adapter.moveCamera(value.multiplyScalar(mul));
|
|
53025
53118
|
};
|
|
53119
|
+
this.mouse.onContextMenu = (pos) => this._onContextMenu.dispatch(pos);
|
|
53026
53120
|
this.mouse.onButtonDown = adapter.mouseDown;
|
|
53027
53121
|
this.mouse.onMouseMove = adapter.mouseMove;
|
|
53028
|
-
this.mouse.onButtonUp =
|
|
53122
|
+
this.mouse.onButtonUp = (pos, button) => {
|
|
53123
|
+
this.pointerOverride = void 0;
|
|
53124
|
+
adapter.mouseUp(pos, button);
|
|
53125
|
+
};
|
|
53029
53126
|
this.mouse.onDrag = (delta, button) => {
|
|
53030
53127
|
if (button === 0) {
|
|
53031
|
-
if (this.
|
|
53032
|
-
if (this.
|
|
53033
|
-
if (this.
|
|
53034
|
-
if (this.
|
|
53128
|
+
if (this.pointerActive === "orbit") adapter.orbitCamera(toRotation(delta, this.orbitSpeed));
|
|
53129
|
+
if (this.pointerActive === "look") adapter.rotateCamera(toRotation(delta, this.rotateSpeed));
|
|
53130
|
+
if (this.pointerActive === "pan") adapter.panCamera(delta);
|
|
53131
|
+
if (this.pointerActive === "zoom") adapter.dollyCamera(delta);
|
|
53132
|
+
}
|
|
53133
|
+
if (button === 2) {
|
|
53134
|
+
this.pointerOverride = "look";
|
|
53135
|
+
adapter.rotateCamera(toRotation(delta, 1));
|
|
53136
|
+
}
|
|
53137
|
+
if (button === 1) {
|
|
53138
|
+
this.pointerOverride = "pan";
|
|
53139
|
+
adapter.panCamera(delta);
|
|
53035
53140
|
}
|
|
53036
|
-
if (button === 2) adapter.rotateCamera(toRotation(delta, 1));
|
|
53037
|
-
if (button === 1) adapter.panCamera(delta);
|
|
53038
53141
|
};
|
|
53039
53142
|
this.mouse.onClick = (pos, modif) => adapter.selectAtPointer(pos, modif);
|
|
53040
53143
|
this.mouse.onDoubleClick = adapter.frameAtPointer;
|
|
@@ -55332,7 +55435,7 @@ void main() {
|
|
|
55332
55435
|
}
|
|
55333
55436
|
unparent2dObjects(target) {
|
|
55334
55437
|
if (target instanceof Group) {
|
|
55335
|
-
for (const child of target.children) {
|
|
55438
|
+
for (const child of [...target.children]) {
|
|
55336
55439
|
if (child instanceof CSS2DObject) {
|
|
55337
55440
|
target.remove(child);
|
|
55338
55441
|
}
|
|
@@ -55507,6 +55610,7 @@ void main() {
|
|
|
55507
55610
|
}
|
|
55508
55611
|
add(objectOrObjects) {
|
|
55509
55612
|
if (!this.enabled) return;
|
|
55613
|
+
if (!objectOrObjects) return;
|
|
55510
55614
|
const objects = this.toArray(objectOrObjects);
|
|
55511
55615
|
let changed = false;
|
|
55512
55616
|
for (const obj of objects) {
|
|
@@ -55857,7 +55961,7 @@ void main() {
|
|
|
55857
55961
|
/**
|
|
55858
55962
|
* Resizes the canvas and updates the camera to match new parent dimensions.
|
|
55859
55963
|
*/
|
|
55860
|
-
|
|
55964
|
+
resizeToParent() {
|
|
55861
55965
|
this._onResize.dispatch();
|
|
55862
55966
|
}
|
|
55863
55967
|
/**
|
|
@@ -55911,6 +56015,9 @@ void main() {
|
|
|
55911
56015
|
toggleOrthographic: () => {
|
|
55912
56016
|
viewer.camera.orthographic = !viewer.camera.orthographic;
|
|
55913
56017
|
},
|
|
56018
|
+
toggleCameraOrbitMode: () => {
|
|
56019
|
+
viewer.inputs.pointerActive = viewer.inputs.pointerActive === PointerMode$1.ORBIT ? PointerMode$1.LOOK : PointerMode$1.ORBIT;
|
|
56020
|
+
},
|
|
55914
56021
|
resetCamera: () => {
|
|
55915
56022
|
viewer.camera.lerp(0.75).reset();
|
|
55916
56023
|
},
|
|
@@ -55935,7 +56042,7 @@ void main() {
|
|
|
55935
56042
|
},
|
|
55936
56043
|
frameAtPointer: async (pos) => {
|
|
55937
56044
|
const result = await viewer.raycaster.raycastFromScreen(pos);
|
|
55938
|
-
viewer.camera.lerp(0.75).frame(result.object);
|
|
56045
|
+
viewer.camera.lerp(0.75).frame(result.object ?? "all");
|
|
55939
56046
|
},
|
|
55940
56047
|
zoom: (value) => {
|
|
55941
56048
|
viewer.camera.lerp(0.75).zoom(value);
|
|
@@ -56946,6 +57053,10 @@ void main() {
|
|
|
56946
57053
|
* Indicates whether the scene should be re-rendered on change only.
|
|
56947
57054
|
*/
|
|
56948
57055
|
__publicField(this, "onDemand");
|
|
57056
|
+
/**
|
|
57057
|
+
* The material that will be used when setting model material to undefined.
|
|
57058
|
+
*/
|
|
57059
|
+
__publicField(this, "defaultModelMaterial");
|
|
56949
57060
|
__publicField(this, "fitViewport", () => {
|
|
56950
57061
|
const size = this._viewport.getParentSize();
|
|
56951
57062
|
this.renderer.setPixelRatio(window.devicePixelRatio);
|
|
@@ -57017,11 +57128,14 @@ void main() {
|
|
|
57017
57128
|
this._scene.threeScene.background = color;
|
|
57018
57129
|
this.needsUpdate = true;
|
|
57019
57130
|
}
|
|
57131
|
+
/**
|
|
57132
|
+
* Sets the material used to render models. If set to undefined, the default model or mesh material is used.
|
|
57133
|
+
*/
|
|
57020
57134
|
get modelMaterial() {
|
|
57021
57135
|
return this._scene.modelMaterial;
|
|
57022
57136
|
}
|
|
57023
57137
|
set modelMaterial(material) {
|
|
57024
|
-
this._scene.modelMaterial = material;
|
|
57138
|
+
this._scene.modelMaterial = material ?? this.defaultModelMaterial;
|
|
57025
57139
|
}
|
|
57026
57140
|
/**
|
|
57027
57141
|
* Signal dispatched at the end of each frame if the scene was updated, such as visibility changes.
|
|
@@ -57157,6 +57271,11 @@ void main() {
|
|
|
57157
57271
|
};
|
|
57158
57272
|
let Viewer$3 = class Viewer {
|
|
57159
57273
|
constructor(settings2) {
|
|
57274
|
+
/**
|
|
57275
|
+
* The type of the viewer, indicating it is a WebGL viewer.
|
|
57276
|
+
* Useful for distinguishing between different viewer types in a multi-viewer application.
|
|
57277
|
+
*/
|
|
57278
|
+
__publicField(this, "type", "webgl");
|
|
57160
57279
|
/**
|
|
57161
57280
|
* The settings configuration used by the viewer.
|
|
57162
57281
|
*/
|
|
@@ -58834,6 +58953,7 @@ void main() {
|
|
|
58834
58953
|
}
|
|
58835
58954
|
}
|
|
58836
58955
|
const CODE_TO_KEYCODE = {
|
|
58956
|
+
"Space": 32,
|
|
58837
58957
|
"ArrowUp": 38,
|
|
58838
58958
|
"ArrowDown": 40,
|
|
58839
58959
|
"ArrowLeft": 37,
|
|
@@ -58854,7 +58974,6 @@ void main() {
|
|
|
58854
58974
|
function createAdapter$1(viewer) {
|
|
58855
58975
|
return {
|
|
58856
58976
|
init: () => {
|
|
58857
|
-
viewer.rpc.RPCSetCameraSpeed(10);
|
|
58858
58977
|
},
|
|
58859
58978
|
orbitCamera: (value) => {
|
|
58860
58979
|
},
|
|
@@ -58867,6 +58986,9 @@ void main() {
|
|
|
58867
58986
|
toggleOrthographic: () => {
|
|
58868
58987
|
console.log("toggleOrthographic. Not supported yet");
|
|
58869
58988
|
},
|
|
58989
|
+
toggleCameraOrbitMode: () => {
|
|
58990
|
+
viewer.rpc.RPCKeyEvent(CODE_TO_KEYCODE["Space"], true);
|
|
58991
|
+
},
|
|
58870
58992
|
resetCamera: () => {
|
|
58871
58993
|
viewer.camera.restoreSavedPosition();
|
|
58872
58994
|
},
|
|
@@ -60835,6 +60957,12 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
60835
60957
|
this._rpc.RPCSetCameraAspectRatio(this.canvas.offsetWidth, this.canvas.offsetHeight);
|
|
60836
60958
|
}
|
|
60837
60959
|
}
|
|
60960
|
+
/**
|
|
60961
|
+
* Resizes the viewport to match its parent's dimensions
|
|
60962
|
+
*/
|
|
60963
|
+
resizeToParent() {
|
|
60964
|
+
this.update();
|
|
60965
|
+
}
|
|
60838
60966
|
/**
|
|
60839
60967
|
* Cleans up resources by removing resize observer and clearing timeouts
|
|
60840
60968
|
*/
|
|
@@ -60893,11 +61021,12 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
60893
61021
|
* @returns A promise resolving to the element's bounding box.
|
|
60894
61022
|
*/
|
|
60895
61023
|
async getBoundingBox() {
|
|
60896
|
-
return this.vim.
|
|
61024
|
+
return this.vim.getBoundingBoxForElements([this.element]);
|
|
60897
61025
|
}
|
|
60898
61026
|
}
|
|
60899
61027
|
class Vim {
|
|
60900
61028
|
constructor(rpc, color, renderer, source, logger) {
|
|
61029
|
+
__publicField(this, "type", "ultra");
|
|
60901
61030
|
__publicField(this, "source");
|
|
60902
61031
|
__publicField(this, "_handle", -1);
|
|
60903
61032
|
__publicField(this, "_request");
|
|
@@ -60911,6 +61040,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
60911
61040
|
// Color tracking remains unchanged.
|
|
60912
61041
|
__publicField(this, "_elementColors", /* @__PURE__ */ new Map());
|
|
60913
61042
|
__publicField(this, "_updatedColors", /* @__PURE__ */ new Set());
|
|
61043
|
+
__publicField(this, "_removedColors", /* @__PURE__ */ new Set());
|
|
60914
61044
|
// Delayed update flag.
|
|
60915
61045
|
__publicField(this, "_updateScheduled", false);
|
|
60916
61046
|
__publicField(this, "_elementCount", 0);
|
|
@@ -61048,14 +61178,14 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
61048
61178
|
}
|
|
61049
61179
|
return handle;
|
|
61050
61180
|
}
|
|
61051
|
-
async
|
|
61052
|
-
if (!this.connected ||
|
|
61181
|
+
async getBoundingBoxForElements(elements) {
|
|
61182
|
+
if (!this.connected || elements !== "all" && elements.length === 0) {
|
|
61053
61183
|
return Promise.resolve(void 0);
|
|
61054
61184
|
}
|
|
61055
|
-
if (
|
|
61185
|
+
if (elements === "all") {
|
|
61056
61186
|
return await this._rpc.RPCGetAABBForVim(this._handle);
|
|
61057
61187
|
}
|
|
61058
|
-
return await this._rpc.RPCGetAABBForElements(this._handle,
|
|
61188
|
+
return await this._rpc.RPCGetAABBForElements(this._handle, elements);
|
|
61059
61189
|
}
|
|
61060
61190
|
async getBoundingBox() {
|
|
61061
61191
|
if (!this.connected) {
|
|
@@ -61076,16 +61206,18 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
61076
61206
|
}
|
|
61077
61207
|
this.applyColor(elements, color);
|
|
61078
61208
|
}
|
|
61079
|
-
applyColor(elements,
|
|
61080
|
-
for (let i2 = 0; i2 <
|
|
61081
|
-
const
|
|
61209
|
+
applyColor(elements, colors) {
|
|
61210
|
+
for (let i2 = 0; i2 < colors.length; i2++) {
|
|
61211
|
+
const color = colors[i2];
|
|
61082
61212
|
const element = elements[i2];
|
|
61083
|
-
|
|
61213
|
+
const existingColor = this._elementColors.get(element);
|
|
61214
|
+
if (color === void 0 && existingColor !== void 0) {
|
|
61084
61215
|
this._elementColors.delete(element);
|
|
61085
|
-
|
|
61086
|
-
|
|
61216
|
+
this._removedColors.add(element);
|
|
61217
|
+
} else if (color !== existingColor) {
|
|
61218
|
+
this._elementColors.set(element, color);
|
|
61219
|
+
this._updatedColors.add(element);
|
|
61087
61220
|
}
|
|
61088
|
-
this._updatedColors.add(element);
|
|
61089
61221
|
}
|
|
61090
61222
|
this.scheduleColorUpdate();
|
|
61091
61223
|
}
|
|
@@ -61105,6 +61237,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
61105
61237
|
}
|
|
61106
61238
|
reapplyColors() {
|
|
61107
61239
|
this._updatedColors.clear();
|
|
61240
|
+
this._removedColors.clear();
|
|
61108
61241
|
this._elementColors.forEach((c, n) => this._updatedColors.add(n));
|
|
61109
61242
|
this.scheduleColorUpdate();
|
|
61110
61243
|
}
|
|
@@ -61121,12 +61254,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
61121
61254
|
this._renderer.notifySceneUpdated();
|
|
61122
61255
|
}
|
|
61123
61256
|
async updateRemoteColors() {
|
|
61124
|
-
const
|
|
61125
|
-
const
|
|
61257
|
+
const updatedElement = Array.from(this._updatedColors);
|
|
61258
|
+
const removedElement = Array.from(this._removedColors);
|
|
61259
|
+
const colors = updatedElement.map((n) => this._elementColors.get(n));
|
|
61126
61260
|
const remoteColors = await this._colors.getColors(colors);
|
|
61127
61261
|
const colorIds = remoteColors.map((c) => (c == null ? void 0 : c.id) ?? -1);
|
|
61128
|
-
this._rpc.
|
|
61262
|
+
this._rpc.RPCClearMaterialOverridesForElements(this._handle, removedElement);
|
|
61263
|
+
this._rpc.RPCSetMaterialOverridesForElements(this._handle, updatedElement, colorIds);
|
|
61129
61264
|
this._updatedColors.clear();
|
|
61265
|
+
this._removedColors.clear();
|
|
61130
61266
|
}
|
|
61131
61267
|
}
|
|
61132
61268
|
function wait(ms) {
|
|
@@ -61203,6 +61339,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
61203
61339
|
* @param logger - Optional logger for logging messages.
|
|
61204
61340
|
*/
|
|
61205
61341
|
constructor(canvas, logger) {
|
|
61342
|
+
/**
|
|
61343
|
+
* The type of the viewer, indicating it is a WebGL viewer.
|
|
61344
|
+
* Useful for distinguishing between different viewer types in a multi-viewer application.
|
|
61345
|
+
*/
|
|
61346
|
+
__publicField(this, "type", "ultra");
|
|
61206
61347
|
__publicField(this, "_decoder");
|
|
61207
61348
|
__publicField(this, "_socketClient");
|
|
61208
61349
|
__publicField(this, "_input");
|
|
@@ -61463,80 +61604,72 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
61463
61604
|
Ultra: index$7,
|
|
61464
61605
|
Webgl: index$8
|
|
61465
61606
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
61466
|
-
const
|
|
61467
|
-
const
|
|
61468
|
-
const
|
|
61469
|
-
const
|
|
61470
|
-
const
|
|
61471
|
-
const
|
|
61472
|
-
const
|
|
61473
|
-
const
|
|
61474
|
-
const
|
|
61475
|
-
const
|
|
61476
|
-
const
|
|
61477
|
-
const
|
|
61478
|
-
const
|
|
61479
|
-
const
|
|
61480
|
-
const
|
|
61481
|
-
const
|
|
61482
|
-
const
|
|
61483
|
-
const
|
|
61484
|
-
const
|
|
61485
|
-
const
|
|
61486
|
-
const
|
|
61487
|
-
const
|
|
61488
|
-
const
|
|
61489
|
-
const
|
|
61490
|
-
const
|
|
61491
|
-
const
|
|
61492
|
-
const
|
|
61493
|
-
const
|
|
61494
|
-
const
|
|
61495
|
-
const
|
|
61496
|
-
const
|
|
61497
|
-
const
|
|
61498
|
-
const buttonSectionBoxToSelection = "controlBar.sectionBox.sectionSelection";
|
|
61499
|
-
const buttonSectionBoxToScene = "controlBar.sectionBox.sectionScene";
|
|
61500
|
-
const buttonSectionBoxAuto = "controlBar.sectionBox.auto";
|
|
61501
|
-
const buttonSectionBoxSettings = "controlBar.sectionBox.settings";
|
|
61607
|
+
const cameraSpan = "controlBar.cameraSpan";
|
|
61608
|
+
const cameraFrameSelection = "controlBar.cameraFrameSelection";
|
|
61609
|
+
const cameraFrameScene = "controlBar.cameraFrameScene";
|
|
61610
|
+
const cameraAuto = "controlBar.cameraAuto";
|
|
61611
|
+
const cursorSpan = "controlBar.cursorSpan";
|
|
61612
|
+
const cursorOrbit = "controlBar.cursorOrbit";
|
|
61613
|
+
const cursorLook = "controlBar.cursorLook";
|
|
61614
|
+
const cursorPan = "controlBar.cursorPan";
|
|
61615
|
+
const cursorZoom = "controlBar.cursorZoom";
|
|
61616
|
+
const cursorZoomWindow = "controlBar.cursorZoomWindow";
|
|
61617
|
+
const visibilitySpan = "controlBar.visibilitySpan";
|
|
61618
|
+
const visibilityClearSelection = "controlBar.visibilityClearSelection";
|
|
61619
|
+
const visibilityShowAll = "controlBar.visibilityShowAll";
|
|
61620
|
+
const visibilityIsolateSelection = "controlBar.visibilityIsolateSelection";
|
|
61621
|
+
const visibilityHideSelection = "controlBar.visibilityHideSelection";
|
|
61622
|
+
const visibilityShowSelection = "controlBar.visibilityShowSelection";
|
|
61623
|
+
const visibilityAutoIsolate = "controlBar.visibilityAutoIsolate";
|
|
61624
|
+
const visibilitySettings = "controlBar.visibilitySettings";
|
|
61625
|
+
const sectioningSpan = "controlBar.sectioningSpan";
|
|
61626
|
+
const sectioningEnable = "controlBar.sectioningEnable";
|
|
61627
|
+
const sectioningVisible = "controlBar.sectioningVisible";
|
|
61628
|
+
const sectioningFitSelection = "controlBar.sectioningFitSelection";
|
|
61629
|
+
const sectioningFitScene = "controlBar.sectioningFitScene";
|
|
61630
|
+
const sectioningAuto = "controlBar.sectioningAuto";
|
|
61631
|
+
const sectioningSettings = "controlBar.sectioningSettings";
|
|
61632
|
+
const measureSpan = "controlBar.measureSpan";
|
|
61633
|
+
const measureEnable = "controlBar.measureEnable";
|
|
61634
|
+
const miscSpan = "controlBar.miscSpan";
|
|
61635
|
+
const miscInspector = "controlBar.miscInspector";
|
|
61636
|
+
const miscSettings = "controlBar.miscSettings";
|
|
61637
|
+
const miscHelp = "controlBar.miscHelp";
|
|
61638
|
+
const miscMaximize = "controlBar.miscMaximize";
|
|
61502
61639
|
const controlBarIds = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
61503
61640
|
__proto__: null,
|
|
61504
|
-
|
|
61505
|
-
|
|
61506
|
-
|
|
61507
|
-
|
|
61508
|
-
|
|
61509
|
-
|
|
61510
|
-
|
|
61511
|
-
|
|
61512
|
-
|
|
61513
|
-
|
|
61514
|
-
|
|
61515
|
-
|
|
61516
|
-
|
|
61517
|
-
|
|
61518
|
-
|
|
61519
|
-
|
|
61520
|
-
|
|
61521
|
-
|
|
61522
|
-
|
|
61523
|
-
|
|
61524
|
-
|
|
61525
|
-
|
|
61526
|
-
|
|
61527
|
-
|
|
61528
|
-
|
|
61529
|
-
|
|
61530
|
-
|
|
61531
|
-
|
|
61532
|
-
|
|
61533
|
-
|
|
61534
|
-
|
|
61535
|
-
|
|
61536
|
-
sectionSectionBox,
|
|
61537
|
-
sectionSelection,
|
|
61538
|
-
sectionSettings,
|
|
61539
|
-
sectionTools
|
|
61641
|
+
cameraAuto,
|
|
61642
|
+
cameraFrameScene,
|
|
61643
|
+
cameraFrameSelection,
|
|
61644
|
+
cameraSpan,
|
|
61645
|
+
cursorLook,
|
|
61646
|
+
cursorOrbit,
|
|
61647
|
+
cursorPan,
|
|
61648
|
+
cursorSpan,
|
|
61649
|
+
cursorZoom,
|
|
61650
|
+
cursorZoomWindow,
|
|
61651
|
+
measureEnable,
|
|
61652
|
+
measureSpan,
|
|
61653
|
+
miscHelp,
|
|
61654
|
+
miscInspector,
|
|
61655
|
+
miscMaximize,
|
|
61656
|
+
miscSettings,
|
|
61657
|
+
miscSpan,
|
|
61658
|
+
sectioningAuto,
|
|
61659
|
+
sectioningEnable,
|
|
61660
|
+
sectioningFitScene,
|
|
61661
|
+
sectioningFitSelection,
|
|
61662
|
+
sectioningSettings,
|
|
61663
|
+
sectioningSpan,
|
|
61664
|
+
sectioningVisible,
|
|
61665
|
+
visibilityAutoIsolate,
|
|
61666
|
+
visibilityClearSelection,
|
|
61667
|
+
visibilityHideSelection,
|
|
61668
|
+
visibilityIsolateSelection,
|
|
61669
|
+
visibilitySettings,
|
|
61670
|
+
visibilityShowAll,
|
|
61671
|
+
visibilityShowSelection,
|
|
61672
|
+
visibilitySpan
|
|
61540
61673
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
61541
61674
|
const baseSectionStyle = "vc-flex vc-items-center vc-rounded-full vc-mb-2 vc-shadow-md";
|
|
61542
61675
|
const sectionDefaultStyle = baseSectionStyle + " vc-bg-white";
|
|
@@ -63629,50 +63762,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
63629
63762
|
visible,
|
|
63630
63763
|
zoom
|
|
63631
63764
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
63632
|
-
function getDefaultSettings() {
|
|
63633
|
-
return {
|
|
63634
|
-
capacity: {
|
|
63635
|
-
canFollowUrl: true,
|
|
63636
|
-
canGoFullScreen: true,
|
|
63637
|
-
canDownload: true,
|
|
63638
|
-
canReadLocalStorage: true
|
|
63639
|
-
},
|
|
63640
|
-
ui: {
|
|
63641
|
-
logo: true,
|
|
63642
|
-
performance: false,
|
|
63643
|
-
bimTreePanel: true,
|
|
63644
|
-
bimInfoPanel: true,
|
|
63645
|
-
// axesPanel
|
|
63646
|
-
axesPanel: true,
|
|
63647
|
-
orthographic: true,
|
|
63648
|
-
resetCamera: true,
|
|
63649
|
-
// Control bar
|
|
63650
|
-
controlBar: true,
|
|
63651
|
-
// Control bar - cursors
|
|
63652
|
-
orbit: true,
|
|
63653
|
-
lookAround: true,
|
|
63654
|
-
pan: true,
|
|
63655
|
-
zoom: true,
|
|
63656
|
-
zoomWindow: true,
|
|
63657
|
-
// Control bar - camera
|
|
63658
|
-
autoCamera: true,
|
|
63659
|
-
frameScene: true,
|
|
63660
|
-
frameSelection: true,
|
|
63661
|
-
// Control bar - tools
|
|
63662
|
-
sectioningMode: true,
|
|
63663
|
-
measuringMode: true,
|
|
63664
|
-
toggleIsolation: true,
|
|
63665
|
-
// Control bar - settings
|
|
63666
|
-
projectInspector: true,
|
|
63667
|
-
settings: true,
|
|
63668
|
-
help: true,
|
|
63669
|
-
maximise: true
|
|
63670
|
-
}
|
|
63671
|
-
};
|
|
63672
|
-
}
|
|
63673
|
-
function createSettings(settings2) {
|
|
63674
|
-
return settings2 !== void 0 ? deepmerge(getDefaultSettings(), settings2) : getDefaultSettings();
|
|
63675
|
-
}
|
|
63676
63765
|
function getLocalSettings(settings2 = {}) {
|
|
63677
63766
|
try {
|
|
63678
63767
|
const json = localStorage.getItem("viewer.settings");
|
|
@@ -63727,8 +63816,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
63727
63816
|
}
|
|
63728
63817
|
const index$4 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
63729
63818
|
__proto__: null,
|
|
63730
|
-
createSettings,
|
|
63731
|
-
getDefaultSettings,
|
|
63732
63819
|
getLocalSettings,
|
|
63733
63820
|
isFalse,
|
|
63734
63821
|
isTrue,
|
|
@@ -67264,7 +67351,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67264
67351
|
return value.some(isTrue) ? element : null;
|
|
67265
67352
|
}
|
|
67266
67353
|
function anyUiAxesButton(settings2) {
|
|
67267
|
-
return settings2.ui.
|
|
67354
|
+
return settings2.ui.axesOrthographic || settings2.ui.axesHome;
|
|
67268
67355
|
}
|
|
67269
67356
|
const AxesPanelMemo = React2.memo(AxesPanel);
|
|
67270
67357
|
function AxesPanel(props) {
|
|
@@ -67324,15 +67411,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67324
67411
|
children: ortho ? /* @__PURE__ */ jsxRuntimeExports.jsx(orthographic, { height: 20, width: 20, fill: "currentColor" }) : /* @__PURE__ */ jsxRuntimeExports.jsx(perspective, { height: 20, width: 20, fill: "currentColor" })
|
|
67325
67412
|
}
|
|
67326
67413
|
);
|
|
67327
|
-
const hidden2 = isTrue(props.settings.value.ui.
|
|
67414
|
+
const hidden2 = isTrue(props.settings.value.ui.panelAxes) ? "" : " vc-hidden";
|
|
67328
67415
|
const empty2 = !anyUiAxesButton(props.settings.value);
|
|
67329
67416
|
const createBar = () => {
|
|
67330
67417
|
if (empty2) return null;
|
|
67331
67418
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "vim-axes-panel-bar vc-absolute vc-top-[75%] vc-bottom-0 vc-right-0 vc-left-0", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vim-axes-panel-buttons vc-absolute vc-inset-0 vc-pointer-events-auto vc-order-2 vc-flex vc-items-center vc-justify-evenly vc-bg-white", children: [
|
|
67332
67419
|
whenAllTrue([
|
|
67333
|
-
props.settings.value.ui.
|
|
67420
|
+
props.settings.value.ui.axesOrthographic
|
|
67334
67421
|
], btnOrtho),
|
|
67335
|
-
whenTrue(props.settings.value.ui.
|
|
67422
|
+
whenTrue(props.settings.value.ui.axesHome, btnHome)
|
|
67336
67423
|
] }) });
|
|
67337
67424
|
};
|
|
67338
67425
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
@@ -67560,77 +67647,78 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67560
67647
|
}
|
|
67561
67648
|
const Style = style;
|
|
67562
67649
|
const Ids$2 = controlBarIds;
|
|
67563
|
-
function controlBarSectionBox(section, hasSelection) {
|
|
67650
|
+
function controlBarSectionBox(section, hasSelection, settings2) {
|
|
67564
67651
|
return {
|
|
67565
|
-
id: Ids$2.
|
|
67652
|
+
id: Ids$2.sectioningSpan,
|
|
67566
67653
|
style: section.enable.get() ? Style.sectionNoPadStyle : Style.sectionDefaultStyle,
|
|
67567
67654
|
//enable: () => section.getEnable(),
|
|
67568
67655
|
buttons: [
|
|
67569
67656
|
{
|
|
67570
|
-
id: Ids$2.
|
|
67657
|
+
id: Ids$2.sectioningEnable,
|
|
67658
|
+
enabled: () => isTrue(settings2.sectioningEnable),
|
|
67571
67659
|
tip: "Enable Section Box",
|
|
67572
67660
|
isOn: () => section.enable.get(),
|
|
67573
|
-
style:
|
|
67661
|
+
style: Style.buttonExpandStyle,
|
|
67574
67662
|
action: () => section.enable.set(!section.enable.get()),
|
|
67575
67663
|
icon: sectionBox
|
|
67576
67664
|
},
|
|
67577
67665
|
{
|
|
67578
|
-
id: Ids$2.
|
|
67666
|
+
id: Ids$2.sectioningFitSelection,
|
|
67579
67667
|
tip: "Fit Section",
|
|
67580
|
-
enabled: () => section.enable.get(),
|
|
67668
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningFitToSelection),
|
|
67581
67669
|
isOn: () => hasSelection,
|
|
67582
|
-
style:
|
|
67670
|
+
style: Style.buttonDisableStyle,
|
|
67583
67671
|
action: () => section.sectionSelection.call(),
|
|
67584
67672
|
icon: sectionBoxShrink
|
|
67585
67673
|
},
|
|
67586
67674
|
{
|
|
67587
|
-
id: Ids$2.
|
|
67675
|
+
id: Ids$2.sectioningFitScene,
|
|
67588
67676
|
tip: "Reset Section",
|
|
67589
|
-
enabled: () => section.enable.get(),
|
|
67590
|
-
style:
|
|
67677
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningReset),
|
|
67678
|
+
style: Style.buttonDefaultStyle,
|
|
67591
67679
|
action: () => section.sectionScene.call(),
|
|
67592
67680
|
icon: sectionBoxReset
|
|
67593
67681
|
},
|
|
67594
67682
|
{
|
|
67595
|
-
id: Ids$2.
|
|
67683
|
+
id: Ids$2.sectioningVisible,
|
|
67596
67684
|
tip: "Show Section Box",
|
|
67597
|
-
enabled: () => section.enable.get(),
|
|
67685
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningShow),
|
|
67598
67686
|
isOn: () => section.visible.get(),
|
|
67599
|
-
style:
|
|
67687
|
+
style: Style.buttonDefaultStyle,
|
|
67600
67688
|
action: () => section.visible.set(!section.visible.get()),
|
|
67601
67689
|
icon: visible
|
|
67602
67690
|
},
|
|
67603
67691
|
{
|
|
67604
|
-
id: Ids$2.
|
|
67692
|
+
id: Ids$2.sectioningAuto,
|
|
67605
67693
|
tip: "Auto Section",
|
|
67606
|
-
enabled: () => section.enable.get(),
|
|
67694
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningAuto),
|
|
67607
67695
|
isOn: () => section.auto.get(),
|
|
67608
|
-
style:
|
|
67696
|
+
style: Style.buttonDefaultStyle,
|
|
67609
67697
|
action: () => section.auto.set(!section.auto.get()),
|
|
67610
67698
|
icon: sectionBoxAuto
|
|
67611
67699
|
},
|
|
67612
67700
|
{
|
|
67613
|
-
id: Ids$2.
|
|
67701
|
+
id: Ids$2.sectioningSettings,
|
|
67614
67702
|
tip: "Section Settings",
|
|
67615
|
-
enabled: () => section.enable.get(),
|
|
67703
|
+
enabled: () => section.enable.get() && isTrue(settings2.sectioningSettings),
|
|
67616
67704
|
isOn: () => section.showOffsetPanel.get(),
|
|
67617
|
-
style:
|
|
67705
|
+
style: Style.buttonDefaultStyle,
|
|
67618
67706
|
action: () => section.showOffsetPanel.set(!section.showOffsetPanel.get()),
|
|
67619
67707
|
icon: slidersHoriz
|
|
67620
67708
|
}
|
|
67621
67709
|
]
|
|
67622
67710
|
};
|
|
67623
67711
|
}
|
|
67624
|
-
function controlBarPointer(viewer,
|
|
67712
|
+
function controlBarPointer(viewer, settings2) {
|
|
67625
67713
|
const pointer2 = getPointerState(viewer);
|
|
67626
67714
|
return {
|
|
67627
|
-
id: Ids$2.
|
|
67715
|
+
id: Ids$2.cursorSpan,
|
|
67628
67716
|
enable: () => anyUiCursorButton(settings2),
|
|
67629
67717
|
style: Style.sectionDefaultStyle,
|
|
67630
67718
|
buttons: [
|
|
67631
67719
|
{
|
|
67632
|
-
id: Ids$2.
|
|
67633
|
-
enabled: () => isTrue(settings2.
|
|
67720
|
+
id: Ids$2.cursorOrbit,
|
|
67721
|
+
enabled: () => isTrue(settings2.cursorOrbit),
|
|
67634
67722
|
tip: "Orbit",
|
|
67635
67723
|
action: () => pointer2.onButton(PointerMode$1.ORBIT),
|
|
67636
67724
|
icon: orbit,
|
|
@@ -67638,8 +67726,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67638
67726
|
style: Style.buttonDefaultStyle
|
|
67639
67727
|
},
|
|
67640
67728
|
{
|
|
67641
|
-
id: Ids$2.
|
|
67642
|
-
enabled: () => isTrue(settings2.
|
|
67729
|
+
id: Ids$2.cursorLook,
|
|
67730
|
+
enabled: () => isTrue(settings2.cursorLookAround),
|
|
67643
67731
|
tip: "Look Around",
|
|
67644
67732
|
action: () => pointer2.onButton(PointerMode$1.LOOK),
|
|
67645
67733
|
icon: look,
|
|
@@ -67647,8 +67735,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67647
67735
|
style: Style.buttonDefaultStyle
|
|
67648
67736
|
},
|
|
67649
67737
|
{
|
|
67650
|
-
id: Ids$2.
|
|
67651
|
-
enabled: () => isTrue(settings2.
|
|
67738
|
+
id: Ids$2.cursorPan,
|
|
67739
|
+
enabled: () => isTrue(settings2.cursorPan),
|
|
67652
67740
|
tip: "Pan",
|
|
67653
67741
|
action: () => pointer2.onButton(PointerMode$1.PAN),
|
|
67654
67742
|
icon: pan,
|
|
@@ -67656,8 +67744,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67656
67744
|
style: Style.buttonDefaultStyle
|
|
67657
67745
|
},
|
|
67658
67746
|
{
|
|
67659
|
-
id: Ids$2.
|
|
67660
|
-
enabled: () => isTrue(settings2.
|
|
67747
|
+
id: Ids$2.cursorZoom,
|
|
67748
|
+
enabled: () => isTrue(settings2.cursorZoom),
|
|
67661
67749
|
tip: "Zoom",
|
|
67662
67750
|
action: () => pointer2.onButton(PointerMode$1.ZOOM),
|
|
67663
67751
|
icon: zoom,
|
|
@@ -67667,15 +67755,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67667
67755
|
]
|
|
67668
67756
|
};
|
|
67669
67757
|
}
|
|
67670
|
-
function controlBarMeasure(
|
|
67758
|
+
function controlBarMeasure(measure$1, settings2) {
|
|
67671
67759
|
return {
|
|
67672
|
-
id: Ids$2.
|
|
67760
|
+
id: Ids$2.measureSpan,
|
|
67673
67761
|
enable: () => true,
|
|
67674
67762
|
style: Style.sectionDefaultStyle,
|
|
67675
67763
|
buttons: [
|
|
67676
67764
|
{
|
|
67677
|
-
id: Ids$2.
|
|
67678
|
-
enabled: () => isTrue(settings2.
|
|
67765
|
+
id: Ids$2.measureEnable,
|
|
67766
|
+
enabled: () => isTrue(settings2.measureEnable),
|
|
67679
67767
|
isOn: () => measure$1.active,
|
|
67680
67768
|
tip: "Measuring Mode",
|
|
67681
67769
|
action: () => measure$1.toggle(),
|
|
@@ -67685,40 +67773,57 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67685
67773
|
]
|
|
67686
67774
|
};
|
|
67687
67775
|
}
|
|
67688
|
-
function
|
|
67776
|
+
function createMiscSettingsButton(side, settings$1) {
|
|
67777
|
+
return {
|
|
67778
|
+
id: Ids$2.miscSettings,
|
|
67779
|
+
enabled: () => isTrue(settings$1.ui.miscSettings),
|
|
67780
|
+
tip: "Settings",
|
|
67781
|
+
action: () => side.toggleContent("settings"),
|
|
67782
|
+
icon: settings,
|
|
67783
|
+
style: Style.buttonDefaultStyle
|
|
67784
|
+
};
|
|
67785
|
+
}
|
|
67786
|
+
function createMiscHelpButton(modal, settings2) {
|
|
67787
|
+
return {
|
|
67788
|
+
id: Ids$2.miscHelp,
|
|
67789
|
+
enabled: () => isTrue(settings2.ui.miscHelp),
|
|
67790
|
+
tip: "Help",
|
|
67791
|
+
action: () => modal.help(true),
|
|
67792
|
+
icon: help,
|
|
67793
|
+
style: Style.buttonDefaultStyle
|
|
67794
|
+
};
|
|
67795
|
+
}
|
|
67796
|
+
function controlBarMiscUltra(modal, side, settings2) {
|
|
67797
|
+
return {
|
|
67798
|
+
id: Ids$2.miscSpan,
|
|
67799
|
+
enable: () => anyUltraMiscButton(settings2),
|
|
67800
|
+
style: Style.sectionDefaultStyle,
|
|
67801
|
+
buttons: [
|
|
67802
|
+
createMiscSettingsButton(side, settings2),
|
|
67803
|
+
createMiscHelpButton(modal, settings2)
|
|
67804
|
+
]
|
|
67805
|
+
};
|
|
67806
|
+
}
|
|
67807
|
+
function controlBarMisc(modal, side, settings2) {
|
|
67689
67808
|
const fullScreen = getFullScreenState();
|
|
67690
67809
|
return {
|
|
67691
|
-
id: Ids$2.
|
|
67692
|
-
enable: () =>
|
|
67810
|
+
id: Ids$2.miscSpan,
|
|
67811
|
+
enable: () => anyWebglMiscButton(settings2),
|
|
67693
67812
|
style: Style.sectionDefaultStyle,
|
|
67694
67813
|
buttons: [
|
|
67695
67814
|
{
|
|
67696
|
-
id: Ids$2.
|
|
67697
|
-
enabled: () =>
|
|
67815
|
+
id: Ids$2.miscInspector,
|
|
67816
|
+
enabled: () => showBimButton(settings2),
|
|
67698
67817
|
tip: "Project Inspector",
|
|
67699
67818
|
action: () => side.toggleContent("bim"),
|
|
67700
67819
|
icon: treeView,
|
|
67701
67820
|
style: Style.buttonDefaultStyle
|
|
67702
67821
|
},
|
|
67822
|
+
createMiscSettingsButton(side, settings2),
|
|
67823
|
+
createMiscHelpButton(modal, settings2),
|
|
67703
67824
|
{
|
|
67704
|
-
id: Ids$2.
|
|
67705
|
-
enabled: () => isTrue(
|
|
67706
|
-
tip: "Settings",
|
|
67707
|
-
action: () => side.toggleContent("settings"),
|
|
67708
|
-
icon: settings,
|
|
67709
|
-
style: Style.buttonDefaultStyle
|
|
67710
|
-
},
|
|
67711
|
-
{
|
|
67712
|
-
id: Ids$2.buttonHelp,
|
|
67713
|
-
enabled: () => isTrue(settings$1.ui.help),
|
|
67714
|
-
tip: "Help",
|
|
67715
|
-
action: () => modal.help(true),
|
|
67716
|
-
icon: help,
|
|
67717
|
-
style: Style.buttonDefaultStyle
|
|
67718
|
-
},
|
|
67719
|
-
{
|
|
67720
|
-
id: Ids$2.buttonMaximize,
|
|
67721
|
-
enabled: () => isTrue(settings$1.ui.maximise) && settings$1.capacity.canGoFullScreen,
|
|
67825
|
+
id: Ids$2.miscMaximize,
|
|
67826
|
+
enabled: () => isTrue(settings2.ui.miscMaximise) && settings2.capacity.canGoFullScreen,
|
|
67722
67827
|
tip: fullScreen.get() ? "Minimize" : "Fullscreen",
|
|
67723
67828
|
action: () => fullScreen.toggle(),
|
|
67724
67829
|
icon: fullScreen.get() ? minimize : fullsScreen,
|
|
@@ -67727,14 +67832,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67727
67832
|
]
|
|
67728
67833
|
};
|
|
67729
67834
|
}
|
|
67730
|
-
function controlBarCamera(camera2) {
|
|
67835
|
+
function controlBarCamera(camera2, settings2) {
|
|
67731
67836
|
return {
|
|
67732
|
-
id: Ids$2.
|
|
67837
|
+
id: Ids$2.cameraSpan,
|
|
67733
67838
|
enable: () => true,
|
|
67734
67839
|
style: Style.sectionDefaultStyle,
|
|
67735
67840
|
buttons: [
|
|
67736
67841
|
{
|
|
67737
|
-
id: Ids$2.
|
|
67842
|
+
id: Ids$2.cameraAuto,
|
|
67843
|
+
enabled: () => isTrue(settings2.cameraAuto),
|
|
67738
67844
|
tip: "Auto Camera",
|
|
67739
67845
|
isOn: () => camera2.autoCamera.get(),
|
|
67740
67846
|
action: () => camera2.autoCamera.set(!camera2.autoCamera.get()),
|
|
@@ -67742,8 +67848,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67742
67848
|
style: Style.buttonDefaultStyle
|
|
67743
67849
|
},
|
|
67744
67850
|
{
|
|
67745
|
-
id: Ids$2.
|
|
67746
|
-
|
|
67851
|
+
id: Ids$2.cameraFrameSelection,
|
|
67852
|
+
enabled: () => isTrue(settings2.cameraFrameSelection),
|
|
67747
67853
|
tip: "Frame Selection",
|
|
67748
67854
|
action: () => camera2.frameSelection.call(),
|
|
67749
67855
|
icon: frameSelection,
|
|
@@ -67751,8 +67857,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67751
67857
|
style: Style.buttonDefaultStyle
|
|
67752
67858
|
},
|
|
67753
67859
|
{
|
|
67754
|
-
id: Ids$2.
|
|
67755
|
-
|
|
67860
|
+
id: Ids$2.cameraFrameScene,
|
|
67861
|
+
enabled: () => isTrue(settings2.cameraFrameScene),
|
|
67756
67862
|
tip: "Frame All",
|
|
67757
67863
|
action: () => camera2.frameScene.call(),
|
|
67758
67864
|
icon: frameScene,
|
|
@@ -67762,16 +67868,17 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67762
67868
|
]
|
|
67763
67869
|
};
|
|
67764
67870
|
}
|
|
67765
|
-
function
|
|
67871
|
+
function controlBarVisibility(isolation, settings2) {
|
|
67766
67872
|
const adapter = isolation.adapter.current;
|
|
67767
67873
|
const someVisible = adapter.hasVisibleSelection() || !adapter.hasHiddenSelection();
|
|
67768
67874
|
return {
|
|
67769
|
-
id: Ids$2.
|
|
67875
|
+
id: Ids$2.visibilitySpan,
|
|
67770
67876
|
enable: () => true,
|
|
67771
|
-
style:
|
|
67877
|
+
style: Style.sectionDefaultStyle,
|
|
67772
67878
|
buttons: [
|
|
67773
67879
|
{
|
|
67774
|
-
id: Ids$2.
|
|
67880
|
+
id: Ids$2.visibilityClearSelection,
|
|
67881
|
+
enabled: () => isTrue(settings2.visibilityClearSelection),
|
|
67775
67882
|
tip: "Clear Selection",
|
|
67776
67883
|
action: () => adapter.clearSelection(),
|
|
67777
67884
|
icon: pointer,
|
|
@@ -67779,16 +67886,17 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67779
67886
|
style: Style.buttonDisableDefaultStyle
|
|
67780
67887
|
},
|
|
67781
67888
|
{
|
|
67782
|
-
id: Ids$2.
|
|
67889
|
+
id: Ids$2.visibilityShowAll,
|
|
67783
67890
|
tip: "Show All",
|
|
67891
|
+
enabled: () => isTrue(settings2.visibilityShowAll),
|
|
67784
67892
|
action: () => adapter.showAll(),
|
|
67785
67893
|
icon: showAll,
|
|
67786
67894
|
isOn: () => !isolation.autoIsolate.get() && isolation.visibility.get() !== "all",
|
|
67787
67895
|
style: Style.buttonDisableStyle
|
|
67788
67896
|
},
|
|
67789
67897
|
{
|
|
67790
|
-
id: Ids$2.
|
|
67791
|
-
enabled: () => someVisible,
|
|
67898
|
+
id: Ids$2.visibilityHideSelection,
|
|
67899
|
+
enabled: () => someVisible && isTrue(settings2.visibilityToggle),
|
|
67792
67900
|
tip: "Hide Selection",
|
|
67793
67901
|
action: () => adapter.hideSelection(),
|
|
67794
67902
|
icon: hideSelection,
|
|
@@ -67796,8 +67904,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67796
67904
|
style: Style.buttonDisableStyle
|
|
67797
67905
|
},
|
|
67798
67906
|
{
|
|
67799
|
-
id: Ids$2.
|
|
67800
|
-
enabled: () => !someVisible,
|
|
67907
|
+
id: Ids$2.visibilityShowSelection,
|
|
67908
|
+
enabled: () => !someVisible && isTrue(settings2.visibilityToggle),
|
|
67801
67909
|
tip: "Show Selection",
|
|
67802
67910
|
action: () => adapter.showSelection(),
|
|
67803
67911
|
icon: showSelection,
|
|
@@ -67805,7 +67913,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67805
67913
|
style: Style.buttonDisableStyle
|
|
67806
67914
|
},
|
|
67807
67915
|
{
|
|
67808
|
-
id: Ids$2.
|
|
67916
|
+
id: Ids$2.visibilityIsolateSelection,
|
|
67917
|
+
enabled: () => isTrue(settings2.visibilityIsolate),
|
|
67809
67918
|
tip: "Isolate Selection",
|
|
67810
67919
|
action: () => adapter.isolateSelection(),
|
|
67811
67920
|
icon: isolateSelection,
|
|
@@ -67813,14 +67922,16 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67813
67922
|
style: Style.buttonDisableStyle
|
|
67814
67923
|
},
|
|
67815
67924
|
{
|
|
67816
|
-
id: Ids$2.
|
|
67925
|
+
id: Ids$2.visibilityAutoIsolate,
|
|
67926
|
+
enabled: () => isTrue(settings2.visibilityAutoIsolate),
|
|
67817
67927
|
tip: "Auto Isolate",
|
|
67818
67928
|
action: () => isolation.autoIsolate.set(!isolation.autoIsolate.get()),
|
|
67819
67929
|
isOn: () => isolation.autoIsolate.get(),
|
|
67820
67930
|
icon: autoIsolate
|
|
67821
67931
|
},
|
|
67822
67932
|
{
|
|
67823
|
-
id: Ids$2.
|
|
67933
|
+
id: Ids$2.visibilitySettings,
|
|
67934
|
+
enabled: () => isTrue(settings2.visibilitySettings),
|
|
67824
67935
|
tip: "Isolation Settings",
|
|
67825
67936
|
action: () => isolation.showPanel.set(!isolation.showPanel.get()),
|
|
67826
67937
|
icon: slidersHoriz,
|
|
@@ -67831,28 +67942,31 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
67831
67942
|
}
|
|
67832
67943
|
function useControlBar(viewer, camera2, modal, side, cursor, settings2, section, isolationRef, customization) {
|
|
67833
67944
|
const measure2 = getMeasureState(viewer, cursor);
|
|
67834
|
-
const pointerSection = controlBarPointer(viewer, camera2, settings2);
|
|
67835
|
-
const actionSection = controlBarMeasure(settings2, measure2);
|
|
67836
|
-
const sectionBoxSection = controlBarSectionBox(section, viewer.selection.any());
|
|
67837
|
-
const settingsSection = controlBarSettings(modal, side, settings2);
|
|
67838
|
-
const cameraSection = controlBarCamera(camera2);
|
|
67839
|
-
const selectionSection = controlBarSelection(isolationRef);
|
|
67840
67945
|
let controlBarSections = [
|
|
67841
|
-
|
|
67842
|
-
|
|
67843
|
-
|
|
67844
|
-
|
|
67845
|
-
|
|
67846
|
-
|
|
67946
|
+
controlBarPointer(viewer, settings2.ui),
|
|
67947
|
+
controlBarCamera(camera2, settings2.ui),
|
|
67948
|
+
controlBarVisibility(isolationRef, settings2.ui),
|
|
67949
|
+
controlBarMeasure(measure2, settings2.ui),
|
|
67950
|
+
controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
|
|
67951
|
+
controlBarMisc(modal, side, settings2)
|
|
67847
67952
|
];
|
|
67848
67953
|
controlBarSections = (customization == null ? void 0 : customization(controlBarSections)) ?? controlBarSections;
|
|
67849
67954
|
return controlBarSections;
|
|
67850
67955
|
}
|
|
67956
|
+
function showBimButton(settings2) {
|
|
67957
|
+
if (isFalse(settings2.ui.miscProjectInspector)) return false;
|
|
67958
|
+
if (isTrue(settings2.ui.panelBimTree)) return true;
|
|
67959
|
+
if (isTrue(settings2.ui.panelBimInfo)) return true;
|
|
67960
|
+
return false;
|
|
67961
|
+
}
|
|
67851
67962
|
function anyUiCursorButton(settings2) {
|
|
67852
|
-
return isTrue(settings2.
|
|
67963
|
+
return isTrue(settings2.cursorOrbit) || isTrue(settings2.cursorLookAround) || isTrue(settings2.cursorPan) || isTrue(settings2.cursorZoom);
|
|
67853
67964
|
}
|
|
67854
|
-
function
|
|
67855
|
-
return isTrue(settings2.ui.
|
|
67965
|
+
function anyWebglMiscButton(settings2) {
|
|
67966
|
+
return isTrue(settings2.ui.miscProjectInspector) || isTrue(settings2.ui.miscSettings) || isTrue(settings2.ui.miscHelp) || isTrue(settings2.ui.miscMaximise);
|
|
67967
|
+
}
|
|
67968
|
+
function anyUltraMiscButton(settings2) {
|
|
67969
|
+
return isTrue(settings2.ui.miscSettings) || isTrue(settings2.ui.miscHelp);
|
|
67856
67970
|
}
|
|
67857
67971
|
function RestOfScreen(props) {
|
|
67858
67972
|
const [, setVersion] = React2.useState(0);
|
|
@@ -72753,7 +72867,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
72753
72867
|
return;
|
|
72754
72868
|
}
|
|
72755
72869
|
if (rectElem.top < rectContainer.top || rectElem.top < 0) {
|
|
72756
|
-
selection.scrollIntoView();
|
|
72870
|
+
selection.scrollIntoView({ block: "nearest", inline: "nearest" });
|
|
72757
72871
|
}
|
|
72758
72872
|
}
|
|
72759
72873
|
const isControlKey = (e) => {
|
|
@@ -72958,8 +73072,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
72958
73072
|
function OptionalBimPanel(props) {
|
|
72959
73073
|
return whenSomeTrue(
|
|
72960
73074
|
[
|
|
72961
|
-
props.settings.ui.
|
|
72962
|
-
props.settings.ui.
|
|
73075
|
+
props.settings.ui.panelBimTree,
|
|
73076
|
+
props.settings.ui.panelBimInfo
|
|
72963
73077
|
],
|
|
72964
73078
|
React2.createElement(BimPanel, props)
|
|
72965
73079
|
);
|
|
@@ -72972,11 +73086,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
72972
73086
|
}, [props.viewerState.vim.get(), props.viewerState.elements.get()]);
|
|
72973
73087
|
const selection = props.viewerState.selection.get();
|
|
72974
73088
|
const last = selection[selection.length - 1];
|
|
72975
|
-
const fullTree = isFalse(props.settings.ui.
|
|
72976
|
-
const fullInfo = isFalse(props.settings.ui.
|
|
73089
|
+
const fullTree = isFalse(props.settings.ui.panelBimInfo);
|
|
73090
|
+
const fullInfo = isFalse(props.settings.ui.panelBimTree);
|
|
72977
73091
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `vim-bim-panel vc-inset-0 vc-absolute vc-h-full vc-w-full ${fullTree ? "full-tree" : ""} ${props.visible ? "" : "vc-hidden"}`, children: [
|
|
72978
73092
|
whenTrue(
|
|
72979
|
-
props.settings.ui.
|
|
73093
|
+
props.settings.ui.panelBimTree,
|
|
72980
73094
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: `vim-bim-upper vc-flex vc-flex-col vc-absolute vc-w-full ${fullTree ? "vc-h-full" : "vc-h-[49%]"} `, children: [
|
|
72981
73095
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
72982
73096
|
"h2",
|
|
@@ -73010,21 +73124,21 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
73010
73124
|
// Divider if needed.
|
|
73011
73125
|
whenAllTrue(
|
|
73012
73126
|
[
|
|
73013
|
-
props.settings.ui.
|
|
73014
|
-
props.settings.ui.
|
|
73127
|
+
props.settings.ui.panelBimTree,
|
|
73128
|
+
props.settings.ui.panelBimInfo,
|
|
73015
73129
|
((_b2 = props.viewerState.elements.get()) == null ? void 0 : _b2.length) > 0
|
|
73016
73130
|
],
|
|
73017
73131
|
divider$1()
|
|
73018
73132
|
),
|
|
73019
73133
|
whenTrue(
|
|
73020
|
-
props.settings.ui.
|
|
73134
|
+
props.settings.ui.panelBimInfo,
|
|
73021
73135
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `vim-bim-lower-container vc-absolute ${fullInfo ? "vc-top-0" : "vc-top-[50%]"} vc-bottom-0 vc-bottom vc-left-0 vc-right-0`, children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
73022
73136
|
BimInfoPanel,
|
|
73023
73137
|
{
|
|
73024
73138
|
object: last,
|
|
73025
73139
|
vim: props.viewerState.vim.get(),
|
|
73026
73140
|
elements: props.viewerState.elements.get(),
|
|
73027
|
-
full: isFalse(props.settings.ui.
|
|
73141
|
+
full: isFalse(props.settings.ui.panelBimTree),
|
|
73028
73142
|
bimInfoRef: props.bimInfoRef
|
|
73029
73143
|
}
|
|
73030
73144
|
) })
|
|
@@ -73864,7 +73978,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
73864
73978
|
} else {
|
|
73865
73979
|
props.container.gfx.style.left = "0px";
|
|
73866
73980
|
}
|
|
73867
|
-
props.viewer.viewport.
|
|
73981
|
+
props.viewer.viewport.resizeToParent();
|
|
73868
73982
|
};
|
|
73869
73983
|
const getMaxSize = () => {
|
|
73870
73984
|
return props.container.root.clientWidth * MAX_WIDTH;
|
|
@@ -73923,7 +74037,10 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
73923
74037
|
style: {
|
|
73924
74038
|
position: "absolute"
|
|
73925
74039
|
},
|
|
73926
|
-
className: `vim-side-panel vc-top-0 vc-left-0 vc-z-20
|
|
74040
|
+
className: `vim-side-panel vc-top-0 vc-left-0 vc-z-20
|
|
74041
|
+
vc-bg-gray-lightest vc-text-gray-darker
|
|
74042
|
+
vc-border-r vc-border-gray-light
|
|
74043
|
+
${props.side.getContent() !== "none" ? "" : "vc-hidden"}`,
|
|
73927
74044
|
children: [
|
|
73928
74045
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
73929
74046
|
"button",
|
|
@@ -74006,180 +74123,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74006
74123
|
[side, width]
|
|
74007
74124
|
);
|
|
74008
74125
|
}
|
|
74009
|
-
function SettingsPanel(props) {
|
|
74010
|
-
if (!props.visible) return null;
|
|
74011
|
-
const toggleElement = (label, state, action) => {
|
|
74012
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: "vc-m-1 vc-block vc-select-none vc-items-center vc-py-1 vc-text-gray-warm", children: [
|
|
74013
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
74014
|
-
"input",
|
|
74015
|
-
{
|
|
74016
|
-
type: "checkbox",
|
|
74017
|
-
checked: state,
|
|
74018
|
-
onChange: action,
|
|
74019
|
-
className: "vim-settings-checkbox vc-checked:bg-primary-royal vc-mr-2 vc-rounded vc-border vc-border-gray-medium "
|
|
74020
|
-
}
|
|
74021
|
-
),
|
|
74022
|
-
" ",
|
|
74023
|
-
label
|
|
74024
|
-
] });
|
|
74025
|
-
};
|
|
74026
|
-
const settingsToggle = (label, getter, setter) => {
|
|
74027
|
-
const value = getter(props.settings.value);
|
|
74028
|
-
if (value === "AlwaysTrue" || value === "AlwaysFalse") {
|
|
74029
|
-
return null;
|
|
74030
|
-
}
|
|
74031
|
-
return toggleElement(label, value, () => {
|
|
74032
|
-
const value2 = getter(props.settings.value);
|
|
74033
|
-
props.settings.update((s) => setter(s, !value2));
|
|
74034
|
-
});
|
|
74035
|
-
};
|
|
74036
|
-
const settingsBox = (label, info, transform, getter, setter) => {
|
|
74037
|
-
const ref = React2.useRef(null);
|
|
74038
|
-
React2.useEffect(() => {
|
|
74039
|
-
ref.current.value = props.viewer.inputs.scrollSpeed.toFixed(2);
|
|
74040
|
-
}, []);
|
|
74041
|
-
getter(props.settings.value).toString();
|
|
74042
|
-
const update = (event) => {
|
|
74043
|
-
const str = event.target.value;
|
|
74044
|
-
const n = Number.parseFloat(str);
|
|
74045
|
-
if (Number.isNaN(n)) {
|
|
74046
|
-
event.target.value = getter(props.settings.value).toString();
|
|
74047
|
-
} else {
|
|
74048
|
-
const value2 = transform(n);
|
|
74049
|
-
event.target.value = value2.toString();
|
|
74050
|
-
props.settings.update((s) => setter(s, value2));
|
|
74051
|
-
}
|
|
74052
|
-
};
|
|
74053
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-box-input vc-my-1", children: [
|
|
74054
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2", children: [
|
|
74055
|
-
label,
|
|
74056
|
-
":"
|
|
74057
|
-
] }),
|
|
74058
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("input", { ref, type: "text", className: "vim-settings-textbox vc-w-14 vc-ml-1 vc-p-1", onBlur: (e) => update(e) }),
|
|
74059
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2 vc-text-gray vc-ml-1", children: info })
|
|
74060
|
-
] });
|
|
74061
|
-
};
|
|
74062
|
-
function settingsSubtitle(title2) {
|
|
74063
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-subtitle", children: title2 });
|
|
74064
|
-
}
|
|
74065
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
74066
|
-
"div",
|
|
74067
|
-
{
|
|
74068
|
-
className: "vc-absolute vc-inset-0",
|
|
74069
|
-
children: [
|
|
74070
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-title", children: "Settings " }),
|
|
74071
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vim-settings vc-absolute vc-top-6 vc-left-0 vc-bottom-0 vc-right-0 vc-overflow-y-auto", children: [
|
|
74072
|
-
settingsSubtitle("Inputs"),
|
|
74073
|
-
settingsBox(
|
|
74074
|
-
"Scroll Speed",
|
|
74075
|
-
"[0.1,10]",
|
|
74076
|
-
(n) => MathUtils.clamp(n, 0.1, 10),
|
|
74077
|
-
(s) => props.viewer.inputs.scrollSpeed,
|
|
74078
|
-
(s, v) => {
|
|
74079
|
-
props.viewer.inputs.scrollSpeed = v;
|
|
74080
|
-
}
|
|
74081
|
-
),
|
|
74082
|
-
settingsSubtitle("Panels"),
|
|
74083
|
-
settingsToggle(
|
|
74084
|
-
"Show Logo",
|
|
74085
|
-
(settings2) => settings2.ui.logo,
|
|
74086
|
-
(settings2, value) => settings2.ui.logo = value
|
|
74087
|
-
),
|
|
74088
|
-
settingsToggle(
|
|
74089
|
-
"Show Bim Tree",
|
|
74090
|
-
(settings2) => settings2.ui.bimTreePanel,
|
|
74091
|
-
(settings2, value) => settings2.ui.bimTreePanel = value
|
|
74092
|
-
),
|
|
74093
|
-
settingsToggle(
|
|
74094
|
-
"Show Bim Info",
|
|
74095
|
-
(settings2) => settings2.ui.bimInfoPanel,
|
|
74096
|
-
(settings2, value) => settings2.ui.bimInfoPanel = value
|
|
74097
|
-
),
|
|
74098
|
-
settingsToggle(
|
|
74099
|
-
"Show Axes Panel",
|
|
74100
|
-
(settings2) => settings2.ui.axesPanel,
|
|
74101
|
-
(settings2, value) => settings2.ui.axesPanel = value
|
|
74102
|
-
),
|
|
74103
|
-
settingsToggle(
|
|
74104
|
-
"Show Performance Panel",
|
|
74105
|
-
(settings2) => settings2.ui.performance,
|
|
74106
|
-
(settings2, value) => settings2.ui.performance = value
|
|
74107
|
-
),
|
|
74108
|
-
settingsSubtitle("Axes"),
|
|
74109
|
-
settingsToggle(
|
|
74110
|
-
"Show Orthographic Button",
|
|
74111
|
-
(settings2) => settings2.ui.orthographic,
|
|
74112
|
-
(settings2, value) => settings2.ui.orthographic = value
|
|
74113
|
-
),
|
|
74114
|
-
settingsToggle(
|
|
74115
|
-
"Show Reset Camera Button",
|
|
74116
|
-
(settings2) => settings2.ui.resetCamera,
|
|
74117
|
-
(settings2, value) => settings2.ui.resetCamera = value
|
|
74118
|
-
),
|
|
74119
|
-
settingsSubtitle("Control Bar"),
|
|
74120
|
-
settingsToggle(
|
|
74121
|
-
"Show Control Bar",
|
|
74122
|
-
(settings2) => settings2.ui.controlBar,
|
|
74123
|
-
(settings2, value) => settings2.ui.controlBar = value
|
|
74124
|
-
),
|
|
74125
|
-
settingsSubtitle("Control Bar - Cursors"),
|
|
74126
|
-
settingsToggle(
|
|
74127
|
-
"Show Orbit Button",
|
|
74128
|
-
(settings2) => settings2.ui.orbit,
|
|
74129
|
-
(settings2, value) => settings2.ui.orbit = value
|
|
74130
|
-
),
|
|
74131
|
-
settingsToggle(
|
|
74132
|
-
"Show Look Around Button",
|
|
74133
|
-
(settings2) => settings2.ui.lookAround,
|
|
74134
|
-
(settings2, value) => settings2.ui.lookAround = value
|
|
74135
|
-
),
|
|
74136
|
-
settingsToggle(
|
|
74137
|
-
"Show Pan Button",
|
|
74138
|
-
(settings2) => settings2.ui.pan,
|
|
74139
|
-
(settings2, value) => settings2.ui.pan = value
|
|
74140
|
-
),
|
|
74141
|
-
settingsToggle(
|
|
74142
|
-
"Show Zoom Button",
|
|
74143
|
-
(settings2) => settings2.ui.zoom,
|
|
74144
|
-
(settings2, value) => settings2.ui.zoom = value
|
|
74145
|
-
),
|
|
74146
|
-
settingsToggle(
|
|
74147
|
-
"Show Zoom Window Button",
|
|
74148
|
-
(settings2) => settings2.ui.zoomWindow,
|
|
74149
|
-
(settings2, value) => settings2.ui.zoomWindow = value
|
|
74150
|
-
),
|
|
74151
|
-
settingsSubtitle("Control Bar - Tools"),
|
|
74152
|
-
settingsToggle(
|
|
74153
|
-
"Show Measuring Mode Button",
|
|
74154
|
-
(settings2) => settings2.ui.measuringMode,
|
|
74155
|
-
(settings2, value) => settings2.ui.measuringMode = value
|
|
74156
|
-
),
|
|
74157
|
-
settingsSubtitle("Control Bar - Settings"),
|
|
74158
|
-
settingsToggle(
|
|
74159
|
-
"Show Project Inspector Button",
|
|
74160
|
-
(settings2) => settings2.ui.projectInspector,
|
|
74161
|
-
(settings2, value) => settings2.ui.projectInspector = value
|
|
74162
|
-
),
|
|
74163
|
-
settingsToggle(
|
|
74164
|
-
"Show Settings Button",
|
|
74165
|
-
(settings2) => settings2.ui.settings,
|
|
74166
|
-
(settings2, value) => settings2.ui.settings = value
|
|
74167
|
-
),
|
|
74168
|
-
settingsToggle(
|
|
74169
|
-
"Show Help Button",
|
|
74170
|
-
(settings2) => settings2.ui.help,
|
|
74171
|
-
(settings2, value) => settings2.ui.help = value
|
|
74172
|
-
),
|
|
74173
|
-
settingsToggle(
|
|
74174
|
-
"Show Maximise Button",
|
|
74175
|
-
(settings2) => settings2.ui.maximise,
|
|
74176
|
-
(settings2, value) => settings2.ui.maximise = value
|
|
74177
|
-
)
|
|
74178
|
-
] })
|
|
74179
|
-
]
|
|
74180
|
-
}
|
|
74181
|
-
);
|
|
74182
|
-
}
|
|
74183
74126
|
const MenuToastMemo = React2.memo(MenuToast);
|
|
74184
74127
|
function MenuToast(props) {
|
|
74185
74128
|
const [visible2, setVisible] = React2.useState();
|
|
@@ -74344,118 +74287,6 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74344
74287
|
}
|
|
74345
74288
|
});
|
|
74346
74289
|
}
|
|
74347
|
-
function useSettings(viewer, value) {
|
|
74348
|
-
const merged = createSettings(value);
|
|
74349
|
-
const [settings2, setSettings] = React2.useState(merged);
|
|
74350
|
-
const onUpdate = React2.useRef();
|
|
74351
|
-
const update = function(updater) {
|
|
74352
|
-
var _a3;
|
|
74353
|
-
const next = { ...settings2 };
|
|
74354
|
-
updater(next);
|
|
74355
|
-
saveSettingsToLocal(next);
|
|
74356
|
-
setSettings(next);
|
|
74357
|
-
(_a3 = onUpdate.current) == null ? void 0 : _a3.call(onUpdate, next);
|
|
74358
|
-
};
|
|
74359
|
-
React2.useEffect(() => {
|
|
74360
|
-
applySettings(viewer, settings2);
|
|
74361
|
-
}, []);
|
|
74362
|
-
React2.useEffect(() => {
|
|
74363
|
-
applySettings(viewer, settings2);
|
|
74364
|
-
}, [settings2]);
|
|
74365
|
-
return React2.useMemo(
|
|
74366
|
-
() => ({
|
|
74367
|
-
value: settings2,
|
|
74368
|
-
update,
|
|
74369
|
-
register: (v) => onUpdate.current = v
|
|
74370
|
-
}),
|
|
74371
|
-
[settings2]
|
|
74372
|
-
);
|
|
74373
|
-
}
|
|
74374
|
-
function applySettings(viewer, settings2) {
|
|
74375
|
-
const performance2 = document.getElementsByClassName("vim-performance-div")[0];
|
|
74376
|
-
if (performance2) {
|
|
74377
|
-
if (isTrue(settings2.ui.performance)) {
|
|
74378
|
-
performance2.classList.remove("vc-hidden");
|
|
74379
|
-
} else {
|
|
74380
|
-
performance2.classList.add("vc-hidden");
|
|
74381
|
-
}
|
|
74382
|
-
}
|
|
74383
|
-
}
|
|
74384
|
-
function createContainer(element) {
|
|
74385
|
-
let root = element;
|
|
74386
|
-
if (root === void 0) {
|
|
74387
|
-
root = document.createElement("div");
|
|
74388
|
-
document.body.append(root);
|
|
74389
|
-
root.classList.add("vc-inset-0");
|
|
74390
|
-
}
|
|
74391
|
-
root.style.position = "absolute";
|
|
74392
|
-
root.classList.add("vim-component");
|
|
74393
|
-
const gfx = document.createElement("div");
|
|
74394
|
-
gfx.className = "vim-gfx vc-absolute vc-inset-0 vc-pointer-events-none";
|
|
74395
|
-
const ui = document.createElement("div");
|
|
74396
|
-
ui.className = "vim-ui vc-absolute vc-inset-0";
|
|
74397
|
-
root.append(gfx);
|
|
74398
|
-
root.append(ui);
|
|
74399
|
-
const dispose = () => {
|
|
74400
|
-
if (element === void 0) {
|
|
74401
|
-
root.remove();
|
|
74402
|
-
} else {
|
|
74403
|
-
root.classList.remove("vim-component");
|
|
74404
|
-
gfx.remove();
|
|
74405
|
-
ui.remove();
|
|
74406
|
-
}
|
|
74407
|
-
};
|
|
74408
|
-
return { root, ui, gfx, dispose };
|
|
74409
|
-
}
|
|
74410
|
-
async function getElements(vim) {
|
|
74411
|
-
var _a3, _b2, _c, _d, _e;
|
|
74412
|
-
if (!vim.bim) return [];
|
|
74413
|
-
const [elements, bimDocument, category, levels, worksets] = await Promise.all(
|
|
74414
|
-
[
|
|
74415
|
-
(_a3 = vim.bim.element) == null ? void 0 : _a3.getAll(),
|
|
74416
|
-
(_b2 = vim.bim.bimDocument) == null ? void 0 : _b2.getAllTitle(),
|
|
74417
|
-
(_c = vim.bim.category) == null ? void 0 : _c.getAllName(),
|
|
74418
|
-
(_d = vim.bim.level) == null ? void 0 : _d.getAllElementIndex(),
|
|
74419
|
-
(_e = vim.bim.workset) == null ? void 0 : _e.getAllName()
|
|
74420
|
-
]
|
|
74421
|
-
);
|
|
74422
|
-
const familyTypeMap = await getFamilyTypeNameMap(vim.bim);
|
|
74423
|
-
if (!elements) return void 0;
|
|
74424
|
-
const result = elements.map((e) => {
|
|
74425
|
-
var _a4;
|
|
74426
|
-
return {
|
|
74427
|
-
...e,
|
|
74428
|
-
bimDocumentName: bimDocument ? bimDocument[e.bimDocumentIndex] : void 0,
|
|
74429
|
-
categoryName: category ? category[e.categoryIndex] : void 0,
|
|
74430
|
-
familyTypeName: familyTypeMap.get(e.index),
|
|
74431
|
-
levelName: levels ? (_a4 = elements[levels[(e == null ? void 0 : e.levelIndex) ?? -1]]) == null ? void 0 : _a4.name : void 0,
|
|
74432
|
-
worksetName: worksets ? worksets[(e == null ? void 0 : e.worksetIndex) ?? -1] : void 0
|
|
74433
|
-
};
|
|
74434
|
-
});
|
|
74435
|
-
const real = result.filter((e) => vim.getElementFromIndex(e.index).hasMesh);
|
|
74436
|
-
return real;
|
|
74437
|
-
}
|
|
74438
|
-
async function getFamilyTypeNameMap(document2) {
|
|
74439
|
-
const [
|
|
74440
|
-
familyInstanceElement,
|
|
74441
|
-
familyInstanceFamilyType,
|
|
74442
|
-
familyTypeElement,
|
|
74443
|
-
elementName
|
|
74444
|
-
] = await Promise.all([
|
|
74445
|
-
document2.familyInstance.getAllElementIndex(),
|
|
74446
|
-
document2.familyInstance.getAllFamilyTypeIndex(),
|
|
74447
|
-
document2.familyType.getAllElementIndex(),
|
|
74448
|
-
document2.element.getAllName()
|
|
74449
|
-
]);
|
|
74450
|
-
return new Map(
|
|
74451
|
-
familyInstanceElement.map((e, i2) => {
|
|
74452
|
-
const familyType = familyInstanceFamilyType == null ? void 0 : familyInstanceFamilyType[i2];
|
|
74453
|
-
const element = Number.isInteger(familyType) ? familyTypeElement[familyType] : void 0;
|
|
74454
|
-
const name = Number.isInteger(element) ? elementName == null ? void 0 : elementName[element] : void 0;
|
|
74455
|
-
return [e, name];
|
|
74456
|
-
})
|
|
74457
|
-
);
|
|
74458
|
-
}
|
|
74459
74290
|
class MutableState {
|
|
74460
74291
|
constructor(initial) {
|
|
74461
74292
|
__publicField(this, "_value");
|
|
@@ -74484,24 +74315,28 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74484
74315
|
}
|
|
74485
74316
|
};
|
|
74486
74317
|
}
|
|
74487
|
-
function useStateRef(initialValue) {
|
|
74488
|
-
const
|
|
74318
|
+
function useStateRef(initialValue, isLazy = false) {
|
|
74319
|
+
const getInitialValue = () => {
|
|
74320
|
+
if (isLazy && typeof initialValue === "function") {
|
|
74321
|
+
return initialValue();
|
|
74322
|
+
}
|
|
74323
|
+
return initialValue;
|
|
74324
|
+
};
|
|
74325
|
+
const [box, setBox] = React2.useState(() => ({
|
|
74326
|
+
current: getInitialValue()
|
|
74327
|
+
}));
|
|
74489
74328
|
const ref = React2.useRef(void 0);
|
|
74490
74329
|
if (ref.current === void 0) {
|
|
74491
|
-
|
|
74492
|
-
ref.current = initialValue();
|
|
74493
|
-
} else {
|
|
74494
|
-
ref.current = initialValue;
|
|
74495
|
-
}
|
|
74330
|
+
ref.current = getInitialValue();
|
|
74496
74331
|
}
|
|
74497
74332
|
const event = React2.useRef(new distExports.SimpleEventDispatcher());
|
|
74498
74333
|
const validate = React2.useRef((next, current) => next);
|
|
74499
|
-
const confirm = React2.useRef((
|
|
74500
|
-
const set2 = (
|
|
74501
|
-
const finalValue = validate.current(
|
|
74334
|
+
const confirm = React2.useRef((value) => value);
|
|
74335
|
+
const set2 = (value) => {
|
|
74336
|
+
const finalValue = validate.current(value, ref.current);
|
|
74502
74337
|
if (finalValue === ref.current) return;
|
|
74503
74338
|
ref.current = finalValue;
|
|
74504
|
-
|
|
74339
|
+
setBox({ current: finalValue });
|
|
74505
74340
|
event.current.dispatch(finalValue);
|
|
74506
74341
|
};
|
|
74507
74342
|
return {
|
|
@@ -74527,8 +74362,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74527
74362
|
*/
|
|
74528
74363
|
useOnChange(on) {
|
|
74529
74364
|
React2.useEffect(() => {
|
|
74530
|
-
return event.current.subscribe((
|
|
74531
|
-
const result = on(
|
|
74365
|
+
return event.current.subscribe((value) => {
|
|
74366
|
+
const result = on(value);
|
|
74532
74367
|
if (result instanceof Promise) {
|
|
74533
74368
|
result.catch(console.error);
|
|
74534
74369
|
}
|
|
@@ -74542,7 +74377,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74542
74377
|
* @returns The memoized value.
|
|
74543
74378
|
*/
|
|
74544
74379
|
useMemo(on, deps) {
|
|
74545
|
-
return React2.useMemo(() => on(
|
|
74380
|
+
return React2.useMemo(() => on(box.current), [...deps || [], box.current]);
|
|
74546
74381
|
},
|
|
74547
74382
|
/**
|
|
74548
74383
|
* Sets a validation function to process any new state value before updating.
|
|
@@ -74719,8 +74554,116 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74719
74554
|
useRefresher,
|
|
74720
74555
|
useStateRef
|
|
74721
74556
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
74722
|
-
function
|
|
74723
|
-
|
|
74557
|
+
function useSettings(value, defaultSettings, applySettings = () => {
|
|
74558
|
+
}) {
|
|
74559
|
+
const merged = createSettings(value, defaultSettings);
|
|
74560
|
+
const [settings2, setSettings] = React2.useState(merged);
|
|
74561
|
+
const onUpdate = React2.useRef();
|
|
74562
|
+
const customizer = useStateRef((settings22) => settings22);
|
|
74563
|
+
const update = function(updater) {
|
|
74564
|
+
var _a3;
|
|
74565
|
+
const next = { ...settings2 };
|
|
74566
|
+
updater(next);
|
|
74567
|
+
saveSettingsToLocal(next);
|
|
74568
|
+
setSettings(next);
|
|
74569
|
+
(_a3 = onUpdate.current) == null ? void 0 : _a3.call(onUpdate, next);
|
|
74570
|
+
};
|
|
74571
|
+
React2.useEffect(() => {
|
|
74572
|
+
applySettings(settings2);
|
|
74573
|
+
}, []);
|
|
74574
|
+
React2.useEffect(() => {
|
|
74575
|
+
applySettings(settings2);
|
|
74576
|
+
}, [settings2]);
|
|
74577
|
+
return React2.useMemo(
|
|
74578
|
+
() => ({
|
|
74579
|
+
value: settings2,
|
|
74580
|
+
update,
|
|
74581
|
+
register: (v) => onUpdate.current = v,
|
|
74582
|
+
customizer
|
|
74583
|
+
}),
|
|
74584
|
+
[settings2]
|
|
74585
|
+
);
|
|
74586
|
+
}
|
|
74587
|
+
function createSettings(settings2, defaultSettings) {
|
|
74588
|
+
return settings2 !== void 0 ? deepmerge(defaultSettings, settings2) : defaultSettings;
|
|
74589
|
+
}
|
|
74590
|
+
function createContainer(element) {
|
|
74591
|
+
let root = element;
|
|
74592
|
+
if (root === void 0) {
|
|
74593
|
+
root = document.createElement("div");
|
|
74594
|
+
document.body.append(root);
|
|
74595
|
+
root.classList.add("vc-inset-0");
|
|
74596
|
+
}
|
|
74597
|
+
root.style.position = "absolute";
|
|
74598
|
+
root.classList.add("vim-component");
|
|
74599
|
+
const gfx = document.createElement("div");
|
|
74600
|
+
gfx.className = "vim-gfx vc-absolute vc-inset-0 vc-pointer-events-none";
|
|
74601
|
+
const ui = document.createElement("div");
|
|
74602
|
+
ui.className = "vim-ui vc-absolute vc-inset-0";
|
|
74603
|
+
root.append(gfx);
|
|
74604
|
+
root.append(ui);
|
|
74605
|
+
const dispose = () => {
|
|
74606
|
+
if (element === void 0) {
|
|
74607
|
+
root.remove();
|
|
74608
|
+
} else {
|
|
74609
|
+
root.classList.remove("vim-component");
|
|
74610
|
+
gfx.remove();
|
|
74611
|
+
ui.remove();
|
|
74612
|
+
}
|
|
74613
|
+
};
|
|
74614
|
+
return { root, ui, gfx, dispose };
|
|
74615
|
+
}
|
|
74616
|
+
async function getElements(vim) {
|
|
74617
|
+
var _a3, _b2, _c, _d, _e;
|
|
74618
|
+
if (!vim.bim) return [];
|
|
74619
|
+
const [elements, bimDocument, category, levels, worksets] = await Promise.all(
|
|
74620
|
+
[
|
|
74621
|
+
(_a3 = vim.bim.element) == null ? void 0 : _a3.getAll(),
|
|
74622
|
+
(_b2 = vim.bim.bimDocument) == null ? void 0 : _b2.getAllTitle(),
|
|
74623
|
+
(_c = vim.bim.category) == null ? void 0 : _c.getAllName(),
|
|
74624
|
+
(_d = vim.bim.level) == null ? void 0 : _d.getAllElementIndex(),
|
|
74625
|
+
(_e = vim.bim.workset) == null ? void 0 : _e.getAllName()
|
|
74626
|
+
]
|
|
74627
|
+
);
|
|
74628
|
+
const familyTypeMap = await getFamilyTypeNameMap(vim.bim);
|
|
74629
|
+
if (!elements) return void 0;
|
|
74630
|
+
const result = elements.map((e) => {
|
|
74631
|
+
var _a4;
|
|
74632
|
+
return {
|
|
74633
|
+
...e,
|
|
74634
|
+
bimDocumentName: bimDocument ? bimDocument[e.bimDocumentIndex] : void 0,
|
|
74635
|
+
categoryName: category ? category[e.categoryIndex] : void 0,
|
|
74636
|
+
familyTypeName: familyTypeMap.get(e.index),
|
|
74637
|
+
levelName: levels ? (_a4 = elements[levels[(e == null ? void 0 : e.levelIndex) ?? -1]]) == null ? void 0 : _a4.name : void 0,
|
|
74638
|
+
worksetName: worksets ? worksets[(e == null ? void 0 : e.worksetIndex) ?? -1] : void 0
|
|
74639
|
+
};
|
|
74640
|
+
});
|
|
74641
|
+
const real = result.filter((e) => vim.getElementFromIndex(e.index).hasMesh);
|
|
74642
|
+
return real;
|
|
74643
|
+
}
|
|
74644
|
+
async function getFamilyTypeNameMap(document2) {
|
|
74645
|
+
const [
|
|
74646
|
+
familyInstanceElement,
|
|
74647
|
+
familyInstanceFamilyType,
|
|
74648
|
+
familyTypeElement,
|
|
74649
|
+
elementName
|
|
74650
|
+
] = await Promise.all([
|
|
74651
|
+
document2.familyInstance.getAllElementIndex(),
|
|
74652
|
+
document2.familyInstance.getAllFamilyTypeIndex(),
|
|
74653
|
+
document2.familyType.getAllElementIndex(),
|
|
74654
|
+
document2.element.getAllName()
|
|
74655
|
+
]);
|
|
74656
|
+
return new Map(
|
|
74657
|
+
familyInstanceElement.map((e, i2) => {
|
|
74658
|
+
const familyType = familyInstanceFamilyType == null ? void 0 : familyInstanceFamilyType[i2];
|
|
74659
|
+
const element = Number.isInteger(familyType) ? familyTypeElement[familyType] : void 0;
|
|
74660
|
+
const name = Number.isInteger(element) ? elementName == null ? void 0 : elementName[element] : void 0;
|
|
74661
|
+
return [e, name];
|
|
74662
|
+
})
|
|
74663
|
+
);
|
|
74664
|
+
}
|
|
74665
|
+
function useViewerState(viewer) {
|
|
74666
|
+
const getVim = () => {
|
|
74724
74667
|
var _a3;
|
|
74725
74668
|
const v = (_a3 = viewer.vims) == null ? void 0 : _a3[0];
|
|
74726
74669
|
return v;
|
|
@@ -74860,12 +74803,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74860
74803
|
const vcLink = `${vcColorLink} vc-underline`;
|
|
74861
74804
|
const vcLabel = "vc-text-[#3F444F]";
|
|
74862
74805
|
const vcRoboto = "vc-font-['Roboto',sans-serif]";
|
|
74863
|
-
function footer$1(
|
|
74864
|
-
return /* @__PURE__ */ jsxRuntimeExports.
|
|
74865
|
-
"More troubleshooting tips can be found",
|
|
74866
|
-
" ",
|
|
74867
|
-
link(url, "here")
|
|
74868
|
-
] });
|
|
74806
|
+
function footer$1() {
|
|
74807
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, {});
|
|
74869
74808
|
}
|
|
74870
74809
|
function mainText(text) {
|
|
74871
74810
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("p", { className: `vim-main-text vc-text-base ${vcColorPrimary} vc-mb-4 vc-font-normal`, children: text });
|
|
@@ -74913,31 +74852,18 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74913
74852
|
vcLink,
|
|
74914
74853
|
vcRoboto
|
|
74915
74854
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
74916
|
-
const support = "https://docs.vimaec.com";
|
|
74917
|
-
const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
|
|
74918
|
-
const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
|
|
74919
|
-
const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
74920
|
-
__proto__: null,
|
|
74921
|
-
support,
|
|
74922
|
-
supportControls,
|
|
74923
|
-
supportUltra
|
|
74924
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
74925
74855
|
function fileOpeningError(url) {
|
|
74926
74856
|
return {
|
|
74927
|
-
title: "File
|
|
74857
|
+
title: "VIM Ultra File Error",
|
|
74928
74858
|
body: serverFileOpeningErrorBody(url),
|
|
74929
|
-
footer: footer$1(
|
|
74859
|
+
footer: footer$1(),
|
|
74930
74860
|
canClose: false
|
|
74931
74861
|
};
|
|
74932
74862
|
}
|
|
74933
74863
|
function serverFileOpeningErrorBody(url) {
|
|
74934
74864
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
|
|
74935
|
-
mainText(/* @__PURE__ */ jsxRuntimeExports.
|
|
74936
|
-
|
|
74937
|
-
bold("error opening the VIM file"),
|
|
74938
|
-
". Please check the file exists at the path noted below."
|
|
74939
|
-
] })),
|
|
74940
|
-
subTitle("Error details:"),
|
|
74865
|
+
mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error opening the VIM file in VIM Ultra." })),
|
|
74866
|
+
subTitle("Details"),
|
|
74941
74867
|
dotList([bullet("File path:", url)])
|
|
74942
74868
|
] });
|
|
74943
74869
|
}
|
|
@@ -74946,136 +74872,110 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
74946
74872
|
return fileOpeningError(url);
|
|
74947
74873
|
}
|
|
74948
74874
|
return {
|
|
74949
|
-
title: "
|
|
74875
|
+
title: "VIM Ultra Download Error",
|
|
74950
74876
|
body: body$5(url, authToken, server),
|
|
74951
|
-
footer: footer$1(
|
|
74877
|
+
footer: footer$1(),
|
|
74952
74878
|
canClose: false
|
|
74953
74879
|
};
|
|
74954
74880
|
}
|
|
74955
74881
|
function body$5(url, authToken, server) {
|
|
74956
74882
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
|
|
74957
|
-
mainText(/* @__PURE__ */ jsxRuntimeExports.
|
|
74958
|
-
|
|
74959
|
-
bold("error downloading the VIM file"),
|
|
74960
|
-
". Please check the following conditions to get back up and running quickly."
|
|
74961
|
-
] })),
|
|
74962
|
-
subTitle("Error details:"),
|
|
74883
|
+
mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error downloading the VIM file in VIM Ultra." })),
|
|
74884
|
+
subTitle("Details"),
|
|
74963
74885
|
dotList([
|
|
74964
|
-
server ? bullet("VIM
|
|
74965
|
-
bullet("
|
|
74966
|
-
authToken ? bullet("
|
|
74886
|
+
server ? bullet("VIM Ultra:", server) : null,
|
|
74887
|
+
bullet("VIM URL:", url),
|
|
74888
|
+
authToken ? bullet("Access Token:", authToken) : null
|
|
74967
74889
|
]),
|
|
74968
|
-
subTitle("
|
|
74890
|
+
subTitle("Tips"),
|
|
74969
74891
|
numList([
|
|
74970
|
-
"
|
|
74971
|
-
"
|
|
74972
|
-
server ? "Check network access policies to allow the VIM Ultra Server access to the VIM File url." : ""
|
|
74892
|
+
"Ensure the VIM URL is valid",
|
|
74893
|
+
"Check your network connection and access policies"
|
|
74973
74894
|
])
|
|
74974
74895
|
] });
|
|
74975
74896
|
}
|
|
74976
74897
|
function serverFileLoadingError(url) {
|
|
74977
74898
|
return {
|
|
74978
|
-
title: "
|
|
74899
|
+
title: "VIM Ultra Loading Error",
|
|
74979
74900
|
body: body$4(url),
|
|
74980
|
-
footer: footer$1(
|
|
74901
|
+
footer: footer$1(),
|
|
74981
74902
|
canClose: false
|
|
74982
74903
|
};
|
|
74983
74904
|
}
|
|
74984
74905
|
function body$4(url) {
|
|
74985
74906
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
|
|
74986
|
-
mainText(/* @__PURE__ */ jsxRuntimeExports.
|
|
74987
|
-
|
|
74988
|
-
bold("couldn’t load the VIM file"),
|
|
74989
|
-
". This could be due to a couple of reasons, including that the file could be corrupt or not recognizable."
|
|
74990
|
-
] })),
|
|
74991
|
-
subTitle("Error details:"),
|
|
74907
|
+
mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error loading the VIM file in VIM Ultra." })),
|
|
74908
|
+
subTitle("Details"),
|
|
74992
74909
|
dotList([bullet("File path:", url)]),
|
|
74993
|
-
subTitle("
|
|
74910
|
+
subTitle("Tips"),
|
|
74994
74911
|
numList([
|
|
74995
|
-
"Reload
|
|
74996
|
-
"
|
|
74912
|
+
"Reload the page",
|
|
74913
|
+
"Ensure the VIM URL points to a valid VIM file",
|
|
74914
|
+
"Clear your VIM Ultra download cache"
|
|
74997
74915
|
])
|
|
74998
74916
|
] });
|
|
74999
74917
|
}
|
|
75000
74918
|
function serverConnectionError(url) {
|
|
75001
74919
|
return {
|
|
75002
|
-
title: "Connection
|
|
74920
|
+
title: "VIM Ultra Connection",
|
|
75003
74921
|
body: body$3(url, isLocalUrl(url)),
|
|
75004
|
-
footer: footer$1(
|
|
74922
|
+
footer: footer$1(),
|
|
75005
74923
|
canClose: false
|
|
75006
74924
|
};
|
|
75007
74925
|
}
|
|
75008
74926
|
function body$3(url, local) {
|
|
75009
74927
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
|
|
75010
|
-
mainText(/* @__PURE__ */ jsxRuntimeExports.
|
|
75011
|
-
|
|
75012
|
-
bold("error connecting to the ULTRA server"),
|
|
75013
|
-
". Please check the following conditions to get back up and running quickly."
|
|
75014
|
-
] })),
|
|
75015
|
-
subTitle("Troubleshooting tips:"),
|
|
74928
|
+
mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error connecting to VIM Ultra." })),
|
|
74929
|
+
subTitle("Tips"),
|
|
75016
74930
|
numList([
|
|
75017
74931
|
/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
75018
|
-
"Ensure that VIM Ultra",
|
|
75019
|
-
" ",
|
|
75020
|
-
link(supportUltra, "process is running"),
|
|
75021
|
-
" ",
|
|
75022
|
-
"at ",
|
|
74932
|
+
"Ensure that VIM Ultra is running at ",
|
|
75023
74933
|
detailText(url)
|
|
75024
74934
|
] }),
|
|
75025
|
-
"Check your
|
|
75026
|
-
"Check firewall permissions."
|
|
74935
|
+
"Check your network connection and access policies"
|
|
75027
74936
|
])
|
|
75028
74937
|
] });
|
|
75029
74938
|
}
|
|
75030
74939
|
function serverCompatibilityError(url, localVersion, remoteVersion) {
|
|
75031
74940
|
return {
|
|
75032
|
-
title: "Compatibility
|
|
74941
|
+
title: "VIM Ultra Compatibility",
|
|
75033
74942
|
body: body$2(url, localVersion, remoteVersion),
|
|
75034
|
-
footer: footer$1(
|
|
74943
|
+
footer: footer$1(),
|
|
75035
74944
|
canClose: false
|
|
75036
74945
|
};
|
|
75037
74946
|
}
|
|
75038
74947
|
function body$2(url, localVersion, remoteVersion) {
|
|
75039
74948
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
|
|
75040
|
-
mainText(/* @__PURE__ */ jsxRuntimeExports.
|
|
75041
|
-
|
|
75042
|
-
" ",
|
|
75043
|
-
bold("version of VIM Ultra Server that isn’t compatible with this visual"),
|
|
75044
|
-
". Please check the following conditions to get back up and running quickly."
|
|
75045
|
-
] })),
|
|
75046
|
-
subTitle("Error details:"),
|
|
74949
|
+
mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "The VIM Ultra version is incompatible with this visual." })),
|
|
74950
|
+
subTitle("Details"),
|
|
75047
74951
|
dotList([
|
|
75048
74952
|
bullet("Url:", url),
|
|
75049
74953
|
bullet("Local Version:", localVersion),
|
|
75050
74954
|
bullet("Remote Version:", remoteVersion)
|
|
75051
74955
|
]),
|
|
75052
|
-
subTitle("
|
|
74956
|
+
subTitle("Tips"),
|
|
75053
74957
|
numList([
|
|
75054
|
-
"Update
|
|
75055
|
-
"
|
|
74958
|
+
"Update this visual to a compatible version.",
|
|
74959
|
+
"Start a compatible version of VIM Ultra."
|
|
75056
74960
|
])
|
|
75057
74961
|
] });
|
|
75058
74962
|
}
|
|
75059
74963
|
function serverStreamError(url) {
|
|
75060
74964
|
return {
|
|
75061
|
-
title: "Stream Error",
|
|
74965
|
+
title: "VIM Ultra Stream Error",
|
|
75062
74966
|
body: body$1(),
|
|
75063
|
-
footer: footer$1(
|
|
74967
|
+
footer: footer$1(),
|
|
75064
74968
|
canClose: false
|
|
75065
74969
|
};
|
|
75066
74970
|
}
|
|
75067
74971
|
function body$1(url) {
|
|
75068
74972
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
|
|
75069
|
-
mainText(/* @__PURE__ */ jsxRuntimeExports.
|
|
75070
|
-
|
|
75071
|
-
bold("error starting a stream on the VIM Ultra Server"),
|
|
75072
|
-
". Please check the following conditions to get back up and running quickly."
|
|
75073
|
-
] })),
|
|
75074
|
-
subTitle("Troubleshooting tips:"),
|
|
74973
|
+
mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered a streaming error with VIM Ultra." })),
|
|
74974
|
+
subTitle("Tips"),
|
|
75075
74975
|
numList([
|
|
75076
|
-
"
|
|
75077
|
-
"
|
|
75078
|
-
"Restart
|
|
74976
|
+
"Reload the page",
|
|
74977
|
+
"Close other applications that may be using VIM Ultra",
|
|
74978
|
+
"Restart VIM Ultra"
|
|
75079
74979
|
])
|
|
75080
74980
|
] });
|
|
75081
74981
|
}
|
|
@@ -75307,16 +75207,19 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75307
75207
|
}
|
|
75308
75208
|
}
|
|
75309
75209
|
function MessageBox(props) {
|
|
75210
|
+
const [minimized, setMinimized] = React2.useState(props.value.minimize ?? false);
|
|
75310
75211
|
const p = props.value;
|
|
75311
75212
|
if (!p.title || !p.body) return null;
|
|
75312
75213
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vim-message-box vc-p-6 vc-max-h-[80%] vc-max-w-[80%] vc-w-[424px] vc-bg-white vc-rounded-md vc-shadow-message vc-shadow-[0px_4px_16px_rgba(33,39,51,0.5)] vc-font-roboto", children: [
|
|
75313
75214
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-flex vc-justify-between vc-items-center", children: [
|
|
75215
|
+
props.value.icon,
|
|
75314
75216
|
title(p.title),
|
|
75315
|
-
closeBtn(p.onClose)
|
|
75217
|
+
props.value.canClose && closeBtn(p.onClose),
|
|
75218
|
+
props.value.minimize && minimizeButton(minimized, setMinimized)
|
|
75316
75219
|
] }),
|
|
75317
|
-
divider(),
|
|
75318
|
-
body(p.body),
|
|
75319
|
-
footer(p.footer)
|
|
75220
|
+
!minimized && divider(),
|
|
75221
|
+
!minimized && body(p.body),
|
|
75222
|
+
!minimized && footer(p.footer)
|
|
75320
75223
|
] });
|
|
75321
75224
|
}
|
|
75322
75225
|
function title(title2) {
|
|
@@ -75326,6 +75229,9 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75326
75229
|
if (!onClose) return null;
|
|
75327
75230
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: onClose, className: "vc-text-[#212733] vc-text-xl", children: "×" });
|
|
75328
75231
|
}
|
|
75232
|
+
function minimizeButton(minimized, setMinimized) {
|
|
75233
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("button", { onClick: () => setMinimized(!minimized), className: "vc-text-[#212733] vc-text-xl", children: minimized ? /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "▼" }) : /* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: "▲" }) });
|
|
75234
|
+
}
|
|
75329
75235
|
function body(content2) {
|
|
75330
75236
|
if (content2 === void 0) return null;
|
|
75331
75237
|
if (typeof content2 === "string") {
|
|
@@ -75684,7 +75590,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75684
75590
|
adapter.setVisible(false);
|
|
75685
75591
|
adapter.setClip(false);
|
|
75686
75592
|
return adapter.onSelectionChanged.sub(() => {
|
|
75687
|
-
if (auto.get() && enable.get())
|
|
75593
|
+
if (auto.get() && enable.get()) sectionSelection.call();
|
|
75688
75594
|
});
|
|
75689
75595
|
}, []);
|
|
75690
75596
|
enable.useOnChange((v) => {
|
|
@@ -75692,7 +75598,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75692
75598
|
visible2.set(v);
|
|
75693
75599
|
showOffsetPanel.set(false);
|
|
75694
75600
|
if (v && auto.get()) {
|
|
75695
|
-
|
|
75601
|
+
sectionSelection.call();
|
|
75696
75602
|
} else {
|
|
75697
75603
|
sectionScene.call();
|
|
75698
75604
|
}
|
|
@@ -75703,7 +75609,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75703
75609
|
sideOffset.useOnChange((v) => sectionBox2.call(boxRef.current));
|
|
75704
75610
|
bottomOffset.useOnChange((v) => sectionBox2.call(boxRef.current));
|
|
75705
75611
|
auto.useOnChange((v) => {
|
|
75706
|
-
if (v)
|
|
75612
|
+
if (v) sectionSelection.call();
|
|
75707
75613
|
});
|
|
75708
75614
|
visible2.useOnChange((v) => adapter.setVisible(v));
|
|
75709
75615
|
const sectionBox2 = useArgActionRef((box) => {
|
|
@@ -75713,7 +75619,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75713
75619
|
const newBox = addBox(box, offsetsToBox3_(topOffset.get(), sideOffset.get(), bottomOffset.get()));
|
|
75714
75620
|
adapter.setBox(newBox);
|
|
75715
75621
|
});
|
|
75716
|
-
const
|
|
75622
|
+
const sectionSelection = useFuncRef(async () => {
|
|
75717
75623
|
const id2 = requestId.current;
|
|
75718
75624
|
const box = await getSelectionBox.call() ?? await getSceneBox.call();
|
|
75719
75625
|
if (requestId.current !== id2) return;
|
|
@@ -75733,7 +75639,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75733
75639
|
topOffset,
|
|
75734
75640
|
sideOffset,
|
|
75735
75641
|
bottomOffset,
|
|
75736
|
-
sectionSelection
|
|
75642
|
+
sectionSelection,
|
|
75737
75643
|
sectionScene,
|
|
75738
75644
|
sectionBox: sectionBox2,
|
|
75739
75645
|
getBox: () => adapter.getBox(),
|
|
@@ -75831,7 +75737,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75831
75737
|
}
|
|
75832
75738
|
const Ids = {
|
|
75833
75739
|
showGhost: "isolationPanel.showGhost",
|
|
75834
|
-
ghostOpacity: "isolationPanel.ghostOpacity"
|
|
75740
|
+
ghostOpacity: "isolationPanel.ghostOpacity",
|
|
75741
|
+
transparency: "isolationPanel.transparency"
|
|
75835
75742
|
};
|
|
75836
75743
|
const IsolationPanel$1 = React2.forwardRef(
|
|
75837
75744
|
(props, ref) => {
|
|
@@ -75843,8 +75750,20 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75843
75750
|
anchorElement: document.getElementById("vim-control-bar"),
|
|
75844
75751
|
showPanel: props.state.showPanel,
|
|
75845
75752
|
entries: [
|
|
75846
|
-
{
|
|
75847
|
-
|
|
75753
|
+
{
|
|
75754
|
+
type: "bool",
|
|
75755
|
+
id: Ids.showGhost,
|
|
75756
|
+
label: "Show Ghost",
|
|
75757
|
+
state: props.state.showGhost
|
|
75758
|
+
},
|
|
75759
|
+
/*
|
|
75760
|
+
{
|
|
75761
|
+
type: "bool",
|
|
75762
|
+
id: "showRooms",
|
|
75763
|
+
label: "Show Rooms",
|
|
75764
|
+
state: props.state.showRooms
|
|
75765
|
+
},
|
|
75766
|
+
*/
|
|
75848
75767
|
{
|
|
75849
75768
|
type: "number",
|
|
75850
75769
|
id: Ids.ghostOpacity,
|
|
@@ -75854,6 +75773,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75854
75773
|
min: 0,
|
|
75855
75774
|
max: 1,
|
|
75856
75775
|
step: 0.05
|
|
75776
|
+
},
|
|
75777
|
+
{
|
|
75778
|
+
type: "bool",
|
|
75779
|
+
visible: () => props.transparency,
|
|
75780
|
+
id: Ids.transparency,
|
|
75781
|
+
label: "Transparency",
|
|
75782
|
+
state: props.state.transparency
|
|
75857
75783
|
}
|
|
75858
75784
|
]
|
|
75859
75785
|
}
|
|
@@ -75862,12 +75788,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75862
75788
|
);
|
|
75863
75789
|
function useSharedIsolation(adapter) {
|
|
75864
75790
|
const _adapter = React2.useRef(adapter);
|
|
75865
|
-
const visibility = useStateRef(() => adapter.computeVisibility());
|
|
75791
|
+
const visibility = useStateRef(() => adapter.computeVisibility(), true);
|
|
75866
75792
|
const autoIsolate2 = useStateRef(false);
|
|
75867
75793
|
const showPanel = useStateRef(false);
|
|
75868
75794
|
const showRooms = useStateRef(false);
|
|
75869
75795
|
const showGhost = useStateRef(false);
|
|
75870
|
-
const ghostOpacity = useStateRef(() => adapter.getGhostOpacity());
|
|
75796
|
+
const ghostOpacity = useStateRef(() => adapter.getGhostOpacity(), true);
|
|
75797
|
+
const transparency = useStateRef(true);
|
|
75871
75798
|
const onAutoIsolate = useFuncRef(() => {
|
|
75872
75799
|
if (adapter.hasSelection()) {
|
|
75873
75800
|
adapter.isolateSelection();
|
|
@@ -75892,6 +75819,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75892
75819
|
});
|
|
75893
75820
|
showGhost.useOnChange((v) => adapter.showGhost(v));
|
|
75894
75821
|
showRooms.useOnChange((v) => adapter.setShowRooms(v));
|
|
75822
|
+
transparency.useOnChange((v) => adapter.enableTransparency(v));
|
|
75895
75823
|
ghostOpacity.useValidate((next, current) => {
|
|
75896
75824
|
return next <= 0 ? current : next;
|
|
75897
75825
|
});
|
|
@@ -75905,7 +75833,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75905
75833
|
showRooms,
|
|
75906
75834
|
ghostOpacity,
|
|
75907
75835
|
onAutoIsolate,
|
|
75908
|
-
onVisibilityChange
|
|
75836
|
+
onVisibilityChange,
|
|
75837
|
+
transparency
|
|
75909
75838
|
};
|
|
75910
75839
|
}
|
|
75911
75840
|
function useWebglIsolation(viewer) {
|
|
@@ -75913,6 +75842,29 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75913
75842
|
return useSharedIsolation(adapter);
|
|
75914
75843
|
}
|
|
75915
75844
|
function createWebglIsolationAdapter(viewer) {
|
|
75845
|
+
var transparency = true;
|
|
75846
|
+
var ghost2 = false;
|
|
75847
|
+
var rooms = false;
|
|
75848
|
+
function updateMaterials() {
|
|
75849
|
+
viewer.renderer.modelMaterial = !ghost2 && transparency ? void 0 : ghost2 && transparency ? [void 0, viewer.materials.ghost] : !ghost2 && !transparency ? viewer.materials.simple : ghost2 && !transparency ? [viewer.materials.simple, viewer.materials.ghost] : (() => {
|
|
75850
|
+
throw new Error("Unreachable state in isolation materials");
|
|
75851
|
+
})();
|
|
75852
|
+
}
|
|
75853
|
+
function updateVisibility(elements, predicate) {
|
|
75854
|
+
if (elements === "all") {
|
|
75855
|
+
for (let v of viewer.vims) {
|
|
75856
|
+
for (let o of v.getAllElements()) {
|
|
75857
|
+
if (o.type === "Element3D") {
|
|
75858
|
+
o.visible = o.isRoom ? rooms : predicate(o);
|
|
75859
|
+
}
|
|
75860
|
+
}
|
|
75861
|
+
}
|
|
75862
|
+
} else {
|
|
75863
|
+
for (let o of elements) {
|
|
75864
|
+
o.visible = o.isRoom ? rooms : predicate(o);
|
|
75865
|
+
}
|
|
75866
|
+
}
|
|
75867
|
+
}
|
|
75916
75868
|
return {
|
|
75917
75869
|
onVisibilityChange: viewer.renderer.onSceneUpdated,
|
|
75918
75870
|
onSelectionChanged: viewer.selection.onSelectionChanged,
|
|
@@ -75921,28 +75873,28 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75921
75873
|
hasVisibleSelection: () => viewer.selection.any() && viewer.selection.getAll().every((o) => o.visible),
|
|
75922
75874
|
hasHiddenSelection: () => viewer.selection.any() && viewer.selection.getAll().every((o) => !o.visible),
|
|
75923
75875
|
clearSelection: () => viewer.selection.clear(),
|
|
75924
|
-
isolateSelection: () =>
|
|
75876
|
+
isolateSelection: () => updateVisibility("all", (o) => viewer.selection.has(o)),
|
|
75925
75877
|
hideSelection: () => {
|
|
75926
|
-
viewer.selection.getAll()
|
|
75878
|
+
updateVisibility(viewer.selection.getAll(), (o) => false);
|
|
75927
75879
|
},
|
|
75928
75880
|
showSelection: () => {
|
|
75929
|
-
viewer.selection.getAll()
|
|
75881
|
+
updateVisibility(viewer.selection.getAll(), (o) => true);
|
|
75930
75882
|
},
|
|
75931
75883
|
hideAll: () => {
|
|
75932
|
-
|
|
75884
|
+
updateVisibility("all", (o) => false);
|
|
75933
75885
|
},
|
|
75934
75886
|
showAll: () => {
|
|
75935
|
-
|
|
75887
|
+
updateVisibility("all", (o) => true);
|
|
75936
75888
|
},
|
|
75937
75889
|
isolate: (instances) => {
|
|
75938
75890
|
const set2 = new Set(instances);
|
|
75939
|
-
|
|
75891
|
+
updateVisibility("all", (o) => o.instances.some((i2) => set2.has(i2)));
|
|
75940
75892
|
},
|
|
75941
75893
|
show: (instances) => {
|
|
75942
75894
|
for (let i2 of instances) {
|
|
75943
75895
|
for (let v of viewer.vims) {
|
|
75944
75896
|
const o = v.getElement(i2);
|
|
75945
|
-
o.visible = true;
|
|
75897
|
+
o.visible = o.isRoom ? rooms : true;
|
|
75946
75898
|
}
|
|
75947
75899
|
}
|
|
75948
75900
|
},
|
|
@@ -75950,29 +75902,30 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75950
75902
|
for (let i2 of instances) {
|
|
75951
75903
|
for (let v of viewer.vims) {
|
|
75952
75904
|
const o = v.getElement(i2);
|
|
75953
|
-
o.visible = false;
|
|
75905
|
+
o.visible = o.isRoom ? rooms : false;
|
|
75954
75906
|
}
|
|
75955
75907
|
}
|
|
75956
75908
|
},
|
|
75909
|
+
enableTransparency: (enable) => {
|
|
75910
|
+
if (transparency !== enable) {
|
|
75911
|
+
transparency = enable;
|
|
75912
|
+
updateMaterials();
|
|
75913
|
+
}
|
|
75914
|
+
},
|
|
75957
75915
|
showGhost: (show) => {
|
|
75958
|
-
|
|
75916
|
+
ghost2 = show;
|
|
75917
|
+
updateMaterials();
|
|
75959
75918
|
},
|
|
75960
75919
|
getGhostOpacity: () => viewer.materials.ghostOpacity,
|
|
75961
75920
|
setGhostOpacity: (opacity) => viewer.materials.ghostOpacity = opacity,
|
|
75962
|
-
getShowRooms: () =>
|
|
75921
|
+
getShowRooms: () => rooms,
|
|
75963
75922
|
setShowRooms: (show) => {
|
|
75964
|
-
|
|
75965
|
-
|
|
75966
|
-
|
|
75967
|
-
}
|
|
75968
|
-
function updateAllVisibility(viewer, predicate) {
|
|
75969
|
-
for (let v of viewer.vims) {
|
|
75970
|
-
for (let o of v.getAllElements()) {
|
|
75971
|
-
if (o.type === "Element3D") {
|
|
75972
|
-
o.visible = predicate(o);
|
|
75923
|
+
if (rooms !== show) {
|
|
75924
|
+
rooms = show;
|
|
75925
|
+
updateVisibility("all", (o) => o.visible);
|
|
75973
75926
|
}
|
|
75974
75927
|
}
|
|
75975
|
-
}
|
|
75928
|
+
};
|
|
75976
75929
|
}
|
|
75977
75930
|
function getVisibilityState$1(viewer) {
|
|
75978
75931
|
let all = true;
|
|
@@ -75998,6 +75951,572 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
75998
75951
|
if (onlySelectionFlag) return "onlySelection";
|
|
75999
75952
|
return "some";
|
|
76000
75953
|
}
|
|
75954
|
+
function getDefaultSettings() {
|
|
75955
|
+
return {
|
|
75956
|
+
capacity: {
|
|
75957
|
+
canFollowUrl: true,
|
|
75958
|
+
canGoFullScreen: true,
|
|
75959
|
+
canDownload: true,
|
|
75960
|
+
canReadLocalStorage: true
|
|
75961
|
+
},
|
|
75962
|
+
ui: {
|
|
75963
|
+
panelLogo: true,
|
|
75964
|
+
panelPerformance: false,
|
|
75965
|
+
panelBimTree: true,
|
|
75966
|
+
panelBimInfo: true,
|
|
75967
|
+
panelAxes: true,
|
|
75968
|
+
panelControlBar: true,
|
|
75969
|
+
axesOrthographic: true,
|
|
75970
|
+
axesHome: true,
|
|
75971
|
+
// Control bar - cursors
|
|
75972
|
+
cursorOrbit: true,
|
|
75973
|
+
cursorLookAround: true,
|
|
75974
|
+
cursorPan: true,
|
|
75975
|
+
cursorZoom: true,
|
|
75976
|
+
// Control bar - camera
|
|
75977
|
+
cameraAuto: true,
|
|
75978
|
+
cameraFrameScene: true,
|
|
75979
|
+
cameraFrameSelection: true,
|
|
75980
|
+
// Control bar - tools
|
|
75981
|
+
sectioningEnable: true,
|
|
75982
|
+
sectioningFitToSelection: true,
|
|
75983
|
+
sectioningReset: true,
|
|
75984
|
+
sectioningShow: true,
|
|
75985
|
+
sectioningAuto: true,
|
|
75986
|
+
sectioningSettings: true,
|
|
75987
|
+
measureEnable: true,
|
|
75988
|
+
// Control bar - Visibility
|
|
75989
|
+
visibilityClearSelection: true,
|
|
75990
|
+
visibilityShowAll: true,
|
|
75991
|
+
visibilityToggle: true,
|
|
75992
|
+
visibilityIsolate: true,
|
|
75993
|
+
visibilityAutoIsolate: true,
|
|
75994
|
+
visibilitySettings: true,
|
|
75995
|
+
// Control bar - settings
|
|
75996
|
+
miscProjectInspector: true,
|
|
75997
|
+
miscSettings: true,
|
|
75998
|
+
miscHelp: true,
|
|
75999
|
+
miscMaximise: true
|
|
76000
|
+
}
|
|
76001
|
+
};
|
|
76002
|
+
}
|
|
76003
|
+
function renderSettingsInputBox(settings2, item) {
|
|
76004
|
+
const ref = React2.useRef(null);
|
|
76005
|
+
React2.useEffect(() => {
|
|
76006
|
+
var _a3;
|
|
76007
|
+
ref.current.value = (_a3 = item.getter(settings2.value)) == null ? void 0 : _a3.toString();
|
|
76008
|
+
}, []);
|
|
76009
|
+
const update = (event) => {
|
|
76010
|
+
const str = event.target.value;
|
|
76011
|
+
const n = Number.parseFloat(str);
|
|
76012
|
+
if (Number.isNaN(n)) {
|
|
76013
|
+
event.target.value = item.getter(settings2.value).toString();
|
|
76014
|
+
} else {
|
|
76015
|
+
const value = item.transform(n);
|
|
76016
|
+
event.target.value = value.toString();
|
|
76017
|
+
settings2.update((s) => item.setter(s, value));
|
|
76018
|
+
}
|
|
76019
|
+
};
|
|
76020
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-box-input vc-my-1 ", children: [
|
|
76021
|
+
/* @__PURE__ */ jsxRuntimeExports.jsxs("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2", children: [
|
|
76022
|
+
item.label,
|
|
76023
|
+
":"
|
|
76024
|
+
] }),
|
|
76025
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76026
|
+
"input",
|
|
76027
|
+
{
|
|
76028
|
+
ref,
|
|
76029
|
+
type: "text",
|
|
76030
|
+
className: "vim-settings-textbox vc-border vc-rounded-sm vc-border-gray vc-w-14 vc-ml-1 vc-p-1",
|
|
76031
|
+
onBlur: update
|
|
76032
|
+
}
|
|
76033
|
+
),
|
|
76034
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { htmlFor: "textbox", className: "vc-w-3 vc-h-2 vc-text-gray vc-ml-1", children: item.info })
|
|
76035
|
+
] });
|
|
76036
|
+
}
|
|
76037
|
+
function renderSettingsToggle(settings2, item) {
|
|
76038
|
+
const value = item.getter(settings2.value);
|
|
76039
|
+
if (value === "AlwaysTrue" || value === "AlwaysFalse") return null;
|
|
76040
|
+
const handleChange = () => {
|
|
76041
|
+
const current = item.getter(settings2.value);
|
|
76042
|
+
settings2.update((s) => item.setter(s, !current));
|
|
76043
|
+
};
|
|
76044
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("label", { className: "vc-m-1 vc-block vc-select-none vc-items-center vc-py-1 vc-text-gray-warm", children: [
|
|
76045
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76046
|
+
"input",
|
|
76047
|
+
{
|
|
76048
|
+
type: "checkbox",
|
|
76049
|
+
checked: value,
|
|
76050
|
+
onChange: handleChange,
|
|
76051
|
+
className: "vim-settings-checkbox vc-checked:bg-primary-royal vc-mr-2 vc-rounded vc-border vc-border-gray-medium"
|
|
76052
|
+
}
|
|
76053
|
+
),
|
|
76054
|
+
" ",
|
|
76055
|
+
item.label
|
|
76056
|
+
] });
|
|
76057
|
+
}
|
|
76058
|
+
function renderSettingsSubtitle(item) {
|
|
76059
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-subtitle", children: item.title });
|
|
76060
|
+
}
|
|
76061
|
+
function SettingsPanel(props) {
|
|
76062
|
+
if (!props.visible) return null;
|
|
76063
|
+
function renderItem(settings2, item) {
|
|
76064
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(React2.Fragment, { children: (() => {
|
|
76065
|
+
switch (item.type) {
|
|
76066
|
+
case "subtitle":
|
|
76067
|
+
return renderSettingsSubtitle(item);
|
|
76068
|
+
case "toggle":
|
|
76069
|
+
return renderSettingsToggle(settings2, item);
|
|
76070
|
+
case "box":
|
|
76071
|
+
return renderSettingsInputBox(settings2, item);
|
|
76072
|
+
case "element":
|
|
76073
|
+
return item.element;
|
|
76074
|
+
default:
|
|
76075
|
+
return null;
|
|
76076
|
+
}
|
|
76077
|
+
})() }, item.key);
|
|
76078
|
+
}
|
|
76079
|
+
const customizer = props.settings.customizer.get();
|
|
76080
|
+
const content2 = customizer ? customizer(props.content) : props.content;
|
|
76081
|
+
const sections = buildSections(content2);
|
|
76082
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "vc-absolute vc-inset-0", children: [
|
|
76083
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("h3", { className: "vc-title vc-mb-2", children: "Settings" }),
|
|
76084
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "\r\n vim-settings\r\n vc-absolute vc-top-8 vc-left-0 vc-right-0 vc-bottom-0\r\n vc-overflow-y-auto\r\n vc-pr-2\r\n vc-space-y-2\r\n vc-box-border\r\n ", children: sections.map((section) => /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
76085
|
+
"details",
|
|
76086
|
+
{
|
|
76087
|
+
open: true,
|
|
76088
|
+
className: "\r\n vim-settings-section\r\n vc-bg-white\r\n vc-rounded-md\r\n vc-shadow-sm\r\n vc-border\r\n vc-border-slate-200\r\n vc-p-2\r\n vc-space-y-2\r\n ",
|
|
76089
|
+
children: [
|
|
76090
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("summary", { className: "vim-settings-section-title vc-font-medium vc-text-sm vc-cursor-pointer", children: section.title }),
|
|
76091
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "vim-settings-section-content vc-mt-2 vc-space-y-2", children: section.items.map(
|
|
76092
|
+
(item) => renderItem(props.settings, item)
|
|
76093
|
+
) })
|
|
76094
|
+
]
|
|
76095
|
+
},
|
|
76096
|
+
section.key
|
|
76097
|
+
)) })
|
|
76098
|
+
] });
|
|
76099
|
+
}
|
|
76100
|
+
function buildSections(items) {
|
|
76101
|
+
const sections = [];
|
|
76102
|
+
let current = null;
|
|
76103
|
+
for (const item of items) {
|
|
76104
|
+
if (item.type === "subtitle") {
|
|
76105
|
+
current = {
|
|
76106
|
+
key: item.key,
|
|
76107
|
+
title: item.title,
|
|
76108
|
+
items: []
|
|
76109
|
+
};
|
|
76110
|
+
sections.push(current);
|
|
76111
|
+
} else {
|
|
76112
|
+
if (!current) {
|
|
76113
|
+
current = {
|
|
76114
|
+
key: "default",
|
|
76115
|
+
title: "",
|
|
76116
|
+
items: []
|
|
76117
|
+
};
|
|
76118
|
+
sections.push(current);
|
|
76119
|
+
}
|
|
76120
|
+
current.items.push(item);
|
|
76121
|
+
}
|
|
76122
|
+
}
|
|
76123
|
+
return sections;
|
|
76124
|
+
}
|
|
76125
|
+
class SettingsPanelKeys {
|
|
76126
|
+
}
|
|
76127
|
+
// === Inputs ===
|
|
76128
|
+
__publicField(SettingsPanelKeys, "InputsSubtitle", "inputs");
|
|
76129
|
+
__publicField(SettingsPanelKeys, "InputsScrollSpeedBox", "scrollSpeed");
|
|
76130
|
+
// === Panels ===
|
|
76131
|
+
__publicField(SettingsPanelKeys, "PanelsSubtitle", "panels");
|
|
76132
|
+
__publicField(SettingsPanelKeys, "PanelsShowLogoToggle", "logo");
|
|
76133
|
+
__publicField(SettingsPanelKeys, "PanelsShowBimTreeToggle", "bimTree");
|
|
76134
|
+
__publicField(SettingsPanelKeys, "PanelsShowBimInfoToggle", "bimInfo");
|
|
76135
|
+
__publicField(SettingsPanelKeys, "PanelsShowAxesPanelToggle", "axesPanel");
|
|
76136
|
+
__publicField(SettingsPanelKeys, "PanelsShowPerformancePanelToggle", "performance");
|
|
76137
|
+
// === Axes ===
|
|
76138
|
+
__publicField(SettingsPanelKeys, "AxesSubtitle", "axes");
|
|
76139
|
+
__publicField(SettingsPanelKeys, "AxesShowOrthographicButtonToggle", "orthographic");
|
|
76140
|
+
__publicField(SettingsPanelKeys, "AxesShowResetCameraButtonToggle", "resetCamera");
|
|
76141
|
+
// === Control Bar ===
|
|
76142
|
+
__publicField(SettingsPanelKeys, "ControlBarSubtitle", "controlBar");
|
|
76143
|
+
__publicField(SettingsPanelKeys, "ControlBarShowControlBarToggle", "controlBarVisible");
|
|
76144
|
+
// --- Control Bar - Cursors ---
|
|
76145
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsSubtitle", "controlBarCursors");
|
|
76146
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowOrbitButtonToggle", "orbit");
|
|
76147
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowLookAroundButtonToggle", "lookAround");
|
|
76148
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowPanButtonToggle", "pan");
|
|
76149
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowZoomButtonToggle", "zoom");
|
|
76150
|
+
__publicField(SettingsPanelKeys, "ControlBarCursorsShowZoomWindowButtonToggle", "zoomWindow");
|
|
76151
|
+
// --- Control Bar - Tools ---
|
|
76152
|
+
__publicField(SettingsPanelKeys, "ControlBarToolsSubtitle", "controlBarTools");
|
|
76153
|
+
__publicField(SettingsPanelKeys, "ControlBarToolsShowMeasuringModeButtonToggle", "measuringMode");
|
|
76154
|
+
// --- Control Bar Camera ---
|
|
76155
|
+
__publicField(SettingsPanelKeys, "ControlBarCameraSubtitle", "settingsPanel.controlBar.Camera");
|
|
76156
|
+
__publicField(SettingsPanelKeys, "ControlBarAutoCamera", "settingsPanel.controlBar.autoCamera");
|
|
76157
|
+
__publicField(SettingsPanelKeys, "ControlBarFrameSelection", "settingsPanel.controlBar.frameSelection");
|
|
76158
|
+
__publicField(SettingsPanelKeys, "ControlBarFrameAll", "settingsPanel.controlBar.frameAll");
|
|
76159
|
+
// --- Control Bar - Sectioning ---
|
|
76160
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningSubtitle", "settingsPanel.controlBar.sectioning");
|
|
76161
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningEnable", "settingsPanel.controlBar.enableSectioning");
|
|
76162
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningFitToSelection", "settingsPanel.controlBar.fitToSelection");
|
|
76163
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningReset", "settingsPanel.controlBar.reset");
|
|
76164
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningShow", "settingsPanel.controlBar.show");
|
|
76165
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningAuto", "settingsPanel.controlBar.auto");
|
|
76166
|
+
__publicField(SettingsPanelKeys, "ControlBarSectioningSettings", "settingsPanel.controlBar.settings");
|
|
76167
|
+
// --- Control Bar - Visibility ---
|
|
76168
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilitySubtitle", "controlBar.visibility.subtitle");
|
|
76169
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityClearSelection", "controlBar.visibility.clearSelection");
|
|
76170
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityShowAll", "controlBar.visibility.showAll");
|
|
76171
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityToggle", "controlBar.visibility.toggle");
|
|
76172
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityIsolate", "controlBar.visibility.isolate");
|
|
76173
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilityAutoIsolate", "controlBar.visibility.autoIsolate");
|
|
76174
|
+
__publicField(SettingsPanelKeys, "ControlBarVisibilitySettings", "controlBar.visibility.settings");
|
|
76175
|
+
// --- Control Bar - Settings ---
|
|
76176
|
+
__publicField(SettingsPanelKeys, "ControlBarMiscSubtitle", "controlBarSettings");
|
|
76177
|
+
__publicField(SettingsPanelKeys, "ControlBarMiscShowProjectInspectorButtonToggle", "projectInspector");
|
|
76178
|
+
__publicField(SettingsPanelKeys, "ControlBarMiscShowSettingsButtonToggle", "settingsButton");
|
|
76179
|
+
__publicField(SettingsPanelKeys, "ControlBarMiscShowHelpButtonToggle", "help");
|
|
76180
|
+
__publicField(SettingsPanelKeys, "ControlBarMiscShowMaximiseButtonToggle", "maximise");
|
|
76181
|
+
function getControlBarCursorSettings() {
|
|
76182
|
+
return [
|
|
76183
|
+
{
|
|
76184
|
+
type: "subtitle",
|
|
76185
|
+
key: SettingsPanelKeys.ControlBarCursorsSubtitle,
|
|
76186
|
+
title: "Control Bar - Cursors"
|
|
76187
|
+
},
|
|
76188
|
+
{
|
|
76189
|
+
type: "toggle",
|
|
76190
|
+
key: SettingsPanelKeys.ControlBarCursorsShowOrbitButtonToggle,
|
|
76191
|
+
label: "Orbit",
|
|
76192
|
+
getter: (s) => s.ui.cursorOrbit,
|
|
76193
|
+
setter: (s, v) => s.ui.cursorOrbit = v
|
|
76194
|
+
},
|
|
76195
|
+
{
|
|
76196
|
+
type: "toggle",
|
|
76197
|
+
key: SettingsPanelKeys.ControlBarCursorsShowLookAroundButtonToggle,
|
|
76198
|
+
label: "Look Around",
|
|
76199
|
+
getter: (s) => s.ui.cursorLookAround,
|
|
76200
|
+
setter: (s, v) => s.ui.cursorLookAround = v
|
|
76201
|
+
},
|
|
76202
|
+
{
|
|
76203
|
+
type: "toggle",
|
|
76204
|
+
key: SettingsPanelKeys.ControlBarCursorsShowPanButtonToggle,
|
|
76205
|
+
label: "Pan",
|
|
76206
|
+
getter: (s) => s.ui.cursorPan,
|
|
76207
|
+
setter: (s, v) => s.ui.cursorPan = v
|
|
76208
|
+
},
|
|
76209
|
+
{
|
|
76210
|
+
type: "toggle",
|
|
76211
|
+
key: SettingsPanelKeys.ControlBarCursorsShowZoomButtonToggle,
|
|
76212
|
+
label: "Zoom",
|
|
76213
|
+
getter: (s) => s.ui.cursorZoom,
|
|
76214
|
+
setter: (s, v) => s.ui.cursorZoom = v
|
|
76215
|
+
}
|
|
76216
|
+
];
|
|
76217
|
+
}
|
|
76218
|
+
function getControlBarCameraSettings() {
|
|
76219
|
+
return [
|
|
76220
|
+
{
|
|
76221
|
+
type: "subtitle",
|
|
76222
|
+
key: SettingsPanelKeys.ControlBarCameraSubtitle,
|
|
76223
|
+
title: "Control Bar - Camera"
|
|
76224
|
+
},
|
|
76225
|
+
{
|
|
76226
|
+
type: "toggle",
|
|
76227
|
+
key: SettingsPanelKeys.ControlBarAutoCamera,
|
|
76228
|
+
label: "Auto Camera",
|
|
76229
|
+
getter: (s) => s.ui.cameraAuto,
|
|
76230
|
+
setter: (s, v) => s.ui.cameraAuto = v
|
|
76231
|
+
},
|
|
76232
|
+
{
|
|
76233
|
+
type: "toggle",
|
|
76234
|
+
key: SettingsPanelKeys.ControlBarFrameSelection,
|
|
76235
|
+
label: "Frame Selection",
|
|
76236
|
+
getter: (s) => s.ui.cameraFrameSelection,
|
|
76237
|
+
setter: (s, v) => s.ui.cameraFrameSelection = v
|
|
76238
|
+
},
|
|
76239
|
+
{
|
|
76240
|
+
type: "toggle",
|
|
76241
|
+
key: SettingsPanelKeys.ControlBarFrameAll,
|
|
76242
|
+
label: "Frame All",
|
|
76243
|
+
getter: (s) => s.ui.cameraFrameScene,
|
|
76244
|
+
setter: (s, v) => s.ui.cameraFrameScene = v
|
|
76245
|
+
}
|
|
76246
|
+
];
|
|
76247
|
+
}
|
|
76248
|
+
function getControlBarSectionBoxSettings() {
|
|
76249
|
+
return [
|
|
76250
|
+
{
|
|
76251
|
+
type: "subtitle",
|
|
76252
|
+
key: SettingsPanelKeys.ControlBarSectioningSubtitle,
|
|
76253
|
+
title: "Control Bar - Sectioning"
|
|
76254
|
+
},
|
|
76255
|
+
{
|
|
76256
|
+
type: "toggle",
|
|
76257
|
+
key: SettingsPanelKeys.ControlBarSectioningEnable,
|
|
76258
|
+
label: "Enable Sectioning",
|
|
76259
|
+
getter: (s) => s.ui.sectioningEnable,
|
|
76260
|
+
setter: (s, v) => s.ui.sectioningEnable = v
|
|
76261
|
+
},
|
|
76262
|
+
{
|
|
76263
|
+
type: "toggle",
|
|
76264
|
+
key: SettingsPanelKeys.ControlBarSectioningFitToSelection,
|
|
76265
|
+
label: "Fit To Selection",
|
|
76266
|
+
getter: (s) => s.ui.sectioningFitToSelection,
|
|
76267
|
+
setter: (s, v) => s.ui.sectioningFitToSelection = v
|
|
76268
|
+
},
|
|
76269
|
+
{
|
|
76270
|
+
type: "toggle",
|
|
76271
|
+
key: SettingsPanelKeys.ControlBarSectioningReset,
|
|
76272
|
+
label: "Reset",
|
|
76273
|
+
getter: (s) => s.ui.sectioningReset,
|
|
76274
|
+
setter: (s, v) => s.ui.sectioningReset = v
|
|
76275
|
+
},
|
|
76276
|
+
{
|
|
76277
|
+
type: "toggle",
|
|
76278
|
+
key: SettingsPanelKeys.ControlBarSectioningShow,
|
|
76279
|
+
label: "Show",
|
|
76280
|
+
getter: (s) => s.ui.sectioningShow,
|
|
76281
|
+
setter: (s, v) => s.ui.sectioningShow = v
|
|
76282
|
+
},
|
|
76283
|
+
{
|
|
76284
|
+
type: "toggle",
|
|
76285
|
+
key: SettingsPanelKeys.ControlBarSectioningAuto,
|
|
76286
|
+
label: "Auto",
|
|
76287
|
+
getter: (s) => s.ui.sectioningAuto,
|
|
76288
|
+
setter: (s, v) => s.ui.sectioningAuto = v
|
|
76289
|
+
},
|
|
76290
|
+
{
|
|
76291
|
+
type: "toggle",
|
|
76292
|
+
key: SettingsPanelKeys.ControlBarSectioningSettings,
|
|
76293
|
+
label: "Settings",
|
|
76294
|
+
getter: (s) => s.ui.sectioningSettings,
|
|
76295
|
+
setter: (s, v) => s.ui.sectioningSettings = v
|
|
76296
|
+
}
|
|
76297
|
+
];
|
|
76298
|
+
}
|
|
76299
|
+
function getControlBarVisibilitySettings() {
|
|
76300
|
+
return [
|
|
76301
|
+
{
|
|
76302
|
+
type: "subtitle",
|
|
76303
|
+
key: SettingsPanelKeys.ControlBarVisibilitySubtitle,
|
|
76304
|
+
title: "Control Bar - Visibility"
|
|
76305
|
+
},
|
|
76306
|
+
{
|
|
76307
|
+
type: "toggle",
|
|
76308
|
+
key: SettingsPanelKeys.ControlBarVisibilityClearSelection,
|
|
76309
|
+
label: "Clear Selection",
|
|
76310
|
+
getter: (s) => s.ui.visibilityClearSelection,
|
|
76311
|
+
setter: (s, v) => s.ui.visibilityClearSelection = v
|
|
76312
|
+
},
|
|
76313
|
+
{
|
|
76314
|
+
type: "toggle",
|
|
76315
|
+
key: SettingsPanelKeys.ControlBarVisibilityShowAll,
|
|
76316
|
+
label: "Show All",
|
|
76317
|
+
getter: (s) => s.ui.visibilityShowAll,
|
|
76318
|
+
setter: (s, v) => s.ui.visibilityShowAll = v
|
|
76319
|
+
},
|
|
76320
|
+
{
|
|
76321
|
+
type: "toggle",
|
|
76322
|
+
key: SettingsPanelKeys.ControlBarVisibilityToggle,
|
|
76323
|
+
label: "Toggle",
|
|
76324
|
+
getter: (s) => s.ui.visibilityToggle,
|
|
76325
|
+
setter: (s, v) => s.ui.visibilityToggle = v
|
|
76326
|
+
},
|
|
76327
|
+
{
|
|
76328
|
+
type: "toggle",
|
|
76329
|
+
key: SettingsPanelKeys.ControlBarVisibilityIsolate,
|
|
76330
|
+
label: "Isolate",
|
|
76331
|
+
getter: (s) => s.ui.visibilityIsolate,
|
|
76332
|
+
setter: (s, v) => s.ui.visibilityIsolate = v
|
|
76333
|
+
},
|
|
76334
|
+
{
|
|
76335
|
+
type: "toggle",
|
|
76336
|
+
key: SettingsPanelKeys.ControlBarVisibilityAutoIsolate,
|
|
76337
|
+
label: "Auto Isolate",
|
|
76338
|
+
getter: (s) => s.ui.visibilityAutoIsolate,
|
|
76339
|
+
setter: (s, v) => s.ui.visibilityAutoIsolate = v
|
|
76340
|
+
},
|
|
76341
|
+
{
|
|
76342
|
+
type: "toggle",
|
|
76343
|
+
key: SettingsPanelKeys.ControlBarVisibilitySettings,
|
|
76344
|
+
label: "Settings",
|
|
76345
|
+
getter: (s) => s.ui.visibilitySettings,
|
|
76346
|
+
setter: (s, v) => s.ui.visibilitySettings = v
|
|
76347
|
+
}
|
|
76348
|
+
];
|
|
76349
|
+
}
|
|
76350
|
+
function getControlBarVariousSettings() {
|
|
76351
|
+
return [
|
|
76352
|
+
{
|
|
76353
|
+
type: "subtitle",
|
|
76354
|
+
key: SettingsPanelKeys.ControlBarMiscSubtitle,
|
|
76355
|
+
title: "Control Bar - Settings"
|
|
76356
|
+
},
|
|
76357
|
+
{
|
|
76358
|
+
type: "toggle",
|
|
76359
|
+
key: SettingsPanelKeys.ControlBarMiscShowProjectInspectorButtonToggle,
|
|
76360
|
+
label: "Project Inspector",
|
|
76361
|
+
getter: (s) => s.ui.miscProjectInspector,
|
|
76362
|
+
setter: (s, v) => s.ui.miscProjectInspector = v
|
|
76363
|
+
},
|
|
76364
|
+
{
|
|
76365
|
+
type: "toggle",
|
|
76366
|
+
key: SettingsPanelKeys.ControlBarMiscShowSettingsButtonToggle,
|
|
76367
|
+
label: "Settings",
|
|
76368
|
+
getter: (s) => s.ui.miscSettings,
|
|
76369
|
+
setter: (s, v) => s.ui.miscSettings = v
|
|
76370
|
+
},
|
|
76371
|
+
{
|
|
76372
|
+
type: "toggle",
|
|
76373
|
+
key: SettingsPanelKeys.ControlBarMiscShowHelpButtonToggle,
|
|
76374
|
+
label: "Help",
|
|
76375
|
+
getter: (s) => s.ui.miscHelp,
|
|
76376
|
+
setter: (s, v) => s.ui.miscHelp = v
|
|
76377
|
+
},
|
|
76378
|
+
{
|
|
76379
|
+
type: "toggle",
|
|
76380
|
+
key: SettingsPanelKeys.ControlBarMiscShowMaximiseButtonToggle,
|
|
76381
|
+
label: "Maximise",
|
|
76382
|
+
getter: (s) => s.ui.miscMaximise,
|
|
76383
|
+
setter: (s, v) => s.ui.miscMaximise = v
|
|
76384
|
+
}
|
|
76385
|
+
];
|
|
76386
|
+
}
|
|
76387
|
+
function getPanelsVisibilitySettings() {
|
|
76388
|
+
return [
|
|
76389
|
+
{
|
|
76390
|
+
type: "subtitle",
|
|
76391
|
+
key: SettingsPanelKeys.PanelsSubtitle,
|
|
76392
|
+
title: "Panels Visibility"
|
|
76393
|
+
},
|
|
76394
|
+
{
|
|
76395
|
+
type: "toggle",
|
|
76396
|
+
key: SettingsPanelKeys.PanelsShowLogoToggle,
|
|
76397
|
+
label: "Logo",
|
|
76398
|
+
getter: (s) => s.ui.panelLogo,
|
|
76399
|
+
setter: (s, v) => s.ui.panelLogo = v
|
|
76400
|
+
},
|
|
76401
|
+
{
|
|
76402
|
+
type: "toggle",
|
|
76403
|
+
key: SettingsPanelKeys.PanelsShowBimTreeToggle,
|
|
76404
|
+
label: "Bim Tree",
|
|
76405
|
+
getter: (s) => s.ui.panelBimTree,
|
|
76406
|
+
setter: (s, v) => s.ui.panelBimTree = v
|
|
76407
|
+
},
|
|
76408
|
+
{
|
|
76409
|
+
type: "toggle",
|
|
76410
|
+
key: SettingsPanelKeys.PanelsShowBimInfoToggle,
|
|
76411
|
+
label: "Bim Info",
|
|
76412
|
+
getter: (s) => s.ui.panelBimInfo,
|
|
76413
|
+
setter: (s, v) => s.ui.panelBimInfo = v
|
|
76414
|
+
},
|
|
76415
|
+
{
|
|
76416
|
+
type: "toggle",
|
|
76417
|
+
key: SettingsPanelKeys.PanelsShowAxesPanelToggle,
|
|
76418
|
+
label: "Axes",
|
|
76419
|
+
getter: (s) => s.ui.panelAxes,
|
|
76420
|
+
setter: (s, v) => s.ui.panelAxes = v
|
|
76421
|
+
},
|
|
76422
|
+
{
|
|
76423
|
+
type: "toggle",
|
|
76424
|
+
key: SettingsPanelKeys.PanelsShowPerformancePanelToggle,
|
|
76425
|
+
label: "Performance",
|
|
76426
|
+
getter: (s) => s.ui.panelPerformance,
|
|
76427
|
+
setter: (s, v) => s.ui.panelPerformance = v
|
|
76428
|
+
},
|
|
76429
|
+
{
|
|
76430
|
+
type: "toggle",
|
|
76431
|
+
key: SettingsPanelKeys.ControlBarShowControlBarToggle,
|
|
76432
|
+
label: "Control Bar",
|
|
76433
|
+
getter: (s) => s.ui.panelControlBar,
|
|
76434
|
+
setter: (s, v) => s.ui.panelControlBar = v
|
|
76435
|
+
}
|
|
76436
|
+
];
|
|
76437
|
+
}
|
|
76438
|
+
function getInputsSettings(viewer) {
|
|
76439
|
+
return [
|
|
76440
|
+
{
|
|
76441
|
+
type: "subtitle",
|
|
76442
|
+
key: SettingsPanelKeys.InputsSubtitle,
|
|
76443
|
+
title: "Inputs"
|
|
76444
|
+
},
|
|
76445
|
+
{
|
|
76446
|
+
type: "box",
|
|
76447
|
+
key: SettingsPanelKeys.InputsScrollSpeedBox,
|
|
76448
|
+
label: "Scroll Speed",
|
|
76449
|
+
info: "[0.1,10]",
|
|
76450
|
+
transform: (n) => MathUtils.clamp(n, 0.1, 10),
|
|
76451
|
+
getter: (_s) => viewer.inputs.scrollSpeed,
|
|
76452
|
+
setter: (_s, v) => {
|
|
76453
|
+
viewer.inputs.scrollSpeed = v;
|
|
76454
|
+
}
|
|
76455
|
+
}
|
|
76456
|
+
];
|
|
76457
|
+
}
|
|
76458
|
+
function getAxesPanelSettings() {
|
|
76459
|
+
return [
|
|
76460
|
+
{
|
|
76461
|
+
type: "subtitle",
|
|
76462
|
+
key: SettingsPanelKeys.AxesSubtitle,
|
|
76463
|
+
title: "Axes Panel"
|
|
76464
|
+
},
|
|
76465
|
+
{
|
|
76466
|
+
type: "toggle",
|
|
76467
|
+
key: SettingsPanelKeys.AxesShowOrthographicButtonToggle,
|
|
76468
|
+
label: "Orthographic Camera",
|
|
76469
|
+
getter: (s) => s.ui.axesOrthographic,
|
|
76470
|
+
setter: (s, v) => s.ui.axesOrthographic = v
|
|
76471
|
+
},
|
|
76472
|
+
{
|
|
76473
|
+
type: "toggle",
|
|
76474
|
+
key: SettingsPanelKeys.AxesShowResetCameraButtonToggle,
|
|
76475
|
+
label: "Reset Camera",
|
|
76476
|
+
getter: (s) => s.ui.axesHome,
|
|
76477
|
+
setter: (s, v) => s.ui.axesHome = v
|
|
76478
|
+
}
|
|
76479
|
+
];
|
|
76480
|
+
}
|
|
76481
|
+
function getControlBarMeasureSettings() {
|
|
76482
|
+
return [
|
|
76483
|
+
{
|
|
76484
|
+
type: "subtitle",
|
|
76485
|
+
key: SettingsPanelKeys.ControlBarToolsSubtitle,
|
|
76486
|
+
title: "Control Bar - Measurement"
|
|
76487
|
+
},
|
|
76488
|
+
{
|
|
76489
|
+
type: "toggle",
|
|
76490
|
+
key: SettingsPanelKeys.ControlBarToolsShowMeasuringModeButtonToggle,
|
|
76491
|
+
label: "Enable",
|
|
76492
|
+
getter: (s) => s.ui.measureEnable,
|
|
76493
|
+
setter: (s, v) => s.ui.measureEnable = v
|
|
76494
|
+
}
|
|
76495
|
+
];
|
|
76496
|
+
}
|
|
76497
|
+
function getWebglSettingsContent(viewer) {
|
|
76498
|
+
return [
|
|
76499
|
+
...getInputsSettings(viewer),
|
|
76500
|
+
...getPanelsVisibilitySettings(),
|
|
76501
|
+
...getAxesPanelSettings(),
|
|
76502
|
+
...getControlBarCursorSettings(),
|
|
76503
|
+
...getControlBarCameraSettings(),
|
|
76504
|
+
...getControlBarVisibilitySettings(),
|
|
76505
|
+
...getControlBarMeasureSettings(),
|
|
76506
|
+
...getControlBarSectionBoxSettings(),
|
|
76507
|
+
...getControlBarVariousSettings()
|
|
76508
|
+
];
|
|
76509
|
+
}
|
|
76510
|
+
function applyWebglSettings(settings2) {
|
|
76511
|
+
const performance2 = document.getElementsByClassName("vim-performance-div")[0];
|
|
76512
|
+
if (performance2) {
|
|
76513
|
+
if (isTrue(settings2.ui.panelPerformance)) {
|
|
76514
|
+
performance2.classList.remove("vc-hidden");
|
|
76515
|
+
} else {
|
|
76516
|
+
performance2.classList.add("vc-hidden");
|
|
76517
|
+
}
|
|
76518
|
+
}
|
|
76519
|
+
}
|
|
76001
76520
|
function createViewer$1(container, settings2 = {}, coreSettings = {}) {
|
|
76002
76521
|
const controllablePromise = new ControllablePromise();
|
|
76003
76522
|
const cmpContainer = container instanceof HTMLElement ? createContainer(container) : container ?? createContainer();
|
|
@@ -76028,7 +76547,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76028
76547
|
return controllablePromise.promise;
|
|
76029
76548
|
}
|
|
76030
76549
|
function Viewer$1(props) {
|
|
76031
|
-
const settings2 = useSettings(props.
|
|
76550
|
+
const settings2 = useSettings(props.settings ?? {}, getDefaultSettings(), (s) => applyWebglSettings(s));
|
|
76032
76551
|
const modal = React2.useRef(null);
|
|
76033
76552
|
const sectionBoxRef = useWebglSectionBox(props.viewer);
|
|
76034
76553
|
const isolationPanelHandle = React2.useRef(null);
|
|
@@ -76038,7 +76557,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76038
76557
|
const loader = React2.useRef(new ComponentLoader(props.viewer, modal, settings2.value));
|
|
76039
76558
|
useViewerInput(props.viewer.inputs, camera2);
|
|
76040
76559
|
const side = useSideState(
|
|
76041
|
-
isTrue(settings2.value.ui.
|
|
76560
|
+
isTrue(settings2.value.ui.panelBimTree) || isTrue(settings2.value.ui.panelBimInfo),
|
|
76042
76561
|
Math.min(props.container.root.clientWidth * 0.25, 340)
|
|
76043
76562
|
);
|
|
76044
76563
|
const [contextMenu2, setcontextMenu] = React2.useState();
|
|
@@ -76054,6 +76573,16 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76054
76573
|
side.setHasBim(((_a3 = viewerState.vim.get()) == null ? void 0 : _a3.bim) !== void 0);
|
|
76055
76574
|
});
|
|
76056
76575
|
React2.useEffect(() => {
|
|
76576
|
+
sectionBoxRef.showOffsetPanel.onChange.subscribe((show) => {
|
|
76577
|
+
if (show) {
|
|
76578
|
+
isolationRef.showPanel.set(false);
|
|
76579
|
+
}
|
|
76580
|
+
});
|
|
76581
|
+
isolationRef.showPanel.onChange.subscribe((show) => {
|
|
76582
|
+
if (show) {
|
|
76583
|
+
sectionBoxRef.showOffsetPanel.set(false);
|
|
76584
|
+
}
|
|
76585
|
+
});
|
|
76057
76586
|
if (performanceRef.current) {
|
|
76058
76587
|
addPerformanceCounter(performanceRef.current);
|
|
76059
76588
|
}
|
|
@@ -76067,7 +76596,11 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76067
76596
|
loader: loader.current,
|
|
76068
76597
|
isolation: isolationRef,
|
|
76069
76598
|
camera: camera2,
|
|
76070
|
-
settings:
|
|
76599
|
+
settings: {
|
|
76600
|
+
update: settings2.update,
|
|
76601
|
+
register: settings2.register,
|
|
76602
|
+
customize: (c) => settings2.customizer.set(c)
|
|
76603
|
+
},
|
|
76071
76604
|
get isolationPanel() {
|
|
76072
76605
|
return isolationPanelHandle.current;
|
|
76073
76606
|
},
|
|
@@ -76113,7 +76646,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76113
76646
|
SettingsPanel,
|
|
76114
76647
|
{
|
|
76115
76648
|
visible: side.getContent() === "settings",
|
|
76116
|
-
|
|
76649
|
+
content: getWebglSettingsContent(props.viewer),
|
|
76117
76650
|
settings: settings2
|
|
76118
76651
|
}
|
|
76119
76652
|
)
|
|
@@ -76133,16 +76666,16 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76133
76666
|
/* @__PURE__ */ jsxRuntimeExports.jsx(RestOfScreen, { side, content: () => {
|
|
76134
76667
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
76135
76668
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Overlay, { canvas: props.viewer.viewport.canvas }),
|
|
76136
|
-
whenTrue(settings2.value.ui.
|
|
76669
|
+
whenTrue(settings2.value.ui.panelLogo, /* @__PURE__ */ jsxRuntimeExports.jsx(LogoMemo, {})),
|
|
76137
76670
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76138
76671
|
ControlBar,
|
|
76139
76672
|
{
|
|
76140
76673
|
content: controlBar,
|
|
76141
|
-
show: isTrue(settings2.value.ui.
|
|
76674
|
+
show: isTrue(settings2.value.ui.panelControlBar)
|
|
76142
76675
|
}
|
|
76143
76676
|
),
|
|
76144
76677
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
|
|
76145
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef }),
|
|
76678
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef, transparency: true }),
|
|
76146
76679
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76147
76680
|
AxesPanelMemo,
|
|
76148
76681
|
{
|
|
@@ -76181,7 +76714,8 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76181
76714
|
const index$2 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
76182
76715
|
__proto__: null,
|
|
76183
76716
|
Viewer: Viewer$1,
|
|
76184
|
-
createViewer: createViewer$1
|
|
76717
|
+
createViewer: createViewer$1,
|
|
76718
|
+
getDefaultSettings
|
|
76185
76719
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76186
76720
|
function getErrorMessage(state) {
|
|
76187
76721
|
if (state.status !== "error") return void 0;
|
|
@@ -76247,11 +76781,13 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76247
76781
|
};
|
|
76248
76782
|
return useSectionBox(ultraAdapter);
|
|
76249
76783
|
}
|
|
76250
|
-
function useUltraControlBar(viewer, section, isolation, camera2, customization) {
|
|
76251
|
-
|
|
76252
|
-
|
|
76253
|
-
|
|
76254
|
-
|
|
76784
|
+
function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, modal, customization) {
|
|
76785
|
+
let bar = [
|
|
76786
|
+
controlBarCamera(camera2, settings2.ui),
|
|
76787
|
+
controlBarVisibility(isolation, settings2.ui),
|
|
76788
|
+
controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
|
|
76789
|
+
controlBarMiscUltra(modal, side, settings2)
|
|
76790
|
+
];
|
|
76255
76791
|
bar = (customization == null ? void 0 : customization(bar)) ?? bar;
|
|
76256
76792
|
return bar;
|
|
76257
76793
|
}
|
|
@@ -76355,6 +76891,9 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76355
76891
|
}
|
|
76356
76892
|
}
|
|
76357
76893
|
},
|
|
76894
|
+
enableTransparency: (enable) => {
|
|
76895
|
+
console.log("enableTransparency not implemented");
|
|
76896
|
+
},
|
|
76358
76897
|
getGhostOpacity: () => viewer.renderer.ghostOpacity,
|
|
76359
76898
|
setGhostOpacity: (opacity) => {
|
|
76360
76899
|
viewer.renderer.ghostOpacity = opacity;
|
|
@@ -76396,7 +76935,73 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76396
76935
|
function allButSelection(viewer, vim) {
|
|
76397
76936
|
return false;
|
|
76398
76937
|
}
|
|
76399
|
-
function
|
|
76938
|
+
function getDefaultUltraSettings() {
|
|
76939
|
+
return {
|
|
76940
|
+
ui: {
|
|
76941
|
+
// panels
|
|
76942
|
+
panelLogo: true,
|
|
76943
|
+
panelControlBar: true,
|
|
76944
|
+
// Control bar - cursors
|
|
76945
|
+
cursorOrbit: true,
|
|
76946
|
+
cursorLookAround: true,
|
|
76947
|
+
cursorPan: true,
|
|
76948
|
+
cursorZoom: true,
|
|
76949
|
+
// Control bar - camera
|
|
76950
|
+
cameraAuto: true,
|
|
76951
|
+
cameraFrameScene: true,
|
|
76952
|
+
cameraFrameSelection: true,
|
|
76953
|
+
// Control bar - tools
|
|
76954
|
+
sectioningEnable: true,
|
|
76955
|
+
sectioningFitToSelection: true,
|
|
76956
|
+
sectioningReset: true,
|
|
76957
|
+
sectioningShow: true,
|
|
76958
|
+
sectioningAuto: true,
|
|
76959
|
+
sectioningSettings: true,
|
|
76960
|
+
// Control bar - Visibility
|
|
76961
|
+
visibilityClearSelection: true,
|
|
76962
|
+
visibilityShowAll: true,
|
|
76963
|
+
visibilityToggle: true,
|
|
76964
|
+
visibilityIsolate: true,
|
|
76965
|
+
visibilityAutoIsolate: true,
|
|
76966
|
+
visibilitySettings: true,
|
|
76967
|
+
// Control bar - misc
|
|
76968
|
+
miscSettings: true,
|
|
76969
|
+
miscHelp: true
|
|
76970
|
+
}
|
|
76971
|
+
};
|
|
76972
|
+
}
|
|
76973
|
+
function getControlBarUltraSettings() {
|
|
76974
|
+
return [
|
|
76975
|
+
{
|
|
76976
|
+
type: "subtitle",
|
|
76977
|
+
key: SettingsPanelKeys.ControlBarMiscSubtitle,
|
|
76978
|
+
title: "Control Bar - Settings"
|
|
76979
|
+
},
|
|
76980
|
+
{
|
|
76981
|
+
type: "toggle",
|
|
76982
|
+
key: SettingsPanelKeys.ControlBarMiscShowSettingsButtonToggle,
|
|
76983
|
+
label: "Settings",
|
|
76984
|
+
getter: (s) => s.ui.miscSettings,
|
|
76985
|
+
setter: (s, v) => s.ui.miscSettings = v
|
|
76986
|
+
},
|
|
76987
|
+
{
|
|
76988
|
+
type: "toggle",
|
|
76989
|
+
key: SettingsPanelKeys.ControlBarMiscShowHelpButtonToggle,
|
|
76990
|
+
label: "Help",
|
|
76991
|
+
getter: (s) => s.ui.miscHelp,
|
|
76992
|
+
setter: (s, v) => s.ui.miscHelp = v
|
|
76993
|
+
}
|
|
76994
|
+
];
|
|
76995
|
+
}
|
|
76996
|
+
function getUltraSettingsContent(viewer) {
|
|
76997
|
+
return [
|
|
76998
|
+
...getControlBarCameraSettings(),
|
|
76999
|
+
...getControlBarVisibilitySettings(),
|
|
77000
|
+
...getControlBarSectionBoxSettings(),
|
|
77001
|
+
...getControlBarUltraSettings()
|
|
77002
|
+
];
|
|
77003
|
+
}
|
|
77004
|
+
function createViewer(container, settings2) {
|
|
76400
77005
|
const controllablePromise = new ControllablePromise();
|
|
76401
77006
|
const cmpContainer = container instanceof HTMLElement ? createContainer(container) : container ?? createContainer();
|
|
76402
77007
|
const core = Viewer$2.createWithCanvas(cmpContainer.gfx);
|
|
@@ -76415,6 +77020,7 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76415
77020
|
{
|
|
76416
77021
|
container: cmpContainer,
|
|
76417
77022
|
core,
|
|
77023
|
+
settings: settings2,
|
|
76418
77024
|
onMount: (cmp) => controllablePromise.resolve(attachDispose(cmp))
|
|
76419
77025
|
}
|
|
76420
77026
|
)
|
|
@@ -76422,18 +77028,38 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76422
77028
|
return controllablePromise.promise;
|
|
76423
77029
|
}
|
|
76424
77030
|
function Viewer(props) {
|
|
76425
|
-
const
|
|
76426
|
-
const
|
|
77031
|
+
const settings2 = useSettings(props.settings ?? {}, getDefaultUltraSettings());
|
|
77032
|
+
const sectionBoxRef = useUltraSectionBox(props.core);
|
|
77033
|
+
const camera2 = useUltraCamera(props.core, sectionBoxRef);
|
|
76427
77034
|
const isolationPanelHandle = React2.useRef(null);
|
|
76428
77035
|
const sectionBoxPanelHandle = React2.useRef(null);
|
|
76429
77036
|
const modalHandle = React2.useRef(null);
|
|
76430
77037
|
const side = useSideState(true, 400);
|
|
76431
77038
|
const [_, setSelectState] = React2.useState(0);
|
|
76432
77039
|
const [controlBarCustom, setControlBarCustom] = React2.useState(() => (c) => c);
|
|
76433
|
-
const
|
|
76434
|
-
const controlBar = useUltraControlBar(
|
|
77040
|
+
const isolationRef = useUltraIsolation(props.core);
|
|
77041
|
+
const controlBar = useUltraControlBar(
|
|
77042
|
+
props.core,
|
|
77043
|
+
sectionBoxRef,
|
|
77044
|
+
isolationRef,
|
|
77045
|
+
camera2,
|
|
77046
|
+
settings2.value,
|
|
77047
|
+
side,
|
|
77048
|
+
modalHandle.current,
|
|
77049
|
+
(_2) => _2
|
|
77050
|
+
);
|
|
76435
77051
|
useViewerInput(props.core.inputs, camera2);
|
|
76436
77052
|
React2.useEffect(() => {
|
|
77053
|
+
sectionBoxRef.showOffsetPanel.onChange.subscribe((show) => {
|
|
77054
|
+
if (show) {
|
|
77055
|
+
isolationRef.showPanel.set(false);
|
|
77056
|
+
}
|
|
77057
|
+
});
|
|
77058
|
+
isolationRef.showPanel.onChange.subscribe((show) => {
|
|
77059
|
+
if (show) {
|
|
77060
|
+
sectionBoxRef.showOffsetPanel.set(false);
|
|
77061
|
+
}
|
|
77062
|
+
});
|
|
76437
77063
|
props.core.onStateChanged.subscribe((state) => updateModal(modalHandle, state));
|
|
76438
77064
|
props.core.selection.onSelectionChanged.subscribe(() => {
|
|
76439
77065
|
setSelectState((i2) => (i2 + 1) % 2);
|
|
@@ -76443,9 +77069,14 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76443
77069
|
get modal() {
|
|
76444
77070
|
return modalHandle.current;
|
|
76445
77071
|
},
|
|
76446
|
-
isolation,
|
|
76447
|
-
sectionBox:
|
|
77072
|
+
isolation: isolationRef,
|
|
77073
|
+
sectionBox: sectionBoxRef,
|
|
76448
77074
|
camera: camera2,
|
|
77075
|
+
settings: {
|
|
77076
|
+
update: settings2.update,
|
|
77077
|
+
register: settings2.register,
|
|
77078
|
+
customize: (c) => settings2.customizer.set(c)
|
|
77079
|
+
},
|
|
76449
77080
|
get isolationPanel() {
|
|
76450
77081
|
return isolationPanelHandle.current;
|
|
76451
77082
|
},
|
|
@@ -76460,20 +77091,37 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76460
77091
|
load: patchLoad(props.core, modalHandle)
|
|
76461
77092
|
});
|
|
76462
77093
|
}, []);
|
|
77094
|
+
const sidePanel = () => /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77095
|
+
SettingsPanel,
|
|
77096
|
+
{
|
|
77097
|
+
visible: side.getContent() === "settings",
|
|
77098
|
+
content: getUltraSettingsContent(props.core),
|
|
77099
|
+
settings: settings2
|
|
77100
|
+
}
|
|
77101
|
+
) });
|
|
76463
77102
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
77103
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
77104
|
+
SidePanelMemo,
|
|
77105
|
+
{
|
|
77106
|
+
container: props.container,
|
|
77107
|
+
viewer: props.core,
|
|
77108
|
+
side,
|
|
77109
|
+
content: sidePanel
|
|
77110
|
+
}
|
|
77111
|
+
),
|
|
76464
77112
|
/* @__PURE__ */ jsxRuntimeExports.jsx(RestOfScreen, { side, content: () => {
|
|
76465
77113
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
76466
|
-
whenTrue(
|
|
77114
|
+
whenTrue(settings2.value.ui.panelLogo, /* @__PURE__ */ jsxRuntimeExports.jsx(LogoMemo, {})),
|
|
76467
77115
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Overlay, { canvas: props.core.viewport.canvas }),
|
|
76468
77116
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76469
77117
|
ControlBar,
|
|
76470
77118
|
{
|
|
76471
77119
|
content: controlBarCustom(controlBar),
|
|
76472
|
-
show:
|
|
77120
|
+
show: isTrue(settings2.value.ui.panelControlBar)
|
|
76473
77121
|
}
|
|
76474
77122
|
),
|
|
76475
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state:
|
|
76476
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state:
|
|
77123
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel$1, { ref: sectionBoxPanelHandle, state: sectionBoxRef }),
|
|
77124
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel$1, { ref: isolationPanelHandle, state: isolationRef, transparency: false })
|
|
76477
77125
|
] });
|
|
76478
77126
|
} }),
|
|
76479
77127
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ref: modalHandle, canFollowLinks: true }),
|
|
@@ -76511,7 +77159,15 @@ Averrage Date/Second ${avgDataRatePS} kb
|
|
|
76511
77159
|
const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
76512
77160
|
__proto__: null,
|
|
76513
77161
|
Viewer,
|
|
76514
|
-
createViewer
|
|
77162
|
+
createViewer,
|
|
77163
|
+
getDefaultUltraSettings
|
|
77164
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
77165
|
+
const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
|
|
77166
|
+
const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
|
|
77167
|
+
const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
77168
|
+
__proto__: null,
|
|
77169
|
+
supportControls,
|
|
77170
|
+
supportUltra
|
|
76515
77171
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
76516
77172
|
const SectionBoxPanel = {
|
|
76517
77173
|
Ids
|