vim-web 0.5.0-dev.22 → 0.5.0-dev.24

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/vim-web.js CHANGED
@@ -52672,6 +52672,7 @@ class MouseHandler extends BaseInputHandler {
52672
52672
  __publicField(this, "_capture");
52673
52673
  __publicField(this, "_dragHandler");
52674
52674
  __publicField(this, "_doubleClickHandler", new DoubleClickHandler());
52675
+ __publicField(this, "_clickHandler", new ClickHandler());
52675
52676
  __publicField(this, "onButtonDown");
52676
52677
  __publicField(this, "onButtonUp");
52677
52678
  __publicField(this, "onMouseMove");
@@ -52708,23 +52709,28 @@ class MouseHandler extends BaseInputHandler {
52708
52709
  (_a3 = this.onButtonDown) == null ? void 0 : _a3.call(this, pos, event.button);
52709
52710
  this._lastMouseDownPosition = pos;
52710
52711
  this._dragHandler.onPointerDown(pos, event.button);
52712
+ this._clickHandler.onPointerDown(pos);
52711
52713
  this._capture.onPointerDown(event);
52712
52714
  event.preventDefault();
52713
52715
  }
52714
52716
  handlePointerUp(event) {
52715
52717
  var _a3;
52716
52718
  if (event.pointerType !== "mouse") return;
52719
+ event.preventDefault();
52717
52720
  const pos = this.relativePosition(event);
52718
52721
  (_a3 = this.onButtonUp) == null ? void 0 : _a3.call(this, pos, event.button);
52719
52722
  this._capture.onPointerUp(event);
52720
52723
  this._dragHandler.onPointerUp();
52721
- if (this._doubleClickHandler.checkForDoubleClick(event)) {
52724
+ this._clickHandler.onPointerUp();
52725
+ if (this._doubleClickHandler.isDoubleClick(event)) {
52722
52726
  this.handleDoubleClick(event);
52723
- } else {
52727
+ return;
52728
+ }
52729
+ if (this._clickHandler.isClick(event)) {
52724
52730
  this.handleMouseClick(event);
52725
- this.handleContextMenu(event);
52731
+ return;
52726
52732
  }
52727
- event.preventDefault();
52733
+ this.handleContextMenu(event);
52728
52734
  }
52729
52735
  async handleMouseClick(event) {
52730
52736
  var _a3;
@@ -52753,6 +52759,7 @@ class MouseHandler extends BaseInputHandler {
52753
52759
  this._canvas.focus();
52754
52760
  const pos = this.relativePosition(event);
52755
52761
  this._dragHandler.onPointerMove(pos);
52762
+ this._clickHandler.onPointerMove(pos);
52756
52763
  (_a3 = this.onMouseMove) == null ? void 0 : _a3.call(this, pos);
52757
52764
  }
52758
52765
  async handleDoubleClick(event) {
@@ -52796,6 +52803,28 @@ class CaptureHandler {
52796
52803
  }
52797
52804
  }
52798
52805
  }
52806
+ class ClickHandler {
52807
+ constructor() {
52808
+ __publicField(this, "_moved", false);
52809
+ __publicField(this, "_startPosition", new Vector2());
52810
+ __publicField(this, "_clickThreshold", 3e-3);
52811
+ }
52812
+ onPointerDown(pos) {
52813
+ this._moved = false;
52814
+ this._startPosition.copy(pos);
52815
+ }
52816
+ onPointerMove(pos) {
52817
+ if (pos.distanceTo(this._startPosition) > this._clickThreshold) {
52818
+ this._moved = true;
52819
+ }
52820
+ }
52821
+ onPointerUp() {
52822
+ }
52823
+ isClick(event) {
52824
+ if (event.button !== 0) return false;
52825
+ return !this._moved;
52826
+ }
52827
+ }
52799
52828
  class DoubleClickHandler {
52800
52829
  constructor() {
52801
52830
  __publicField(this, "_lastClickTime", 0);
@@ -52805,7 +52834,7 @@ class DoubleClickHandler {
52805
52834
  __publicField(this, "_positionThreshold", 5);
52806
52835
  }
52807
52836
  // Max pixel distance between clicks
52808
- checkForDoubleClick(event) {
52837
+ isDoubleClick(event) {
52809
52838
  const currentTime = Date.now();
52810
52839
  const currentPosition = new Vector2(event.clientX, event.clientY);
52811
52840
  const timeDiff = currentTime - this._lastClickTime;
@@ -55390,7 +55419,7 @@ class RenderScene {
55390
55419
  }
55391
55420
  unparent2dObjects(target) {
55392
55421
  if (target instanceof Group) {
55393
- for (const child of target.children) {
55422
+ for (const child of [...target.children]) {
55394
55423
  if (child instanceof CSS2DObject) {
55395
55424
  target.remove(child);
55396
55425
  }
@@ -55565,6 +55594,7 @@ class Selection {
55565
55594
  }
55566
55595
  add(objectOrObjects) {
55567
55596
  if (!this.enabled) return;
55597
+ if (!objectOrObjects) return;
55568
55598
  const objects = this.toArray(objectOrObjects);
55569
55599
  let changed = false;
55570
55600
  for (const obj of objects) {
@@ -67613,7 +67643,7 @@ function controlBarSectionBox(section, hasSelection, settings2) {
67613
67643
  enabled: () => isTrue(settings2.sectioningEnable),
67614
67644
  tip: "Enable Section Box",
67615
67645
  isOn: () => section.enable.get(),
67616
- style: (on) => Style.buttonExpandStyle(on),
67646
+ style: Style.buttonExpandStyle,
67617
67647
  action: () => section.enable.set(!section.enable.get()),
67618
67648
  icon: sectionBox
67619
67649
  },
@@ -67622,7 +67652,7 @@ function controlBarSectionBox(section, hasSelection, settings2) {
67622
67652
  tip: "Fit Section",
67623
67653
  enabled: () => section.enable.get() && isTrue(settings2.sectioningFitToSelection),
67624
67654
  isOn: () => hasSelection,
67625
- style: (on) => Style.buttonDisableStyle(on),
67655
+ style: Style.buttonDisableStyle,
67626
67656
  action: () => section.sectionSelection.call(),
67627
67657
  icon: sectionBoxShrink
67628
67658
  },
@@ -67630,7 +67660,7 @@ function controlBarSectionBox(section, hasSelection, settings2) {
67630
67660
  id: Ids$2.sectioningFitScene,
67631
67661
  tip: "Reset Section",
67632
67662
  enabled: () => section.enable.get() && isTrue(settings2.sectioningReset),
67633
- style: (on) => Style.buttonDefaultStyle(on),
67663
+ style: Style.buttonDefaultStyle,
67634
67664
  action: () => section.sectionScene.call(),
67635
67665
  icon: sectionBoxReset
67636
67666
  },
@@ -67639,7 +67669,7 @@ function controlBarSectionBox(section, hasSelection, settings2) {
67639
67669
  tip: "Show Section Box",
67640
67670
  enabled: () => section.enable.get() && isTrue(settings2.sectioningShow),
67641
67671
  isOn: () => section.visible.get(),
67642
- style: (on) => Style.buttonDefaultStyle(on),
67672
+ style: Style.buttonDefaultStyle,
67643
67673
  action: () => section.visible.set(!section.visible.get()),
67644
67674
  icon: visible
67645
67675
  },
@@ -67648,7 +67678,7 @@ function controlBarSectionBox(section, hasSelection, settings2) {
67648
67678
  tip: "Auto Section",
67649
67679
  enabled: () => section.enable.get() && isTrue(settings2.sectioningAuto),
67650
67680
  isOn: () => section.auto.get(),
67651
- style: (on) => Style.buttonDefaultStyle(on),
67681
+ style: Style.buttonDefaultStyle,
67652
67682
  action: () => section.auto.set(!section.auto.get()),
67653
67683
  icon: sectionBoxAuto
67654
67684
  },
@@ -67657,14 +67687,14 @@ function controlBarSectionBox(section, hasSelection, settings2) {
67657
67687
  tip: "Section Settings",
67658
67688
  enabled: () => section.enable.get() && isTrue(settings2.sectioningSettings),
67659
67689
  isOn: () => section.showOffsetPanel.get(),
67660
- style: (on) => Style.buttonDefaultStyle(on),
67690
+ style: Style.buttonDefaultStyle,
67661
67691
  action: () => section.showOffsetPanel.set(!section.showOffsetPanel.get()),
67662
67692
  icon: slidersHoriz
67663
67693
  }
67664
67694
  ]
67665
67695
  };
67666
67696
  }
67667
- function controlBarPointer(viewer, camera2, settings2, section) {
67697
+ function controlBarPointer(viewer, settings2) {
67668
67698
  const pointer2 = getPointerState(viewer);
67669
67699
  return {
67670
67700
  id: Ids$2.cursorSpan,
@@ -67728,65 +67758,57 @@ function controlBarMeasure(measure$1, settings2) {
67728
67758
  ]
67729
67759
  };
67730
67760
  }
67731
- function controlBarMiscUltra(side, settings$1) {
67761
+ function createMiscSettingsButton(side, settings$1) {
67762
+ return {
67763
+ id: Ids$2.miscSettings,
67764
+ enabled: () => isTrue(settings$1.ui.miscSettings),
67765
+ tip: "Settings",
67766
+ action: () => side.toggleContent("settings"),
67767
+ icon: settings,
67768
+ style: Style.buttonDefaultStyle
67769
+ };
67770
+ }
67771
+ function createMiscHelpButton(modal, settings2) {
67772
+ return {
67773
+ id: Ids$2.miscHelp,
67774
+ enabled: () => isTrue(settings2.ui.miscHelp),
67775
+ tip: "Help",
67776
+ action: () => modal.help(true),
67777
+ icon: help,
67778
+ style: Style.buttonDefaultStyle
67779
+ };
67780
+ }
67781
+ function controlBarMiscUltra(modal, side, settings2) {
67732
67782
  return {
67733
67783
  id: Ids$2.miscSpan,
67734
- enable: () => isTrue(settings$1.ui.miscSettings),
67784
+ enable: () => anyUltraMiscButton(settings2),
67735
67785
  style: Style.sectionDefaultStyle,
67736
67786
  buttons: [
67737
- {
67738
- id: Ids$2.miscSettings,
67739
- enabled: () => isTrue(settings$1.ui.miscSettings),
67740
- tip: "Settings",
67741
- action: () => side.toggleContent("settings"),
67742
- icon: settings,
67743
- style: Style.buttonDefaultStyle
67744
- },
67745
- {
67746
- id: Ids$2.miscHelp,
67747
- enabled: () => isTrue(settings$1.ui.miscHelp),
67748
- tip: "Help",
67749
- action: () => side.toggleContent("settings"),
67750
- icon: settings,
67751
- style: Style.buttonDefaultStyle
67752
- }
67787
+ createMiscSettingsButton(side, settings2),
67788
+ createMiscHelpButton(modal, settings2)
67753
67789
  ]
67754
67790
  };
67755
67791
  }
67756
- function controlBarMisc(modal, side, settings$1) {
67792
+ function controlBarMisc(modal, side, settings2) {
67757
67793
  const fullScreen = getFullScreenState();
67758
67794
  return {
67759
67795
  id: Ids$2.miscSpan,
67760
- enable: () => anyUiSettingButton(settings$1),
67796
+ enable: () => anyWebglMiscButton(settings2),
67761
67797
  style: Style.sectionDefaultStyle,
67762
67798
  buttons: [
67763
67799
  {
67764
67800
  id: Ids$2.miscInspector,
67765
- enabled: () => isTrue(settings$1.ui.miscProjectInspector) && (isTrue(settings$1.ui.panelBimTree) || isTrue(settings$1.ui.panelBimInfo)),
67801
+ enabled: () => showBimButton(settings2),
67766
67802
  tip: "Project Inspector",
67767
67803
  action: () => side.toggleContent("bim"),
67768
67804
  icon: treeView,
67769
67805
  style: Style.buttonDefaultStyle
67770
67806
  },
67771
- {
67772
- id: Ids$2.miscSettings,
67773
- enabled: () => isTrue(settings$1.ui.miscSettings),
67774
- tip: "Settings",
67775
- action: () => side.toggleContent("settings"),
67776
- icon: settings,
67777
- style: Style.buttonDefaultStyle
67778
- },
67779
- {
67780
- id: Ids$2.miscHelp,
67781
- enabled: () => isTrue(settings$1.ui.miscHelp),
67782
- tip: "Help",
67783
- action: () => modal.help(true),
67784
- icon: help,
67785
- style: Style.buttonDefaultStyle
67786
- },
67807
+ createMiscSettingsButton(side, settings2),
67808
+ createMiscHelpButton(modal, settings2),
67787
67809
  {
67788
67810
  id: Ids$2.miscMaximize,
67789
- enabled: () => isTrue(settings$1.ui.miscMaximise) && settings$1.capacity.canGoFullScreen,
67811
+ enabled: () => isTrue(settings2.ui.miscMaximise) && settings2.capacity.canGoFullScreen,
67790
67812
  tip: fullScreen.get() ? "Minimize" : "Fullscreen",
67791
67813
  action: () => fullScreen.toggle(),
67792
67814
  icon: fullScreen.get() ? minimize : fullsScreen,
@@ -67837,7 +67859,7 @@ function controlBarVisibility(isolation, settings2) {
67837
67859
  return {
67838
67860
  id: Ids$2.visibilitySpan,
67839
67861
  enable: () => true,
67840
- style: `${Style.sectionDefaultStyle}`,
67862
+ style: Style.sectionDefaultStyle,
67841
67863
  buttons: [
67842
67864
  {
67843
67865
  id: Ids$2.visibilityClearSelection,
@@ -67906,7 +67928,7 @@ function controlBarVisibility(isolation, settings2) {
67906
67928
  function useControlBar(viewer, camera2, modal, side, cursor, settings2, section, isolationRef, customization) {
67907
67929
  const measure2 = getMeasureState(viewer, cursor);
67908
67930
  let controlBarSections = [
67909
- controlBarPointer(viewer, camera2, settings2.ui),
67931
+ controlBarPointer(viewer, settings2.ui),
67910
67932
  controlBarCamera(camera2, settings2.ui),
67911
67933
  controlBarVisibility(isolationRef, settings2.ui),
67912
67934
  controlBarMeasure(measure2, settings2.ui),
@@ -67916,12 +67938,21 @@ function useControlBar(viewer, camera2, modal, side, cursor, settings2, section,
67916
67938
  controlBarSections = (customization == null ? void 0 : customization(controlBarSections)) ?? controlBarSections;
67917
67939
  return controlBarSections;
67918
67940
  }
67941
+ function showBimButton(settings2) {
67942
+ if (isFalse(settings2.ui.miscProjectInspector)) return false;
67943
+ if (isTrue(settings2.ui.panelBimTree)) return true;
67944
+ if (isTrue(settings2.ui.panelBimInfo)) return true;
67945
+ return false;
67946
+ }
67919
67947
  function anyUiCursorButton(settings2) {
67920
67948
  return isTrue(settings2.cursorOrbit) || isTrue(settings2.cursorLookAround) || isTrue(settings2.cursorPan) || isTrue(settings2.cursorZoom);
67921
67949
  }
67922
- function anyUiSettingButton(settings2) {
67950
+ function anyWebglMiscButton(settings2) {
67923
67951
  return isTrue(settings2.ui.miscProjectInspector) || isTrue(settings2.ui.miscSettings) || isTrue(settings2.ui.miscHelp) || isTrue(settings2.ui.miscMaximise);
67924
67952
  }
67953
+ function anyUltraMiscButton(settings2) {
67954
+ return isTrue(settings2.ui.miscSettings) || isTrue(settings2.ui.miscHelp);
67955
+ }
67925
67956
  function RestOfScreen(props) {
67926
67957
  const [, setVersion] = useState(0);
67927
67958
  const resizeObserver = useRef();
@@ -74808,7 +74839,7 @@ const errorStyle = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePr
74808
74839
  }, Symbol.toStringTag, { value: "Module" }));
74809
74840
  function fileOpeningError(url) {
74810
74841
  return {
74811
- title: "File Opening Error",
74842
+ title: "VIM Ultra File Error",
74812
74843
  body: serverFileOpeningErrorBody(url),
74813
74844
  footer: footer$1(),
74814
74845
  canClose: false
@@ -74816,12 +74847,8 @@ function fileOpeningError(url) {
74816
74847
  }
74817
74848
  function serverFileOpeningErrorBody(url) {
74818
74849
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74819
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74820
- "Oops, it appears that there's an ",
74821
- bold("error opening the VIM file"),
74822
- ". Please check the file exists at the path noted below."
74823
- ] })),
74824
- subTitle("Error details:"),
74850
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error opening the VIM file in VIM Ultra." })),
74851
+ subTitle("Details"),
74825
74852
  dotList([bullet("File path:", url)])
74826
74853
  ] });
74827
74854
  }
@@ -74830,7 +74857,7 @@ function serverFileDownloadingError(url, authToken, server) {
74830
74857
  return fileOpeningError(url);
74831
74858
  }
74832
74859
  return {
74833
- title: "File Downloading Error",
74860
+ title: "VIM Ultra Download Error",
74834
74861
  body: body$5(url, authToken, server),
74835
74862
  footer: footer$1(),
74836
74863
  canClose: false
@@ -74838,28 +74865,23 @@ function serverFileDownloadingError(url, authToken, server) {
74838
74865
  }
74839
74866
  function body$5(url, authToken, server) {
74840
74867
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74841
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74842
- "Oops, it appears that there’s an ",
74843
- bold("error downloading the VIM file"),
74844
- ". Please check the following conditions to get back up and running quickly."
74845
- ] })),
74846
- subTitle("Error details:"),
74868
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error downloading the VIM file in VIM Ultra." })),
74869
+ subTitle("Details"),
74847
74870
  dotList([
74848
- server ? bullet("VIM ULTRA Server:", server) : null,
74849
- bullet("File URL:", url),
74850
- authToken ? bullet("Auth Token:", authToken) : null
74871
+ server ? bullet("VIM Ultra:", server) : null,
74872
+ bullet("VIM URL:", url),
74873
+ authToken ? bullet("Access Token:", authToken) : null
74851
74874
  ]),
74852
- subTitle("Troubleshooting tips:"),
74875
+ subTitle("Tips"),
74853
74876
  numList([
74854
- "Make sure the VIM exists at the url listed above.",
74855
- "Reprocess the VIM file and refresh the Power BI report dataset.",
74856
- server ? "Check network access policies to allow the VIM Ultra Server access to the VIM File url." : ""
74877
+ "Ensure the VIM URL is valid",
74878
+ "Check your network connection and access policies"
74857
74879
  ])
74858
74880
  ] });
74859
74881
  }
74860
74882
  function serverFileLoadingError(url) {
74861
74883
  return {
74862
- title: "File Loading Error",
74884
+ title: "VIM Ultra Loading Error",
74863
74885
  body: body$4(url),
74864
74886
  footer: footer$1(),
74865
74887
  canClose: false
@@ -74867,30 +74889,20 @@ function serverFileLoadingError(url) {
74867
74889
  }
74868
74890
  function body$4(url) {
74869
74891
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74870
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74871
- "Oops, it appears that we ",
74872
- bold("couldn’t load the VIM file"),
74873
- ". This could be due to a couple of reasons, including that the file could be corrupt or not recognizable."
74874
- ] })),
74875
- subTitle("Error details:"),
74892
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error loading the VIM file in VIM Ultra." })),
74893
+ subTitle("Details"),
74876
74894
  dotList([bullet("File path:", url)]),
74877
- subTitle("Troubleshooting tips:"),
74895
+ subTitle("Tips"),
74878
74896
  numList([
74879
- "Reload this Power BI report",
74880
- "Reprocess the VIM file and refresh the Power BI report dataset"
74897
+ "Reload the page",
74898
+ "Ensure the VIM URL points to a valid VIM file",
74899
+ "Clear your VIM Ultra download cache"
74881
74900
  ])
74882
74901
  ] });
74883
74902
  }
74884
- const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
74885
- const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
74886
- const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
74887
- __proto__: null,
74888
- supportControls,
74889
- supportUltra
74890
- }, Symbol.toStringTag, { value: "Module" }));
74891
74903
  function serverConnectionError(url) {
74892
74904
  return {
74893
- title: "Connection Error",
74905
+ title: "VIM Ultra Connection",
74894
74906
  body: body$3(url, isLocalUrl(url)),
74895
74907
  footer: footer$1(),
74896
74908
  canClose: false
@@ -74898,29 +74910,17 @@ function serverConnectionError(url) {
74898
74910
  }
74899
74911
  function body$3(url, local) {
74900
74912
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74901
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74902
- "Oops, it appears that there’s an ",
74903
- bold("error connecting to the ULTRA server"),
74904
- ". Please check the following conditions to get back up and running quickly."
74905
- ] })),
74906
- subTitle("Troubleshooting tips:"),
74913
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered an error connecting to VIM Ultra." })),
74914
+ subTitle("Tips"),
74907
74915
  numList([
74908
- /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74909
- "Ensure that VIM Ultra",
74910
- " ",
74911
- link(supportUltra, "process is running"),
74912
- " ",
74913
- "at ",
74914
- detailText(url)
74915
- ] }),
74916
- "Check your internet connection.",
74917
- "Check firewall permissions."
74916
+ `Ensure that VIM Ultra is running at ${detailText(url)}`,
74917
+ "Check your network connection and access policies"
74918
74918
  ])
74919
74919
  ] });
74920
74920
  }
74921
74921
  function serverCompatibilityError(url, localVersion, remoteVersion) {
74922
74922
  return {
74923
- title: "Compatibility Error",
74923
+ title: "VIM Ultra Compatibility",
74924
74924
  body: body$2(url, localVersion, remoteVersion),
74925
74925
  footer: footer$1(),
74926
74926
  canClose: false
@@ -74928,28 +74928,23 @@ function serverCompatibilityError(url, localVersion, remoteVersion) {
74928
74928
  }
74929
74929
  function body$2(url, localVersion, remoteVersion) {
74930
74930
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74931
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74932
- "Oops, it appears that you’re running a ",
74933
- " ",
74934
- bold("version of VIM Ultra Server that isn’t compatible with this visual"),
74935
- ". Please check the following conditions to get back up and running quickly."
74936
- ] })),
74937
- subTitle("Error details:"),
74931
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "The VIM Ultra version is incompatible with this visual." })),
74932
+ subTitle("Details"),
74938
74933
  dotList([
74939
74934
  bullet("Url:", url),
74940
74935
  bullet("Local Version:", localVersion),
74941
74936
  bullet("Remote Version:", remoteVersion)
74942
74937
  ]),
74943
- subTitle("Troubleshooting tips:"),
74938
+ subTitle("Tips"),
74944
74939
  numList([
74945
- "Update your PowerBI visual with the compatible version.",
74946
- "Or, run the compatible version of VIM Ultra."
74940
+ "Update this visual to a compatible version.",
74941
+ "Start a compatible version of VIM Ultra."
74947
74942
  ])
74948
74943
  ] });
74949
74944
  }
74950
74945
  function serverStreamError(url) {
74951
74946
  return {
74952
- title: "Stream Error",
74947
+ title: "VIM Ultra Stream Error",
74953
74948
  body: body$1(),
74954
74949
  footer: footer$1(),
74955
74950
  canClose: false
@@ -74957,16 +74952,12 @@ function serverStreamError(url) {
74957
74952
  }
74958
74953
  function body$1(url) {
74959
74954
  return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: vcRoboto, children: [
74960
- mainText(/* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
74961
- "Oops, it appears that there’s an ",
74962
- bold("error starting a stream on the VIM Ultra Server"),
74963
- ". Please check the following conditions to get back up and running quickly."
74964
- ] })),
74965
- subTitle("Troubleshooting tips:"),
74955
+ mainText(/* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: "We encountered a streaming error with VIM Ultra." })),
74956
+ subTitle("Tips"),
74966
74957
  numList([
74967
- "Close other applications that may be using the server.",
74968
- "Try reconnecting to the server.",
74969
- "Restart the server."
74958
+ "Reload the page",
74959
+ "Close other applications that may be using VIM Ultra",
74960
+ "Restart VIM Ultra"
74970
74961
  ])
74971
74962
  ] });
74972
74963
  }
@@ -76772,12 +76763,12 @@ function useUltraSectionBox(viewer) {
76772
76763
  };
76773
76764
  return useSectionBox(ultraAdapter);
76774
76765
  }
76775
- function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, customization) {
76766
+ function useUltraControlBar(viewer, section, isolation, camera2, settings2, side, modal, customization) {
76776
76767
  let bar = [
76777
76768
  controlBarCamera(camera2, settings2.ui),
76778
76769
  controlBarVisibility(isolation, settings2.ui),
76779
76770
  controlBarSectionBox(section, viewer.selection.any(), settings2.ui),
76780
- controlBarMiscUltra(side, settings2)
76771
+ controlBarMiscUltra(modal, side, settings2)
76781
76772
  ];
76782
76773
  bar = (customization == null ? void 0 : customization(bar)) ?? bar;
76783
76774
  return bar;
@@ -77036,6 +77027,7 @@ function Viewer3(props) {
77036
77027
  camera2,
77037
77028
  settings2.value,
77038
77029
  side,
77030
+ modalHandle.current,
77039
77031
  (_2) => _2
77040
77032
  );
77041
77033
  useViewerInput(props.core.inputs, camera2);
@@ -77152,6 +77144,13 @@ const index$1 = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.definePrope
77152
77144
  createViewer,
77153
77145
  getDefaultUltraSettings
77154
77146
  }, Symbol.toStringTag, { value: "Module" }));
77147
+ const supportUltra = "https://docs.vimaec.com/docs/vim-for-windows/configuring-vim-ultra";
77148
+ const supportControls = "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide";
77149
+ const urls = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
77150
+ __proto__: null,
77151
+ supportControls,
77152
+ supportUltra
77153
+ }, Symbol.toStringTag, { value: "Module" }));
77155
77154
  const SectionBoxPanel = {
77156
77155
  Ids
77157
77156
  };