vim-web 0.3.44-dev.70 → 0.3.44-dev.71
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/types/react-viewers/generic/genericField.d.ts +26 -0
- package/dist/types/react-viewers/generic/genericPanel.d.ts +15 -0
- package/dist/types/react-viewers/helpers/index.d.ts +6 -9
- package/dist/types/react-viewers/helpers/layout.d.ts +24 -0
- package/dist/types/react-viewers/index.d.ts +1 -1
- package/dist/types/react-viewers/panels/index.d.ts +2 -2
- package/dist/types/react-viewers/panels/isolationPanel.d.ts +5 -0
- package/dist/types/react-viewers/panels/sectionBoxPanel.d.ts +3 -2
- package/dist/types/react-viewers/webgl/viewerRef.d.ts +3 -0
- package/dist/types/react-viewers/webgl/viewerState.d.ts +1 -1
- package/dist/vim-web.iife.js +290 -195
- package/dist/vim-web.iife.js.map +1 -1
- package/dist/vim-web.js +291 -196
- package/dist/vim-web.js.map +1 -1
- package/package.json +1 -1
- package/dist/types/react-viewers/panels/genericPanel.d.ts +0 -26
- package/dist/types/react-viewers/panels/renderSettingsPanel.d.ts +0 -4
- /package/dist/types/react-viewers/{components → generic}/inputNumber.d.ts +0 -0
package/dist/vim-web.js
CHANGED
|
@@ -3,7 +3,7 @@ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { en
|
|
|
3
3
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
4
|
var _a2;
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
import React__default, { useState, useRef, useEffect, useMemo, useCallback, useImperativeHandle, useContext, Component, forwardRef,
|
|
6
|
+
import React__default, { useState, useRef, useEffect, useMemo, useCallback, useImperativeHandle, useContext, Component, forwardRef, useLayoutEffect, useSyncExternalStore } from "react";
|
|
7
7
|
import ReactDOM, { flushSync as flushSync$1 } from "react-dom";
|
|
8
8
|
function getDefaultExportFromCjs(x) {
|
|
9
9
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
@@ -74567,92 +74567,13 @@ async function getFamilyTypeNameMap(document2) {
|
|
|
74567
74567
|
})
|
|
74568
74568
|
);
|
|
74569
74569
|
}
|
|
74570
|
-
|
|
74571
|
-
|
|
74572
|
-
|
|
74573
|
-
|
|
74574
|
-
|
|
74575
|
-
let rejector;
|
|
74576
|
-
super((resolve, reject) => {
|
|
74577
|
-
resolver = resolve;
|
|
74578
|
-
rejector = reject;
|
|
74579
|
-
return executor(resolve, reject);
|
|
74580
|
-
});
|
|
74581
|
-
__publicField(this, "resolve");
|
|
74582
|
-
__publicField(this, "reject");
|
|
74583
|
-
__publicField(this, "initialCallStack");
|
|
74584
|
-
this.resolve = resolver;
|
|
74585
|
-
this.reject = rejector;
|
|
74586
|
-
this.initialCallStack = (_a3 = Error().stack) == null ? void 0 : _a3.split("\n").slice(2).join("\n");
|
|
74587
|
-
}
|
|
74588
|
-
/** @throws error with amended call stack */
|
|
74589
|
-
rejectWithError(error) {
|
|
74590
|
-
var _a3;
|
|
74591
|
-
error.stack = [(_a3 = error.stack) == null ? void 0 : _a3.split("\n")[0], this.initialCallStack].join("\n");
|
|
74592
|
-
this.reject(error);
|
|
74593
|
-
}
|
|
74594
|
-
}
|
|
74595
|
-
class LoadRequest2 {
|
|
74596
|
-
constructor(callbacks, source, settings2) {
|
|
74597
|
-
__publicField(this, "source");
|
|
74598
|
-
__publicField(this, "_callbacks");
|
|
74599
|
-
__publicField(this, "_request");
|
|
74600
|
-
__publicField(this, "_progress", { loaded: 0, total: 0, all: /* @__PURE__ */ new Map() });
|
|
74601
|
-
__publicField(this, "_progressPromise", new DeferredPromise());
|
|
74602
|
-
__publicField(this, "_isDone", false);
|
|
74603
|
-
__publicField(this, "_completionPromise", new DeferredPromise());
|
|
74604
|
-
this.source = source;
|
|
74605
|
-
this._callbacks = callbacks;
|
|
74606
|
-
this.startRequest(source, settings2);
|
|
74607
|
-
}
|
|
74608
|
-
async startRequest(source, settings2) {
|
|
74609
|
-
this._request = await requestVim(source, settings2);
|
|
74610
|
-
for await (const progress of this._request.getProgress()) {
|
|
74611
|
-
this.onProgress(progress);
|
|
74612
|
-
}
|
|
74613
|
-
const result = await this._request.getResult();
|
|
74614
|
-
if (result.isError()) {
|
|
74615
|
-
this.onError(result.error);
|
|
74616
|
-
} else {
|
|
74617
|
-
this.onSuccess();
|
|
74618
|
-
}
|
|
74619
|
-
}
|
|
74620
|
-
onProgress(progress) {
|
|
74621
|
-
this._callbacks.onProgress(progress);
|
|
74622
|
-
this._progress = progress;
|
|
74623
|
-
this._progressPromise.resolve();
|
|
74624
|
-
this._progressPromise = new DeferredPromise();
|
|
74625
|
-
}
|
|
74626
|
-
onSuccess() {
|
|
74627
|
-
this._callbacks.onDone();
|
|
74628
|
-
this.end();
|
|
74629
|
-
}
|
|
74630
|
-
onError(error) {
|
|
74631
|
-
this._callbacks.onError({
|
|
74632
|
-
url: this.source.url,
|
|
74633
|
-
error
|
|
74634
|
-
});
|
|
74635
|
-
this.end();
|
|
74636
|
-
}
|
|
74637
|
-
end() {
|
|
74638
|
-
this._isDone = true;
|
|
74639
|
-
this._progressPromise.resolve();
|
|
74640
|
-
this._completionPromise.resolve();
|
|
74641
|
-
}
|
|
74642
|
-
async *getProgress() {
|
|
74643
|
-
while (!this._isDone) {
|
|
74644
|
-
await this._progressPromise;
|
|
74645
|
-
yield this._progress;
|
|
74570
|
+
function useRefresher() {
|
|
74571
|
+
const [refresh, setRefresh] = useState(false);
|
|
74572
|
+
return {
|
|
74573
|
+
refresh: () => {
|
|
74574
|
+
setRefresh(!refresh);
|
|
74646
74575
|
}
|
|
74647
|
-
}
|
|
74648
|
-
async getResult() {
|
|
74649
|
-
await this._completionPromise;
|
|
74650
|
-
return this._request.getResult();
|
|
74651
|
-
}
|
|
74652
|
-
abort() {
|
|
74653
|
-
this._request.abort();
|
|
74654
|
-
this.onError("Request aborted");
|
|
74655
|
-
}
|
|
74576
|
+
};
|
|
74656
74577
|
}
|
|
74657
74578
|
function useStateRef(initialValue) {
|
|
74658
74579
|
const [value, setValue] = useState(initialValue);
|
|
@@ -74849,6 +74770,45 @@ function useAsyncFuncRef(fn) {
|
|
|
74849
74770
|
}
|
|
74850
74771
|
};
|
|
74851
74772
|
}
|
|
74773
|
+
function useArgFuncRef(fn) {
|
|
74774
|
+
const ref = useRef(fn);
|
|
74775
|
+
return {
|
|
74776
|
+
call(arg) {
|
|
74777
|
+
return ref == null ? void 0 : ref.current(arg);
|
|
74778
|
+
},
|
|
74779
|
+
get() {
|
|
74780
|
+
return ref.current;
|
|
74781
|
+
},
|
|
74782
|
+
set(fn2) {
|
|
74783
|
+
ref.current = fn2;
|
|
74784
|
+
},
|
|
74785
|
+
prepend(fn2) {
|
|
74786
|
+
const oldFn = ref.current;
|
|
74787
|
+
ref.current = (arg) => {
|
|
74788
|
+
fn2(arg);
|
|
74789
|
+
return oldFn(arg);
|
|
74790
|
+
};
|
|
74791
|
+
},
|
|
74792
|
+
append(fn2) {
|
|
74793
|
+
const oldFn = ref.current;
|
|
74794
|
+
ref.current = (arg) => {
|
|
74795
|
+
const result = oldFn(arg);
|
|
74796
|
+
fn2(arg);
|
|
74797
|
+
return result;
|
|
74798
|
+
};
|
|
74799
|
+
}
|
|
74800
|
+
};
|
|
74801
|
+
}
|
|
74802
|
+
const reactUtils = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
74803
|
+
__proto__: null,
|
|
74804
|
+
useActionRef,
|
|
74805
|
+
useArgActionRef,
|
|
74806
|
+
useArgFuncRef,
|
|
74807
|
+
useAsyncFuncRef,
|
|
74808
|
+
useFuncRef,
|
|
74809
|
+
useRefresher,
|
|
74810
|
+
useStateRef
|
|
74811
|
+
}, Symbol.toStringTag, { value: "Module" }));
|
|
74852
74812
|
function useViewerState(viewer) {
|
|
74853
74813
|
const getVim = () => {
|
|
74854
74814
|
var _a3;
|
|
@@ -74980,6 +74940,31 @@ function useBimInfo() {
|
|
|
74980
74940
|
}
|
|
74981
74941
|
};
|
|
74982
74942
|
}
|
|
74943
|
+
class DeferredPromise extends Promise {
|
|
74944
|
+
constructor(executor = () => {
|
|
74945
|
+
}) {
|
|
74946
|
+
var _a3;
|
|
74947
|
+
let resolver;
|
|
74948
|
+
let rejector;
|
|
74949
|
+
super((resolve, reject) => {
|
|
74950
|
+
resolver = resolve;
|
|
74951
|
+
rejector = reject;
|
|
74952
|
+
return executor(resolve, reject);
|
|
74953
|
+
});
|
|
74954
|
+
__publicField(this, "resolve");
|
|
74955
|
+
__publicField(this, "reject");
|
|
74956
|
+
__publicField(this, "initialCallStack");
|
|
74957
|
+
this.resolve = resolver;
|
|
74958
|
+
this.reject = rejector;
|
|
74959
|
+
this.initialCallStack = (_a3 = Error().stack) == null ? void 0 : _a3.split("\n").slice(2).join("\n");
|
|
74960
|
+
}
|
|
74961
|
+
/** @throws error with amended call stack */
|
|
74962
|
+
rejectWithError(error) {
|
|
74963
|
+
var _a3;
|
|
74964
|
+
error.stack = [(_a3 = error.stack) == null ? void 0 : _a3.split("\n")[0], this.initialCallStack].join("\n");
|
|
74965
|
+
this.reject(error);
|
|
74966
|
+
}
|
|
74967
|
+
}
|
|
74983
74968
|
const vcColorPrimary = "vc-text-[#212733]";
|
|
74984
74969
|
const vcColorSecondary = "vc-text-[#787C83]";
|
|
74985
74970
|
const vcColorLink = "vc-text-[#0590CC]";
|
|
@@ -75215,6 +75200,68 @@ const index$3 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
|
|
|
75215
75200
|
serverFileLoadingError,
|
|
75216
75201
|
serverStreamError
|
|
75217
75202
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
75203
|
+
class LoadRequest2 {
|
|
75204
|
+
constructor(callbacks, source, settings2) {
|
|
75205
|
+
__publicField(this, "source");
|
|
75206
|
+
__publicField(this, "_callbacks");
|
|
75207
|
+
__publicField(this, "_request");
|
|
75208
|
+
__publicField(this, "_progress", { loaded: 0, total: 0, all: /* @__PURE__ */ new Map() });
|
|
75209
|
+
__publicField(this, "_progressPromise", new DeferredPromise());
|
|
75210
|
+
__publicField(this, "_isDone", false);
|
|
75211
|
+
__publicField(this, "_completionPromise", new DeferredPromise());
|
|
75212
|
+
this.source = source;
|
|
75213
|
+
this._callbacks = callbacks;
|
|
75214
|
+
this.startRequest(source, settings2);
|
|
75215
|
+
}
|
|
75216
|
+
async startRequest(source, settings2) {
|
|
75217
|
+
this._request = await requestVim(source, settings2);
|
|
75218
|
+
for await (const progress of this._request.getProgress()) {
|
|
75219
|
+
this.onProgress(progress);
|
|
75220
|
+
}
|
|
75221
|
+
const result = await this._request.getResult();
|
|
75222
|
+
if (result.isError()) {
|
|
75223
|
+
this.onError(result.error);
|
|
75224
|
+
} else {
|
|
75225
|
+
this.onSuccess();
|
|
75226
|
+
}
|
|
75227
|
+
}
|
|
75228
|
+
onProgress(progress) {
|
|
75229
|
+
this._callbacks.onProgress(progress);
|
|
75230
|
+
this._progress = progress;
|
|
75231
|
+
this._progressPromise.resolve();
|
|
75232
|
+
this._progressPromise = new DeferredPromise();
|
|
75233
|
+
}
|
|
75234
|
+
onSuccess() {
|
|
75235
|
+
this._callbacks.onDone();
|
|
75236
|
+
this.end();
|
|
75237
|
+
}
|
|
75238
|
+
onError(error) {
|
|
75239
|
+
this._callbacks.onError({
|
|
75240
|
+
url: this.source.url,
|
|
75241
|
+
error
|
|
75242
|
+
});
|
|
75243
|
+
this.end();
|
|
75244
|
+
}
|
|
75245
|
+
end() {
|
|
75246
|
+
this._isDone = true;
|
|
75247
|
+
this._progressPromise.resolve();
|
|
75248
|
+
this._completionPromise.resolve();
|
|
75249
|
+
}
|
|
75250
|
+
async *getProgress() {
|
|
75251
|
+
while (!this._isDone) {
|
|
75252
|
+
await this._progressPromise;
|
|
75253
|
+
yield this._progress;
|
|
75254
|
+
}
|
|
75255
|
+
}
|
|
75256
|
+
async getResult() {
|
|
75257
|
+
await this._completionPromise;
|
|
75258
|
+
return this._request.getResult();
|
|
75259
|
+
}
|
|
75260
|
+
abort() {
|
|
75261
|
+
this._request.abort();
|
|
75262
|
+
this.onError("Request aborted");
|
|
75263
|
+
}
|
|
75264
|
+
}
|
|
75218
75265
|
class ComponentLoader {
|
|
75219
75266
|
constructor(viewer, modal) {
|
|
75220
75267
|
__publicField(this, "_viewer");
|
|
@@ -75459,7 +75506,6 @@ const Modal = forwardRef((props, ref) => {
|
|
|
75459
75506
|
const getActiveState = () => {
|
|
75460
75507
|
return (state == null ? void 0 : state[0]) ?? (state == null ? void 0 : state[1]) ?? (state == null ? void 0 : state[2]);
|
|
75461
75508
|
};
|
|
75462
|
-
console.log("REnder Modal and setup Imperative handle");
|
|
75463
75509
|
useImperativeHandle(ref, () => ({
|
|
75464
75510
|
getActiveState,
|
|
75465
75511
|
loading(content2) {
|
|
@@ -75533,6 +75579,35 @@ function modalContent(modal) {
|
|
|
75533
75579
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingBox, { content: modal });
|
|
75534
75580
|
}
|
|
75535
75581
|
}
|
|
75582
|
+
function computeFloatingPosition(originRect, panelRect) {
|
|
75583
|
+
let left = originRect.left + originRect.width / 2 - panelRect.width / 2;
|
|
75584
|
+
let top = originRect.top - 10 - panelRect.height;
|
|
75585
|
+
if (top < 10) {
|
|
75586
|
+
top = originRect.bottom + 10;
|
|
75587
|
+
}
|
|
75588
|
+
if (left < 10) {
|
|
75589
|
+
left = 10;
|
|
75590
|
+
} else if (left + panelRect.width > window.innerWidth - 10) {
|
|
75591
|
+
left = window.innerWidth - panelRect.width - 10;
|
|
75592
|
+
}
|
|
75593
|
+
return { top, left };
|
|
75594
|
+
}
|
|
75595
|
+
function useFloatingPanelPosition(panelRef, anchorElement, enabled) {
|
|
75596
|
+
const [position, setPosition] = useState({ top: 0, left: 0 });
|
|
75597
|
+
useLayoutEffect(() => {
|
|
75598
|
+
if (!enabled || !anchorElement || !panelRef.current) return;
|
|
75599
|
+
const updatePosition = () => {
|
|
75600
|
+
const originRect = anchorElement.getBoundingClientRect();
|
|
75601
|
+
const panelRect = panelRef.current.getBoundingClientRect();
|
|
75602
|
+
setPosition(computeFloatingPosition(originRect, panelRect));
|
|
75603
|
+
};
|
|
75604
|
+
updatePosition();
|
|
75605
|
+
const resizeObserver = new ResizeObserver(updatePosition);
|
|
75606
|
+
panelRef.current.parentElement && resizeObserver.observe(panelRef.current.parentElement);
|
|
75607
|
+
return () => resizeObserver.disconnect();
|
|
75608
|
+
}, [anchorElement, enabled]);
|
|
75609
|
+
return position;
|
|
75610
|
+
}
|
|
75536
75611
|
function InputNumber(props) {
|
|
75537
75612
|
const defaultValue = useRef(props.state.get());
|
|
75538
75613
|
const externalValue = useSyncExternalStore(
|
|
@@ -75571,74 +75646,73 @@ function InputNumber(props) {
|
|
|
75571
75646
|
}
|
|
75572
75647
|
);
|
|
75573
75648
|
}
|
|
75574
|
-
function
|
|
75575
|
-
|
|
75576
|
-
|
|
75577
|
-
|
|
75578
|
-
|
|
75579
|
-
|
|
75580
|
-
|
|
75581
|
-
|
|
75582
|
-
|
|
75583
|
-
|
|
75584
|
-
|
|
75585
|
-
|
|
75586
|
-
|
|
75587
|
-
|
|
75588
|
-
|
|
75589
|
-
|
|
75649
|
+
function GenericEntry(field) {
|
|
75650
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75651
|
+
"div",
|
|
75652
|
+
{
|
|
75653
|
+
className: "vim-sectionbox-offsets-entry vc-text-xs vc-flex vc-items-center vc-justify-between vc-my-2",
|
|
75654
|
+
children: [
|
|
75655
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("dt", { className: "vc-w-1/2 vc-inline", children: field.label }),
|
|
75656
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("dd", { className: "vc-w-1/3 vc-inline", children: /* @__PURE__ */ jsxRuntimeExports.jsx(GenericField, { field }) })
|
|
75657
|
+
]
|
|
75658
|
+
},
|
|
75659
|
+
field.id
|
|
75660
|
+
);
|
|
75661
|
+
}
|
|
75662
|
+
function GenericField(props) {
|
|
75663
|
+
switch (props.field.type) {
|
|
75664
|
+
case "number":
|
|
75665
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(InputNumber, { state: props.field.state });
|
|
75666
|
+
case "text":
|
|
75667
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(GenericTextField, { field: props.field });
|
|
75668
|
+
case "bool":
|
|
75669
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(GenericBoolField, { field: props.field });
|
|
75670
|
+
default:
|
|
75671
|
+
return null;
|
|
75672
|
+
}
|
|
75673
|
+
}
|
|
75674
|
+
function GenericTextField(props) {
|
|
75675
|
+
const refresher = useRefresher();
|
|
75676
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75677
|
+
"input",
|
|
75678
|
+
{
|
|
75679
|
+
id: props.field.id,
|
|
75680
|
+
type: "text",
|
|
75681
|
+
value: props.field.state.get(),
|
|
75682
|
+
onChange: (e) => {
|
|
75683
|
+
refresher.refresh();
|
|
75684
|
+
props.field.state.set(e.target.value);
|
|
75685
|
+
},
|
|
75686
|
+
className: "vc-border vc-inline vc-border-gray-300 vc-py-1 vc-w-full vc-px-1",
|
|
75687
|
+
onBlur: () => props.field.state.confirm()
|
|
75590
75688
|
}
|
|
75591
|
-
|
|
75592
|
-
|
|
75593
|
-
|
|
75594
|
-
|
|
75595
|
-
|
|
75596
|
-
}, [props.showPanel.get()]);
|
|
75597
|
-
if (!props.showPanel.get()) return null;
|
|
75598
|
-
const createTextBox = (field) => {
|
|
75599
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75600
|
-
"input",
|
|
75601
|
-
{
|
|
75602
|
-
id: field.id,
|
|
75603
|
-
type: "number",
|
|
75604
|
-
value: field.state.get(),
|
|
75605
|
-
onChange: (e) => field.state.set(e.target.value),
|
|
75606
|
-
className: "vc-border vc-inline vc-border-gray-300 vc-py-1 vc-w-full vc-px-1",
|
|
75607
|
-
onBlur: () => field.state.confirm()
|
|
75608
|
-
}
|
|
75609
|
-
);
|
|
75610
|
-
};
|
|
75611
|
-
const createCheckbox = (field) => /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75689
|
+
);
|
|
75690
|
+
}
|
|
75691
|
+
function GenericBoolField(props) {
|
|
75692
|
+
const refresher = useRefresher();
|
|
75693
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75612
75694
|
"input",
|
|
75613
75695
|
{
|
|
75614
|
-
id: field.id,
|
|
75696
|
+
id: props.field.id,
|
|
75615
75697
|
type: "checkbox",
|
|
75616
|
-
checked: field.state.get(),
|
|
75617
|
-
onChange: (e) =>
|
|
75698
|
+
checked: props.field.state.get(),
|
|
75699
|
+
onChange: (e) => {
|
|
75700
|
+
refresher.refresh();
|
|
75701
|
+
props.field.state.set(e.target.checked);
|
|
75702
|
+
},
|
|
75618
75703
|
className: "vc-border vc-inline vc-border-gray-300 vc-py-1 vc-w-full vc-px-1"
|
|
75619
75704
|
}
|
|
75620
75705
|
);
|
|
75621
|
-
|
|
75622
|
-
|
|
75623
|
-
|
|
75624
|
-
|
|
75625
|
-
|
|
75626
|
-
|
|
75627
|
-
|
|
75628
|
-
|
|
75629
|
-
|
|
75630
|
-
|
|
75631
|
-
"div",
|
|
75632
|
-
{
|
|
75633
|
-
className: "vim-sectionbox-offsets-entry vc-text-xs vc-flex vc-items-center vc-justify-between vc-my-2",
|
|
75634
|
-
children: [
|
|
75635
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("dt", { className: "vc-w-1/2 vc-inline", children: field.label }),
|
|
75636
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("dd", { className: "vc-w-1/3 vc-inline", children: fieldElement })
|
|
75637
|
-
]
|
|
75638
|
-
},
|
|
75639
|
-
field.id
|
|
75640
|
-
);
|
|
75641
|
-
};
|
|
75706
|
+
}
|
|
75707
|
+
const GenericPanel = forwardRef((props, ref) => {
|
|
75708
|
+
const panelRef = useRef(null);
|
|
75709
|
+
const panelPosition = useFloatingPanelPosition(
|
|
75710
|
+
panelRef,
|
|
75711
|
+
props.anchorElement,
|
|
75712
|
+
props.showPanel.get()
|
|
75713
|
+
);
|
|
75714
|
+
const entries = useCustomizer(props.entries, ref);
|
|
75715
|
+
if (!props.showPanel.get()) return null;
|
|
75642
75716
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "vc-fixed vc-inset-0 vc-flex vc-pointer-events-none", children: /* @__PURE__ */ jsxRuntimeExports.jsxs(
|
|
75643
75717
|
"div",
|
|
75644
75718
|
{
|
|
@@ -75658,47 +75732,52 @@ function GenericPanel(props) {
|
|
|
75658
75732
|
"button",
|
|
75659
75733
|
{
|
|
75660
75734
|
className: "vc-flex vc-border-none vc-bg-transparent vc-text-sm vc-cursor-pointer",
|
|
75661
|
-
onClick: props.onClose
|
|
75735
|
+
onClick: props.onClose ?? (() => props.showPanel.set(false)),
|
|
75662
75736
|
children: close({ height: 12, width: 12, fill: "currentColor" })
|
|
75663
75737
|
}
|
|
75664
75738
|
)
|
|
75665
75739
|
] }),
|
|
75666
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("dl", { className: "vc-text-xl vc-text-gray-darker vc-mb-2 vc-mx-2", children:
|
|
75740
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("dl", { className: "vc-text-xl vc-text-gray-darker vc-mb-2 vc-mx-2", children: entries.map(GenericEntry) })
|
|
75667
75741
|
]
|
|
75668
75742
|
}
|
|
75669
75743
|
) });
|
|
75744
|
+
});
|
|
75745
|
+
function useCustomizer(baseEntries, ref) {
|
|
75746
|
+
const customization = useRef();
|
|
75747
|
+
const [entries, setEntries] = useState(baseEntries);
|
|
75748
|
+
const applyCustomization = () => {
|
|
75749
|
+
setEntries(customization.current ? customization.current(baseEntries) : baseEntries);
|
|
75750
|
+
};
|
|
75751
|
+
const setCustomization = (fn) => {
|
|
75752
|
+
customization.current = fn;
|
|
75753
|
+
applyCustomization();
|
|
75754
|
+
};
|
|
75755
|
+
useEffect(() => {
|
|
75756
|
+
applyCustomization();
|
|
75757
|
+
}, [baseEntries]);
|
|
75758
|
+
useImperativeHandle(ref, () => ({
|
|
75759
|
+
customize: setCustomization
|
|
75760
|
+
}));
|
|
75761
|
+
return entries;
|
|
75670
75762
|
}
|
|
75671
|
-
|
|
75672
|
-
|
|
75673
|
-
|
|
75674
|
-
|
|
75675
|
-
|
|
75676
|
-
|
|
75677
|
-
|
|
75678
|
-
|
|
75679
|
-
|
|
75680
|
-
|
|
75681
|
-
|
|
75682
|
-
|
|
75683
|
-
|
|
75684
|
-
|
|
75685
|
-
|
|
75686
|
-
|
|
75687
|
-
|
|
75688
|
-
|
|
75689
|
-
return { top: 0, left: 0 };
|
|
75690
|
-
}
|
|
75691
|
-
function SectionBoxPanel(props) {
|
|
75692
|
-
return GenericPanel({
|
|
75693
|
-
header: "Section Box Offsets",
|
|
75694
|
-
showPanel: props.state.showOffsetPanel,
|
|
75695
|
-
fields: [
|
|
75696
|
-
{ type: "number", id: "topOffset", label: "Top Offset", state: props.state.topOffset },
|
|
75697
|
-
{ type: "number", id: "sideOffset", label: "Side Offset", state: props.state.sideOffset },
|
|
75698
|
-
{ type: "number", id: "bottomOffset", label: "Bottom Offset", state: props.state.bottomOffset }
|
|
75699
|
-
]
|
|
75700
|
-
});
|
|
75701
|
-
}
|
|
75763
|
+
const SectionBoxPanel = forwardRef(
|
|
75764
|
+
(props, ref) => {
|
|
75765
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75766
|
+
GenericPanel,
|
|
75767
|
+
{
|
|
75768
|
+
ref,
|
|
75769
|
+
header: "Section Box Offsets",
|
|
75770
|
+
anchorElement: document.getElementById("vim-control-bar"),
|
|
75771
|
+
showPanel: props.state.showOffsetPanel,
|
|
75772
|
+
entries: [
|
|
75773
|
+
{ type: "number", id: "topOffset", label: "Top Offset", state: props.state.topOffset },
|
|
75774
|
+
{ type: "number", id: "sideOffset", label: "Side Offset", state: props.state.sideOffset },
|
|
75775
|
+
{ type: "number", id: "bottomOffset", label: "Bottom Offset", state: props.state.bottomOffset }
|
|
75776
|
+
]
|
|
75777
|
+
}
|
|
75778
|
+
);
|
|
75779
|
+
}
|
|
75780
|
+
);
|
|
75702
75781
|
function useSectionBox(adapter) {
|
|
75703
75782
|
const enable = useStateRef(false);
|
|
75704
75783
|
const visible2 = useStateRef(false);
|
|
@@ -75854,17 +75933,24 @@ function useViewerInput(handler, camera2) {
|
|
|
75854
75933
|
handler.keyboard.registerKeyUp("KeyF", "replace", () => camera2.frameSelection.call());
|
|
75855
75934
|
}, []);
|
|
75856
75935
|
}
|
|
75857
|
-
|
|
75858
|
-
|
|
75859
|
-
|
|
75860
|
-
|
|
75861
|
-
|
|
75862
|
-
|
|
75863
|
-
|
|
75864
|
-
|
|
75865
|
-
|
|
75866
|
-
|
|
75867
|
-
}
|
|
75936
|
+
const IsolationPanel = forwardRef(
|
|
75937
|
+
(props, ref) => {
|
|
75938
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
75939
|
+
GenericPanel,
|
|
75940
|
+
{
|
|
75941
|
+
ref,
|
|
75942
|
+
header: "Render Settings",
|
|
75943
|
+
anchorElement: document.getElementById("vim-control-bar"),
|
|
75944
|
+
showPanel: props.state.showPanel,
|
|
75945
|
+
entries: [
|
|
75946
|
+
{ type: "bool", id: "showGhost", label: "Show Ghost", state: props.state.showGhost },
|
|
75947
|
+
// { type: "bool", id: "showRooms", label: "Show Rooms", state: props.state.showRooms },
|
|
75948
|
+
{ type: "number", id: "ghostOpacity", label: "Ghost Opacity", state: props.state.ghostOpacity }
|
|
75949
|
+
]
|
|
75950
|
+
}
|
|
75951
|
+
);
|
|
75952
|
+
}
|
|
75953
|
+
);
|
|
75868
75954
|
function useSharedIsolation(adapter) {
|
|
75869
75955
|
const _adapter = useRef(adapter);
|
|
75870
75956
|
const visibility = useStateRef(() => adapter.computeVisibility());
|
|
@@ -76034,6 +76120,8 @@ function Viewer$1(props) {
|
|
|
76034
76120
|
const settings2 = useSettings(props.viewer, props.settings ?? {});
|
|
76035
76121
|
const modal = useRef(null);
|
|
76036
76122
|
const sectionBoxRef = useWebglSectionBox(props.viewer);
|
|
76123
|
+
const isolationPanelRef = useRef(null);
|
|
76124
|
+
const sectionBoxPanelRef = useRef(null);
|
|
76037
76125
|
const camera2 = useWebglCamera(props.viewer, sectionBoxRef);
|
|
76038
76126
|
const cursor = useMemo(() => new CursorManager(props.viewer), []);
|
|
76039
76127
|
const loader = useRef(new ComponentLoader(props.viewer, modal));
|
|
@@ -76062,7 +76150,6 @@ function Viewer$1(props) {
|
|
|
76062
76150
|
props.viewer.viewport.canvas.tabIndex = 0;
|
|
76063
76151
|
applyWebglBindings(props.viewer, camera2, isolationRef, side);
|
|
76064
76152
|
const subContext = props.viewer.inputs.onContextMenu.subscribe(showContextMenu);
|
|
76065
|
-
console.log("ON MOUNT");
|
|
76066
76153
|
props.onMount({
|
|
76067
76154
|
container: props.container,
|
|
76068
76155
|
core: props.viewer,
|
|
@@ -76070,6 +76157,12 @@ function Viewer$1(props) {
|
|
|
76070
76157
|
isolation: isolationRef,
|
|
76071
76158
|
camera: camera2,
|
|
76072
76159
|
settings: settings2,
|
|
76160
|
+
get isolationPanel() {
|
|
76161
|
+
return isolationPanelRef.current;
|
|
76162
|
+
},
|
|
76163
|
+
get sectionBoxPanel() {
|
|
76164
|
+
return sectionBoxPanelRef.current;
|
|
76165
|
+
},
|
|
76073
76166
|
get sectionBox() {
|
|
76074
76167
|
return sectionBoxRef;
|
|
76075
76168
|
},
|
|
@@ -76137,8 +76230,8 @@ function Viewer$1(props) {
|
|
|
76137
76230
|
show: isTrue(settings2.value.ui.controlBar)
|
|
76138
76231
|
}
|
|
76139
76232
|
),
|
|
76140
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel, { state: sectionBoxRef }),
|
|
76141
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76233
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel, { ref: sectionBoxPanelRef, state: sectionBoxRef }),
|
|
76234
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel, { ref: isolationPanelRef, state: isolationRef }),
|
|
76142
76235
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76143
76236
|
AxesPanelMemo,
|
|
76144
76237
|
{
|
|
@@ -76459,7 +76552,7 @@ function Viewer3(props) {
|
|
|
76459
76552
|
}
|
|
76460
76553
|
),
|
|
76461
76554
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SectionBoxPanel, { state: sectionBox2 }),
|
|
76462
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
76555
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(IsolationPanel, { state: isolation })
|
|
76463
76556
|
] });
|
|
76464
76557
|
} }),
|
|
76465
76558
|
/* @__PURE__ */ jsxRuntimeExports.jsx(Modal, { ref: modal, canFollowLinks: true }),
|
|
@@ -76503,8 +76596,10 @@ const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePropert
|
|
|
76503
76596
|
__proto__: null,
|
|
76504
76597
|
ContextMenu: contextMenu,
|
|
76505
76598
|
ControlBar: index$5,
|
|
76599
|
+
DeferredPromise,
|
|
76506
76600
|
Errors: index$3,
|
|
76507
76601
|
Icons: icons,
|
|
76602
|
+
ReactUtils: reactUtils,
|
|
76508
76603
|
Settings: index$4,
|
|
76509
76604
|
Ultra: index$1,
|
|
76510
76605
|
Urls: urls,
|