From b88f1dc65bd3ef4b24f86bc320fd95c0c669bf37 Mon Sep 17 00:00:00 2001 From: Martin Ashton Date: Wed, 5 Feb 2025 14:25:43 -0500 Subject: [PATCH] BuildWebsite --- docs/404.html | 2 +- docs/api/assets/hierarchy.js | 2 +- docs/api/assets/navigation.js | 2 +- docs/api/assets/search.js | 2 +- docs/api/classes/UltraViewer.Box3.html | 4 +- docs/api/classes/UltraViewer.ColorHandle.html | 22 ++-- docs/api/classes/UltraViewer.RGB.html | 4 +- docs/api/classes/UltraViewer.RGBA.html | 4 +- docs/api/classes/UltraViewer.RGBA32.html | 12 +-- docs/api/classes/UltraViewer.Segment.html | 4 +- docs/api/classes/UltraViewer.Vector2.html | 4 +- docs/api/classes/UltraViewer.Vector3.html | 4 +- docs/api/classes/UltraViewer.Viewer.html | 34 +++--- docs/api/classes/UltraViewer.Vim.html | 28 ++--- ...UltraViewer.utils.ControllablePromise.html | 4 +- .../UltraViewer.utils.ResolvedPromise.html | 4 +- docs/api/classes/WebglReact.LoadRequest.html | 4 +- .../api/classes/WebglViewer.AxesSettings.html | 4 +- .../WebglViewer.DefaultInputScheme.html | 10 +- docs/api/classes/WebglViewer.G3dSubset.html | 42 ++++---- .../WebglViewer.Geometry.MergeBuffer.html | 4 +- .../WebglViewer.Geometry.MergeInfo.html | 4 +- .../WebglViewer.Geometry.MergeResult.html | 4 +- .../classes/WebglViewer.HitTestResult.html | 4 +- docs/api/classes/WebglViewer.InputAction.html | 10 +- .../classes/WebglViewer.InsertableMesh.html | 20 ++-- docs/api/classes/WebglViewer.Object3D.html | 34 +++--- docs/api/classes/WebglViewer.Scene.html | 24 ++--- docs/api/classes/WebglViewer.Viewer.html | 38 +++---- .../classes/WebglViewer.ViewerMaterials.html | 58 +++++----- docs/api/classes/WebglViewer.Vim.html | 52 ++++----- docs/api/classes/WebglViewer.VimRequest.html | 6 +- docs/api/classes/WebglViewer.Vimx.html | 4 +- docs/api/functions/ErrorStyle.bold.html | 2 +- docs/api/functions/ErrorStyle.bullet.html | 2 +- docs/api/functions/ErrorStyle.detailText.html | 2 +- docs/api/functions/ErrorStyle.dotList.html | 2 +- docs/api/functions/ErrorStyle.footer.html | 2 +- docs/api/functions/ErrorStyle.link.html | 2 +- docs/api/functions/ErrorStyle.mainText.html | 2 +- docs/api/functions/ErrorStyle.numList.html | 2 +- docs/api/functions/ErrorStyle.subTitle.html | 2 +- .../functions/Errors.fileOpeningError.html | 2 +- .../Errors.serverCompatibilityError.html | 2 +- .../Errors.serverConnectionError.html | 2 +- .../Errors.serverFileDownloadingError.html | 2 +- .../Errors.serverFileLoadingError.html | 2 +- .../functions/Errors.serverStreamError.html | 2 +- .../functions/UltraReact.UltraComponent.html | 2 +- .../UltraReact.createUltraComponent.html | 2 +- docs/api/functions/UltraViewer.clamp.html | 2 +- docs/api/functions/UltraViewer.remap.html | 2 +- .../WebglReact.BimInfo.useBimInfo.html | 2 +- .../functions/WebglReact.VimComponent.html | 2 +- .../WebglReact.createWebglComponent.html | 2 +- .../WebglReact.getLocalSettings.html | 2 +- ...WebglReact.viw-webgl-react.ControlBar.html | 2 +- ...lReact.viw-webgl-react.VimContextMenu.html | 2 +- ...ct.viw-webgl-react.VimContextMenuMemo.html | 2 +- ...React.viw-webgl-react.buttonBlueStyle.html | 2 +- ...ct.viw-webgl-react.buttonDefaultStyle.html | 2 +- ...React.viw-webgl-react.showContextMenu.html | 2 +- ...wer.Geometry.createGeometryFromArrays.html | 2 +- ....Geometry.createGeometryFromInstances.html | 2 +- ...iewer.Geometry.createGeometryFromMesh.html | 2 +- ...ebglViewer.Geometry.getInstanceMatrix.html | 2 +- ...glViewer.Geometry.mergeInstanceMeshes.html | 2 +- ...ebglViewer.Geometry.mergeUniqueMeshes.html | 2 +- .../WebglViewer.Transparency.isValid.html | 2 +- ...ebglViewer.Transparency.requiresAlpha.html | 2 +- .../functions/WebglViewer.createBoxes.html | 2 +- .../WebglViewer.createWireframe.html | 2 +- .../WebglViewer.getFullSettings.html | 2 +- .../WebglViewer.getViewerSettings.html | 2 +- .../WebglViewer.getViewerSettingsFromUrl.html | 2 +- docs/api/functions/WebglViewer.open.html | 2 +- docs/api/functions/WebglViewer.request.html | 2 +- docs/api/functions/createContainer.html | 2 +- docs/api/functions/icons.arrowLeft.html | 2 +- docs/api/functions/icons.camera.html | 2 +- docs/api/functions/icons.checkmark.html | 2 +- docs/api/functions/icons.close.html | 2 +- docs/api/functions/icons.collapse.html | 2 +- docs/api/functions/icons.frameRect.html | 2 +- docs/api/functions/icons.frameSelection.html | 2 +- docs/api/functions/icons.fullArrowLeft.html | 2 +- docs/api/functions/icons.fullsScreen.html | 2 +- docs/api/functions/icons.ghost.html | 2 +- docs/api/functions/icons.ghostDead.html | 2 +- docs/api/functions/icons.help.html | 2 +- docs/api/functions/icons.hidden.html | 2 +- docs/api/functions/icons.home.html | 2 +- docs/api/functions/icons.look.html | 2 +- docs/api/functions/icons.measure.html | 2 +- docs/api/functions/icons.minimize.html | 2 +- docs/api/functions/icons.more.html | 2 +- docs/api/functions/icons.orbit.html | 2 +- docs/api/functions/icons.orthographic.html | 2 +- docs/api/functions/icons.pan.html | 2 +- docs/api/functions/icons.perspective.html | 2 +- docs/api/functions/icons.sectionBox.html | 2 +- docs/api/functions/icons.sectionBoxClip.html | 2 +- .../api/functions/icons.sectionBoxIgnore.html | 2 +- docs/api/functions/icons.sectionBoxReset.html | 2 +- .../api/functions/icons.sectionBoxShrink.html | 2 +- docs/api/functions/icons.settings.html | 2 +- docs/api/functions/icons.toggleIsolation.html | 2 +- docs/api/functions/icons.trash.html | 2 +- docs/api/functions/icons.treeView.html | 2 +- docs/api/functions/icons.undo.html | 2 +- docs/api/functions/icons.visible.html | 2 +- docs/api/functions/icons.zoom.html | 2 +- .../interfaces/UltraViewer.ILoadRequest.html | 4 +- .../UltraViewer.utils.IPromise.html | 4 +- docs/api/interfaces/WebglReact.Settings.html | 4 +- ...ct.viw-webgl-react.IContextMenuButton.html | 4 +- ...t.viw-webgl-react.IContextMenuDivider.html | 4 +- .../api/interfaces/WebglViewer.IRenderer.html | 4 +- .../interfaces/WebglViewer.InputScheme.html | 8 +- docs/api/types/Container.html | 2 +- docs/api/types/MessageBoxProps.html | 2 +- .../types/UltraReact.UltraComponentRef.html | 2 +- docs/api/types/UltraViewer.ClientState.html | 2 +- .../types/UltraViewer.ConnectionSettings.html | 2 +- .../UltraViewer.VimRequestErrorType.html | 2 +- docs/api/types/UltraViewer.VimSource.html | 2 +- .../WebglReact.BimInfo.BimInfoPanelRef.html | 2 +- docs/api/types/WebglReact.BimInfo.Data.html | 2 +- .../WebglReact.BimInfo.DataCustomization.html | 2 +- .../types/WebglReact.BimInfo.DataRender.html | 2 +- docs/api/types/WebglReact.BimInfo.Entry.html | 2 +- docs/api/types/WebglReact.BimInfo.Group.html | 2 +- .../api/types/WebglReact.BimInfo.Section.html | 2 +- .../api/types/WebglReact.PartialSettings.html | 2 +- .../WebglReact.public-api.ContextMenuRef.html | 2 +- .../WebglReact.public-api.ControlBarRef.html | 2 +- .../types/WebglReact.public-api.HelpRef.html | 4 +- .../WebglReact.public-api.SettingsRef.html | 2 +- ...WebglReact.public-api.VimComponentRef.html | 2 +- ...-webgl-react.ContextMenuCustomization.html | 2 +- ...ct.viw-webgl-react.ContextMenuElement.html | 2 +- ...w-webgl-react.ControlBarCustomization.html | 2 +- docs/api/types/WebglViewer.FileType.html | 2 +- docs/api/types/WebglViewer.MergeArgs.html | 2 +- docs/api/types/WebglViewer.ModelMaterial.html | 2 +- .../WebglViewer.PartialViewerSettings.html | 2 +- docs/api/types/WebglViewer.PointerMode.html | 2 +- .../types/WebglViewer.RecursivePartial.html | 2 +- docs/api/types/WebglViewer.RequestSource.html | 2 +- .../types/WebglViewer.SelectableObject.html | 2 +- .../types/WebglViewer.TextureEncoding.html | 2 +- .../types/WebglViewer.Transparency.Mode.html | 2 +- .../api/types/WebglViewer.ViewerSettings.html | 2 +- .../types/WebglViewer.VimPartialSettings.html | 2 +- docs/api/types/WebglViewer.VimSettings.html | 2 +- docs/api/types/WebglViewer.VimSource.html | 2 +- docs/api/types/icons.IconOptions.html | 2 +- .../api/variables/ErrorStyle.vcColorLink.html | 2 +- .../variables/ErrorStyle.vcColorPrimary.html | 2 +- .../ErrorStyle.vcColorSecondary.html | 2 +- docs/api/variables/ErrorStyle.vcLabel.html | 2 +- docs/api/variables/ErrorStyle.vcLink.html | 2 +- docs/api/variables/ErrorStyle.vcRoboto.html | 2 +- .../variables/UltraViewer.INVALID_HANDLE.html | 2 +- docs/api/variables/Urls.support.html | 2 +- docs/api/variables/Urls.supportControls.html | 2 +- .../variables/WebglReact.defaultSettings.html | 2 +- ...viw-webgl-react.contextMenuElementIds.html | 2 +- ...WebglReact.viw-webgl-react.elementIds.html | 2 +- ...eact.viw-webgl-react.sectionBlueStyle.html | 2 +- ...t.viw-webgl-react.sectionDefaultStyle.html | 2 +- docs/api/variables/WebglViewer.KEYS.html | 2 +- .../variables/WebglViewer.defaultConfig.html | 2 +- .../WebglViewer.defaultViewerSettings.html | 2 +- .../{index-DmikZzEc.js => index-CEyQgIDL.js} | 100 +++++++++--------- docs/assets/index-CEyQgIDL.js.map | 1 + docs/assets/index-DmikZzEc.js.map | 1 - docs/assets/index.css | 2 +- docs/index.html | 2 +- 179 files changed, 433 insertions(+), 433 deletions(-) rename docs/assets/{index-DmikZzEc.js => index-CEyQgIDL.js} (91%) create mode 100644 docs/assets/index-CEyQgIDL.js.map delete mode 100644 docs/assets/index-DmikZzEc.js.map diff --git a/docs/404.html b/docs/404.html index e93891e0..9f6e6bb2 100644 --- a/docs/404.html +++ b/docs/404.html @@ -16,7 +16,7 @@ flex-direction: column; } - + diff --git a/docs/api/assets/hierarchy.js b/docs/api/assets/hierarchy.js index a3503cc5..cd3a8b69 100644 --- a/docs/api/assets/hierarchy.js +++ b/docs/api/assets/hierarchy.js @@ -1 +1 @@ -window.hierarchyData = "H4sIAAAAAAAACp2QQU/DMAyF/4vPWadWYbS9sgs3BAIOaIesdddoboISFw5T//tSYCjqigZcIsfW8/v8DuCsZQ/lixRFer0R4LAhrFhbE7oHkONjVIdQwq157fmhajH8BOy1qaHMrlYCekdhrA2ja1SFfvmM2x09aXxHl0SqpOWOgrQi5cN2YF8vxjWLb+k4bDXVDk1gSuVmEJDGDGtsVE88h5Jm+Qnlw2DCca78EeezEaxDJPH9d8522l86/pHYqS/TnjX55CT86/1FthKFzMcQQhmR3FjDzhKpLeEUaiaGc6KZBb9IQ+YRwz16S29Y/8t/Ir7kPQxHedh8PqkCAAA=" \ No newline at end of file +window.hierarchyData = "H4sIAAAAAAAACp2QMU/DMBCF/8vNblAik8ZeYWFDIGCoOrjJpbG42Mi+wFDlv6MARVYaVGC54U7v3vfeAYL3HEFvpFD5eisgYEtYs/Uugj6AnIYzPYKGG/cy8H3dYY8g4Nm6BnRxWQoYAoEG6xhDa2qMF0+429OjxTcMWaLKOu4JBNRkYgQNHJvV9Gb1LZ2OnaUmoAO9yeV2FJCnDNfYmoF4CSUvqiPKh8GM41T5I87nYhSg8nWa/zb43sZz4R+Ig/kyHdhSzI7Cv+ZXRSmUrKYSVFEmJFfecfBEZkc4h1qo4ZRo4cEv2pBVwnCH0dMrNv/yn4nPeY/jO3nYfD6pAgAA" \ No newline at end of file diff --git a/docs/api/assets/navigation.js b/docs/api/assets/navigation.js index 9f435f55..c3371b11 100644 --- a/docs/api/assets/navigation.js +++ b/docs/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "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" \ No newline at end of file +window.navigationData = "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" \ No newline at end of file diff --git a/docs/api/assets/search.js b/docs/api/assets/search.js index 40a03270..cb09736c 100644 --- a/docs/api/assets/search.js +++ b/docs/api/assets/search.js @@ -1 +1 @@ -window.searchData = "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"; \ No newline at end of file +window.searchData = "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"; \ No newline at end of file diff --git a/docs/api/classes/UltraViewer.Box3.html b/docs/api/classes/UltraViewer.Box3.html index 43e5d140..3f20a62b 100644 --- a/docs/api/classes/UltraViewer.Box3.html +++ b/docs/api/classes/UltraViewer.Box3.html @@ -1,4 +1,4 @@ -Box3 | vim-web

Constructors

constructor +Box3 | vim-web

Constructors

Properties

Methods

containsPoint @@ -12,4 +12,4 @@ toArray union fromArray -

Constructors

Properties

max: Vector3
min: Vector3

Methods

+

Constructors

Properties

max: Vector3
min: Vector3

Methods

diff --git a/docs/api/classes/UltraViewer.ColorHandle.html b/docs/api/classes/UltraViewer.ColorHandle.html index a8ca6778..82ab5d72 100644 --- a/docs/api/classes/UltraViewer.ColorHandle.html +++ b/docs/api/classes/UltraViewer.ColorHandle.html @@ -1,6 +1,6 @@ ColorHandle | vim-web

Represents a handle to a color in the color management system. This class provides access to color components and manages the lifecycle of color instances.

-

Constructors

Constructors

Properties

Accessors

a @@ -14,21 +14,21 @@

Parameters

  • color: RGBA32

    The RGBA color value.

  • serverId: number

    The unique identifier assigned by the server.

  • manager: ColorManager

    The color manager instance that manages this color handle.

    -

Returns ColorHandle

Properties

color: RGBA32

The RGBA color value

-
id: number

Unique identifier for the color instance

-

Accessors

  • get a(): number
  • Gets the alpha (opacity) component of the color.

    +

Returns ColorHandle

Properties

color: RGBA32

The RGBA color value

+
id: number

Unique identifier for the color instance

+

Accessors

Methods

Methods

  • Disposes of the color handle and releases associated resources. Once disposed, the color handle cannot be used anymore. Multiple calls to dispose are safely ignored.

    -

    Returns void

+

Returns void

diff --git a/docs/api/classes/UltraViewer.RGB.html b/docs/api/classes/UltraViewer.RGB.html index d9cd60ee..0c1f9766 100644 --- a/docs/api/classes/UltraViewer.RGB.html +++ b/docs/api/classes/UltraViewer.RGB.html @@ -1,5 +1,5 @@ -RGB | vim-web

Constructors

constructor +RGB | vim-web

Constructors

Properties

b g r -

Constructors

Properties

b: number
g: number
r: number
+

Constructors

Properties

b: number
g: number
r: number
diff --git a/docs/api/classes/UltraViewer.RGBA.html b/docs/api/classes/UltraViewer.RGBA.html index 10f7fba5..e2f65ff4 100644 --- a/docs/api/classes/UltraViewer.RGBA.html +++ b/docs/api/classes/UltraViewer.RGBA.html @@ -1,4 +1,4 @@ -RGBA | vim-web

Constructors

constructor +RGBA | vim-web

Constructors

Properties

a b g @@ -6,4 +6,4 @@

Methods

Constructors

Properties

a: number
b: number
g: number
r: number

Methods

+

Constructors

Properties

a: number
b: number
g: number
r: number

Methods

diff --git a/docs/api/classes/UltraViewer.RGBA32.html b/docs/api/classes/UltraViewer.RGBA32.html index 33cc020a..66bf2026 100644 --- a/docs/api/classes/UltraViewer.RGBA32.html +++ b/docs/api/classes/UltraViewer.RGBA32.html @@ -1,4 +1,4 @@ -RGBA32 | vim-web

Constructors

constructor +RGBA32 | vim-web

Constructors

Properties

Accessors

a b @@ -7,8 +7,8 @@

Methods

Constructors

Properties

hex: number

Accessors

Methods

+

Constructors

Properties

hex: number

Accessors

Methods

diff --git a/docs/api/classes/UltraViewer.Segment.html b/docs/api/classes/UltraViewer.Segment.html index cbc0ab7b..ebebeab1 100644 --- a/docs/api/classes/UltraViewer.Segment.html +++ b/docs/api/classes/UltraViewer.Segment.html @@ -1,8 +1,8 @@ -Segment | vim-web

Constructors

constructor +Segment | vim-web

Constructors

Properties

Methods

Constructors

Properties

origin: Vector3
target: Vector3

Methods

+

Constructors

Properties

origin: Vector3
target: Vector3

Methods

diff --git a/docs/api/classes/UltraViewer.Vector2.html b/docs/api/classes/UltraViewer.Vector2.html index d458abcc..46166d8f 100644 --- a/docs/api/classes/UltraViewer.Vector2.html +++ b/docs/api/classes/UltraViewer.Vector2.html @@ -1,4 +1,4 @@ -Vector2 | vim-web

Constructors

constructor +Vector2 | vim-web

Constructors

Properties

x y

Methods

add @@ -14,4 +14,4 @@ set sub toArray -

Constructors

Properties

x: number
y: number

Methods

+

Constructors

Properties

x: number
y: number

Methods

diff --git a/docs/api/classes/UltraViewer.Vector3.html b/docs/api/classes/UltraViewer.Vector3.html index 767bc409..f03aa5d1 100644 --- a/docs/api/classes/UltraViewer.Vector3.html +++ b/docs/api/classes/UltraViewer.Vector3.html @@ -1,4 +1,4 @@ -Vector3 | vim-web

Constructors

constructor +Vector3 | vim-web

Constructors

Properties

x y z @@ -12,4 +12,4 @@ set sub toArray -

Constructors

Properties

x: number
y: number
z: number

Methods

+

Constructors

Properties

x: number
y: number
z: number

Methods

diff --git a/docs/api/classes/UltraViewer.Viewer.html b/docs/api/classes/UltraViewer.Viewer.html index d0ab82a8..6d48a827 100644 --- a/docs/api/classes/UltraViewer.Viewer.html +++ b/docs/api/classes/UltraViewer.Viewer.html @@ -1,6 +1,6 @@ Viewer | vim-web

The main Viewer class responsible for managing VIM files, handling connections, and coordinating various components like the camera, decoder, and inputs.

-

Constructors

Constructors

Properties

Accessors

camera @@ -22,29 +22,29 @@

Constructors

Properties

colors: ColorManager

API to create, manage, and destroy colors.

-
rpc: RpcSafeClient

The RPC client for making remote procedure calls.

-

Accessors

  • get onStateChanged(): ISimpleEvent<ClientState>
  • Event that is triggered when the viewer's connection status changes.

    +

Returns UltraViewer.Viewer

Properties

colors: ColorManager

API to create, manage, and destroy colors.

+
rpc: RpcSafeClient

The RPC client for making remote procedure calls.

+

Accessors

Methods

Methods

  • Creates a Viewer instance with a new canvas element appended to the given parent element.

    +

Returns void

  • Creates a Viewer instance with a new canvas element appended to the given parent element.

    Parameters

    • parent: HTMLElement

      The parent HTML element to which the canvas will be appended.

    • Optionallogger: ILogger

      Optional logger for logging messages.

    Returns UltraViewer.Viewer

    A new instance of the Viewer class.

    -
+
diff --git a/docs/api/classes/UltraViewer.Vim.html b/docs/api/classes/UltraViewer.Vim.html index 343c2337..189b5a53 100644 --- a/docs/api/classes/UltraViewer.Vim.html +++ b/docs/api/classes/UltraViewer.Vim.html @@ -1,4 +1,4 @@ -Vim | vim-web

Constructors

constructor +Vim | vim-web

Constructors

Properties

Accessors

connected handle @@ -18,33 +18,33 @@
  • color: ColorManager

    The color manager for handling colors.

  • source: UltraViewer.VimSource

    The source URL or file path of the Vim.

  • logger: ILogger

    The logger for logging messages.

    -
  • Returns UltraViewer.Vim

    Properties

    Accessors

    • get connected(): boolean
    • Indicates whether the Vim is connected.

      +

    Returns UltraViewer.Vim

    Properties

    Accessors

    Methods

    Methods

    • Applies an array of colors to the given nodes.

      +

    Returns void

    Returns void

    Returns void

    Returns void

    Returns void

    Returns void

    +

    Returns void

    diff --git a/docs/api/classes/UltraViewer.utils.ControllablePromise.html b/docs/api/classes/UltraViewer.utils.ControllablePromise.html index 10475d33..e3d771ec 100644 --- a/docs/api/classes/UltraViewer.utils.ControllablePromise.html +++ b/docs/api/classes/UltraViewer.utils.ControllablePromise.html @@ -1,5 +1,5 @@ -ControllablePromise | vim-web

    Class ControllablePromise<T>

    Type Parameters

    • T

    Implements

    Constructors

    constructor +ControllablePromise | vim-web

    Class ControllablePromise<T>

    Type Parameters

    • T

    Implements

    Constructors

    Accessors

    Methods

    Constructors

    Accessors

    Methods

    +

    Constructors

    Accessors

    Methods

    diff --git a/docs/api/classes/UltraViewer.utils.ResolvedPromise.html b/docs/api/classes/UltraViewer.utils.ResolvedPromise.html index a3d2d524..a70ff7cd 100644 --- a/docs/api/classes/UltraViewer.utils.ResolvedPromise.html +++ b/docs/api/classes/UltraViewer.utils.ResolvedPromise.html @@ -1,5 +1,5 @@ -ResolvedPromise | vim-web

    Type Parameters

    • T

    Implements

    Constructors

    constructor +ResolvedPromise | vim-web

    Type Parameters

    • T

    Implements

    Constructors

    Accessors

    Methods

    Constructors

    Accessors

    Methods

    +

    Constructors

    Accessors

    Methods

    diff --git a/docs/api/classes/WebglReact.LoadRequest.html b/docs/api/classes/WebglReact.LoadRequest.html index d5feb219..6ccd79c3 100644 --- a/docs/api/classes/WebglReact.LoadRequest.html +++ b/docs/api/classes/WebglReact.LoadRequest.html @@ -1,7 +1,7 @@ LoadRequest | vim-web

    Class to handle loading a request.

    -

    Constructors

    Constructors

    Properties

    Methods

    Constructors

    Properties

    source: any

    Methods

    +

    Constructors

    Properties

    source: any

    Methods

    diff --git a/docs/api/classes/WebglViewer.AxesSettings.html b/docs/api/classes/WebglViewer.AxesSettings.html index be9d19ba..82929b7e 100644 --- a/docs/api/classes/WebglViewer.AxesSettings.html +++ b/docs/api/classes/WebglViewer.AxesSettings.html @@ -1,4 +1,4 @@ -AxesSettings | vim-web

    Constructors

    constructor +AxesSettings | vim-web

    Constructors

    Properties

    bubbleSizePrimary: number = 8
    bubbleSizeSecondary: number = 6
    className: string = 'gizmo-axis-canvas'
    colorX: string = '#f73c3c'
    colorXSub: string = '#942424'
    colorY: string = '#6ccb26'
    colorYSub: string = '#417a17'
    colorZ: string = '#178cf0'
    colorZSub: string = '#0e5490'
    fontColor: string = '#222222'
    fontFamily: string = 'arial'
    fontPxSize: number = 12
    fontWeight: string = 'bold'
    lineWidth: number = 2
    padding: number = 4
    size: number = 84
    +

    Constructors

    Properties

    bubbleSizePrimary: number = 8
    bubbleSizeSecondary: number = 6
    className: string = 'gizmo-axis-canvas'
    colorX: string = '#f73c3c'
    colorXSub: string = '#942424'
    colorY: string = '#6ccb26'
    colorYSub: string = '#417a17'
    colorZ: string = '#178cf0'
    colorZSub: string = '#0e5490'
    fontColor: string = '#222222'
    fontFamily: string = 'arial'
    fontPxSize: number = 12
    fontWeight: string = 'bold'
    lineWidth: number = 2
    padding: number = 4
    size: number = 84
    diff --git a/docs/api/classes/WebglViewer.DefaultInputScheme.html b/docs/api/classes/WebglViewer.DefaultInputScheme.html index 4d1ccae8..d5b20ab0 100644 --- a/docs/api/classes/WebglViewer.DefaultInputScheme.html +++ b/docs/api/classes/WebglViewer.DefaultInputScheme.html @@ -1,10 +1,10 @@ DefaultInputScheme | vim-web

    Class DefaultInputScheme

    Vim viewer default input scheme

    -

    Implements

    Constructors

    Implements

    Constructors

    Methods

    • Called once when mouse and camera have been idle for some time with the position where it stopped. +

    Constructors

    Methods

    +

    Parameters

    Returns void

    diff --git a/docs/api/classes/WebglViewer.G3dSubset.html b/docs/api/classes/WebglViewer.G3dSubset.html index c812ad8c..d58e903f 100644 --- a/docs/api/classes/WebglViewer.G3dSubset.html +++ b/docs/api/classes/WebglViewer.G3dSubset.html @@ -1,6 +1,6 @@ G3dSubset | vim-web

    Represents a subset of a complete scene definition. Allows for further filtering or to get offsets needed to build the scene.

    -

    Constructors

    Constructors

    Methods

    chunks except filter @@ -24,39 +24,39 @@ reverse

    Constructors

    Methods

    • Returns a new subset with instances not included in given filter.

      +

    Returns G3dSubset

    Methods

    • Returns a new subset with instances matching given filter.

      +

    Returns G3dSubset

    • /**

      +

    Returns G3dSubset

    Returns number

    Returns number

    Returns number

    Returns number[]

    Returns number

    +

    Returns number

    diff --git a/docs/api/classes/WebglViewer.Geometry.MergeBuffer.html b/docs/api/classes/WebglViewer.Geometry.MergeBuffer.html index 29e6ae07..36e36933 100644 --- a/docs/api/classes/WebglViewer.Geometry.MergeBuffer.html +++ b/docs/api/classes/WebglViewer.Geometry.MergeBuffer.html @@ -1,5 +1,5 @@ MergeBuffer | vim-web

    Allocates and holds all arrays needed to merge meshes.

    -

    Constructors

    Constructors

    Properties

    Methods

    Constructors

    Properties

    boxes: Box3[]
    colors: Float32Array<ArrayBufferLike>
    colorSize: number
    groups: number[]
    indices: Uint32Array<ArrayBufferLike>
    vertices: Float32Array<ArrayBufferLike>

    Methods

    +

    Constructors

    Properties

    boxes: Box3[]
    colors: Float32Array<ArrayBufferLike>
    colorSize: number
    groups: number[]
    indices: Uint32Array<ArrayBufferLike>
    vertices: Float32Array<ArrayBufferLike>

    Methods

    diff --git a/docs/api/classes/WebglViewer.Geometry.MergeInfo.html b/docs/api/classes/WebglViewer.Geometry.MergeInfo.html index 49a43667..dbd1fa3f 100644 --- a/docs/api/classes/WebglViewer.Geometry.MergeInfo.html +++ b/docs/api/classes/WebglViewer.Geometry.MergeInfo.html @@ -1,9 +1,9 @@ MergeInfo | vim-web

    Holds the info that needs to be precomputed for a merge.

    -

    Constructors

    Constructors

    • Parameters

      • section: MeshSection
      • transparent: boolean
      • instance: number[]
      • indexCount: number
      • vertexCount: number

      Returns MergeInfo

    Properties

    indexCount: number
    instances: number[]
    section: MeshSection
    transparent: boolean
    vertexCount: number

    Methods

    +

    Constructors

    • Parameters

      • section: MeshSection
      • transparent: boolean
      • instance: number[]
      • indexCount: number
      • vertexCount: number

      Returns MergeInfo

    Properties

    indexCount: number
    instances: number[]
    section: MeshSection
    transparent: boolean
    vertexCount: number

    Methods

    diff --git a/docs/api/classes/WebglViewer.Geometry.MergeResult.html b/docs/api/classes/WebglViewer.Geometry.MergeResult.html index 2ca4c62f..271701bd 100644 --- a/docs/api/classes/WebglViewer.Geometry.MergeResult.html +++ b/docs/api/classes/WebglViewer.Geometry.MergeResult.html @@ -1,7 +1,7 @@ MergeResult | vim-web

    Holds the result from a merge operation.

    -

    Constructors

    Constructors

    Properties

    Constructors

    • Parameters

      • geometry: BufferGeometry<NormalBufferAttributes>
      • instance: number[]
      • submeshes: number[]
      • boxes: Box3[]

      Returns MergeResult

    Properties

    boxes: Box3[]
    geometry: BufferGeometry<NormalBufferAttributes>
    instances: number[]
    submeshes: number[]
    +

    Constructors

    • Parameters

      • geometry: BufferGeometry<NormalBufferAttributes>
      • instance: number[]
      • submeshes: number[]
      • boxes: Box3[]

      Returns MergeResult

    Properties

    boxes: Box3[]
    geometry: BufferGeometry<NormalBufferAttributes>
    instances: number[]
    submeshes: number[]
    diff --git a/docs/api/classes/WebglViewer.HitTestResult.html b/docs/api/classes/WebglViewer.HitTestResult.html index 5feea843..891c9410 100644 --- a/docs/api/classes/WebglViewer.HitTestResult.html +++ b/docs/api/classes/WebglViewer.HitTestResult.html @@ -1,5 +1,5 @@ HitTestResult | vim-web

    Highlevel aggregate of information about a raycast result

    -

    Constructors

    Constructors

    Properties

    Constructors

    Properties

    firstHit: Intersection<Object3D<Object3DEventMap>>
    intersections: ThreeIntersectionList
    object: Object3D | GizmoMarker

    Accessors

    +

    Constructors

    Properties

    firstHit: Intersection<Object3D<Object3DEventMap>>
    intersections: ThreeIntersectionList
    object: Object3D | GizmoMarker

    Accessors

    diff --git a/docs/api/classes/WebglViewer.InputAction.html b/docs/api/classes/WebglViewer.InputAction.html index 83c55237..44e854c2 100644 --- a/docs/api/classes/WebglViewer.InputAction.html +++ b/docs/api/classes/WebglViewer.InputAction.html @@ -1,12 +1,12 @@ InputAction | vim-web

    Represents an input action with its position and modifiers.

    -

    Constructors

    Constructors

    Properties

    Accessors

    Constructors

    Properties

    modifier: ActionModifier
    position: Vector2
    type: ActionType

    Accessors

    +

    Constructors

    Properties

    modifier: ActionModifier
    position: Vector2
    type: ActionType

    Accessors

    diff --git a/docs/api/classes/WebglViewer.InsertableMesh.html b/docs/api/classes/WebglViewer.InsertableMesh.html index ae9500eb..c1a9da31 100644 --- a/docs/api/classes/WebglViewer.InsertableMesh.html +++ b/docs/api/classes/WebglViewer.InsertableMesh.html @@ -1,4 +1,4 @@ -InsertableMesh | vim-web

    Constructors

    constructor +InsertableMesh | vim-web

    Constructors

    Properties

    Constructors

    Properties

    geometry: InsertableGeometry
    ignoreSceneMaterial: boolean

    Set to true to ignore SetMaterial calls.

    -
    mesh: Mesh<
        BufferGeometry<NormalBufferAttributes>,
        Material | Material[],
        Object3DEventMap,
    >
    offsets: G3dMeshOffsets
    transparent: boolean

    Whether the mesh is transparent or not.

    -

    Accessors

    Methods

    +

    Constructors

    Properties

    geometry: InsertableGeometry
    ignoreSceneMaterial: boolean

    Set to true to ignore SetMaterial calls.

    +
    mesh: Mesh<
        BufferGeometry<NormalBufferAttributes>,
        Material | Material[],
        Object3DEventMap,
    >
    offsets: G3dMeshOffsets
    transparent: boolean

    Whether the mesh is transparent or not.

    +

    Accessors

    Methods

    diff --git a/docs/api/classes/WebglViewer.Object3D.html b/docs/api/classes/WebglViewer.Object3D.html index 09899d78..a4560f42 100644 --- a/docs/api/classes/WebglViewer.Object3D.html +++ b/docs/api/classes/WebglViewer.Object3D.html @@ -1,5 +1,5 @@ Object3D | vim-web

    High level api to interact with the loaded vim geometry and data.

    -

    Constructors

    Constructors

    Properties

    element instances type @@ -20,30 +20,30 @@
  • element: number

    The element index.

  • instances: number[]

    An optional array of instance numbers.

  • meshes: Submesh[]

    An optional array of submeshes.

    -
  • Returns Object3D

    Properties

    element: number

    The bim element index associated with this object.

    -
    instances: number[]

    The geometry instances associated with this object.

    -
    type: "Object3D" = 'Object3D'

    Indicate whether this object is architectural or markup.

    -

    The vim object from which this object came from.

    -

    Accessors

    • get color(): Color
    • Gets or sets the display color of this object.

      +

    Returns Object3D

    Properties

    element: number

    The bim element index associated with this object.

    +
    instances: number[]

    The geometry instances associated with this object.

    +
    type: "Object3D" = 'Object3D'

    Indicate whether this object is architectural or markup.

    +

    The vim object from which this object came from.

    +

    Accessors

    Methods

    Methods

    • Internal method used to replace this object's meshes and apply color as needed.

      Parameters

      • mesh: Submesh

        The new mesh to be added.

      Returns void

      Throws an error if the provided mesh instance does not match any existing instances.

      -
    • Asynchronously retrieves Bim data for the element associated with this object.

      +
    +
    diff --git a/docs/api/classes/WebglViewer.Scene.html b/docs/api/classes/WebglViewer.Scene.html index 1f6a68c5..eec5c82e 100644 --- a/docs/api/classes/WebglViewer.Scene.html +++ b/docs/api/classes/WebglViewer.Scene.html @@ -1,6 +1,6 @@ Scene | vim-web

    Represents a scene that contains multiple meshes. It tracks the global bounding box as meshes are added and maintains a mapping between g3d instance indices and meshes.

    -

    Constructors

    Constructors

    Properties

    Accessors

    Constructors

    Properties

    insertables: InsertableMesh[] = []
    meshes: (InsertableMesh | Mesh | InstancedMesh)[] = []

    Accessors

    Methods

    • Add an instanced mesh to the Scene and recomputes fields as needed.

      +

    Constructors

    Properties

    insertables: InsertableMesh[] = []
    meshes: (InsertableMesh | Mesh | InstancedMesh)[] = []

    Accessors

    Methods

    • Returns the bounding box of the average center of all meshes. +

    Returns Scene

    • Returns the THREE.Mesh in which this instance is represented along with index For merged mesh, index refers to submesh index For instanced mesh, index refers to instance index.

      -

      Parameters

      • instance: number

      Returns Submesh[]

    +

    Parameters

    Returns Submesh[]

    diff --git a/docs/api/classes/WebglViewer.Viewer.html b/docs/api/classes/WebglViewer.Viewer.html index 3b8d79ce..ba3287e0 100644 --- a/docs/api/classes/WebglViewer.Viewer.html +++ b/docs/api/classes/WebglViewer.Viewer.html @@ -1,5 +1,5 @@ Viewer | vim-web

    Viewer and loader for vim files.

    -

    Constructors

    Constructors

    Properties

    Constructors

    Properties

    environment: Environment

    The environment of the viewer, including the ground plane and lights.

    -
    gizmos: Gizmos

    The collection of gizmos available for visualization and interaction within the viewer.

    -
    inputs: Input

    The interface for manipulating default viewer inputs.

    -
    materials: ViewerMaterials

    The materials used by the viewer to render the vims.

    -
    raycaster: Raycaster

    The interface for performing raycasting into the scene to find objects.

    -
    renderer: Renderer

    The renderer used by the viewer for rendering scenes.

    -
    selection: Selection

    The interface for managing viewer selection.

    -
    settings: ViewerSettings

    The settings configuration used by the viewer.

    -
    viewport: Viewport

    The interface for managing the HTML canvas viewport.

    -

    Accessors

    • get vims(): WebglViewer.Vim[]
    • Retrieves an array containing all currently loaded Vim objects.

      +

    Constructors

    Properties

    environment: Environment

    The environment of the viewer, including the ground plane and lights.

    +
    gizmos: Gizmos

    The collection of gizmos available for visualization and interaction within the viewer.

    +
    inputs: Input

    The interface for manipulating default viewer inputs.

    +
    materials: ViewerMaterials

    The materials used by the viewer to render the vims.

    +
    raycaster: Raycaster

    The interface for performing raycasting into the scene to find objects.

    +
    renderer: Renderer

    The renderer used by the viewer for rendering scenes.

    +
    selection: Selection

    The interface for managing viewer selection.

    +
    settings: ViewerSettings

    The settings configuration used by the viewer.

    +
    viewport: Viewport

    The interface for managing the HTML canvas viewport.

    +

    Accessors

    Methods

    Methods

    • Adds a Vim object to the renderer, triggering the appropriate actions and dispatching events upon successful addition.

      Parameters

      Returns void

      If the Vim object is already added or if loading the Vim would exceed maximum geometry memory.

      -
    • Unloads the given Vim object from the viewer, updating the scene and triggering necessary actions.

      +
    +
    diff --git a/docs/api/classes/WebglViewer.ViewerMaterials.html b/docs/api/classes/WebglViewer.ViewerMaterials.html index 66980039..5992cc61 100644 --- a/docs/api/classes/WebglViewer.ViewerMaterials.html +++ b/docs/api/classes/WebglViewer.ViewerMaterials.html @@ -1,5 +1,5 @@ ViewerMaterials | vim-web

    Defines the materials to be used by the vim loader and allows for material injection.

    -

    Constructors

    Constructors

    Properties

    Constructors

    • Parameters

      • Optionalopaque: StandardMaterial
      • Optionaltransparent: StandardMaterial
      • Optionalsimple: Material
      • Optionalwireframe: LineBasicMaterial
      • Optionalghost: Material
      • Optionalmask: ShaderMaterial
      • Optionaloutline: OutlineMaterial
      • Optionalmerge: MergeMaterial
      • OptionalskyBox: SkyboxMaterial

      Returns ViewerMaterials

    Properties

    ghost: Material

    Material used to show traces of hidden objects.

    -
    mask: ShaderMaterial

    Material used to filter out what is not selected for selection outline effect.

    -
    merge: MergeMaterial

    Material used to merge outline effect with scene render.

    -
    opaque: StandardMaterial

    Material used for opaque model geometry.

    -
    outline: OutlineMaterial

    Material used for selection outline effect.

    -
    simple: Material

    Material used for maximum performance.

    -
    skyBox: SkyboxMaterial

    Material used for the skybox effect.

    -
    transparent: StandardMaterial

    Material used for transparent model geometry.

    -
    wireframe: LineBasicMaterial

    Material used when creating wireframe geometry of the model.

    -
    instance: ViewerMaterials

    Accessors

    Methods

    • Updates material settings based on the provided configuration.

      +

    Constructors

    • Parameters

      • Optionalopaque: StandardMaterial
      • Optionaltransparent: StandardMaterial
      • Optionalsimple: Material
      • Optionalwireframe: LineBasicMaterial
      • Optionalghost: Material
      • Optionalmask: ShaderMaterial
      • Optionaloutline: OutlineMaterial
      • Optionalmerge: MergeMaterial
      • OptionalskyBox: SkyboxMaterial

      Returns ViewerMaterials

    Properties

    ghost: Material

    Material used to show traces of hidden objects.

    +
    mask: ShaderMaterial

    Material used to filter out what is not selected for selection outline effect.

    +
    merge: MergeMaterial

    Material used to merge outline effect with scene render.

    +
    opaque: StandardMaterial

    Material used for opaque model geometry.

    +
    outline: OutlineMaterial

    Material used for selection outline effect.

    +
    simple: Material

    Material used for maximum performance.

    +
    skyBox: SkyboxMaterial

    Material used for the skybox effect.

    +
    transparent: StandardMaterial

    Material used for transparent model geometry.

    +
    wireframe: LineBasicMaterial

    Material used when creating wireframe geometry of the model.

    +
    instance: ViewerMaterials

    Accessors

    Methods

    +

    Returns void

    diff --git a/docs/api/classes/WebglViewer.Vim.html b/docs/api/classes/WebglViewer.Vim.html index fad176d4..9e14e975 100644 --- a/docs/api/classes/WebglViewer.Vim.html +++ b/docs/api/classes/WebglViewer.Vim.html @@ -1,6 +1,6 @@ Vim | vim-web

    Represents a container for the built three.js meshes and the vim data from which they were constructed. Facilitates high-level scene manipulation by providing access to objects.

    -

    Constructors

    Constructors

    Properties

    bim format g3d @@ -35,50 +35,50 @@
  • builder: SubsetBuilder

    The subset builder for constructing subsets of the Vim object.

  • source: string

    The source of the Vim object.

  • format: VimFormat

    The format of the Vim object.

    -
  • Returns WebglViewer.Vim

    Properties

    bim: VimDocument

    The interface to access bim data related to this vim if available.

    -
    format: VimFormat

    Indicates whether the vim was opened from a vim or vimx file.

    -
    g3d: G3d

    The raw g3d geometry scene definition.

    -
    header: VimHeader

    The header for this vim.

    -
    map: ElementMapping | ElementNoMapping | ElementMapping2

    The mapping from Bim to Geometry for this vim.

    -
    scene: Scene

    Mostly Internal - The scene in which the vim geometry is added.

    -
    settings: VimSettings

    The settings used when this vim was opened.

    -
    source: string

    Indicates the url this vim came from if applicable.

    -

    Accessors

    • get isLoading(): boolean
    • Indicates whether there are subsets currently being loaded.

      +

    Returns WebglViewer.Vim

    Properties

    bim: VimDocument

    The interface to access bim data related to this vim if available.

    +
    format: VimFormat

    Indicates whether the vim was opened from a vim or vimx file.

    +
    g3d: G3d

    The raw g3d geometry scene definition.

    +
    header: VimHeader

    The header for this vim.

    +
    map: ElementMapping | ElementNoMapping | ElementMapping2

    The mapping from Bim to Geometry for this vim.

    +
    scene: Scene

    Mostly Internal - The scene in which the vim geometry is added.

    +
    settings: VimSettings

    The settings used when this vim was opened.

    +
    source: string

    Indicates the url this vim came from if applicable.

    +

    Accessors

    Methods

    Methods

    • Retrieves the Vim object associated with the given Vim element index.

      Parameters

      • element: number

        The index of the Vim element.

      Returns Object3D

      The Vim object corresponding to the element index, or undefined if not found.

      -
    • Retrieves the object associated with the specified instance number.

      Parameters

      • instance: number

        The instance number of the object.

      Returns Object3D

      The object corresponding to the instance, or undefined if not found.

      -
    • Retrieves the objects associated with the specified element ID.

      Parameters

      • id: number

        The element ID to retrieve objects for.

      Returns any

      An array of objects corresponding to the element ID, or an empty array if none are found.

      -
    • Retrieves an array containing all Vim objects strictly contained within the specified bounding box.

      Parameters

      • box: Box3

        The bounding box to search within.

      Returns Object3D[]

      An array of Vim objects strictly contained within the bounding box.

      -
    • Asynchronously loads all geometry according to the provided settings.

      Parameters

      • Optionalsettings: Partial<LoadSettings>

        Optional settings for the loading process.

        -

      Returns Promise<void>

    • Asynchronously loads geometry based on a specified filter mode and criteria.

      +

    Returns Promise<void>

    Returns Promise<void>

    +

    Returns Promise<void>

    diff --git a/docs/api/classes/WebglViewer.VimRequest.html b/docs/api/classes/WebglViewer.VimRequest.html index 36548a29..d6ff61e8 100644 --- a/docs/api/classes/WebglViewer.VimRequest.html +++ b/docs/api/classes/WebglViewer.VimRequest.html @@ -1,8 +1,8 @@ VimRequest | vim-web

    A class that represents a request to load a VIM object from a given source.

    -

    Constructors

    Constructors

    Methods

    Constructors

    Methods

    • Async generator that yields progress updates.

      +

    Constructors

    Methods

    +
    diff --git a/docs/api/classes/WebglViewer.Vimx.html b/docs/api/classes/WebglViewer.Vimx.html index 6bd8dee6..09a3b86b 100644 --- a/docs/api/classes/WebglViewer.Vimx.html +++ b/docs/api/classes/WebglViewer.Vimx.html @@ -1,8 +1,8 @@ Vimx | vim-web

    Interface to interact with a vimx

    -

    Properties

    Properties

    header: VimHeader
    materials: G3dMaterial
    scene: G3dScene

    Methods

    +

    Properties

    header: VimHeader
    materials: G3dMaterial
    scene: G3dScene

    Methods

    diff --git a/docs/api/functions/ErrorStyle.bold.html b/docs/api/functions/ErrorStyle.bold.html index d0b6c847..62c67bcf 100644 --- a/docs/api/functions/ErrorStyle.bold.html +++ b/docs/api/functions/ErrorStyle.bold.html @@ -1 +1 @@ -bold | vim-web
    +bold | vim-web
    diff --git a/docs/api/functions/ErrorStyle.bullet.html b/docs/api/functions/ErrorStyle.bullet.html index 0228e5ec..e562e84f 100644 --- a/docs/api/functions/ErrorStyle.bullet.html +++ b/docs/api/functions/ErrorStyle.bullet.html @@ -1 +1 @@ -bullet | vim-web
    +bullet | vim-web
    diff --git a/docs/api/functions/ErrorStyle.detailText.html b/docs/api/functions/ErrorStyle.detailText.html index 6b472c01..0c4ddd01 100644 --- a/docs/api/functions/ErrorStyle.detailText.html +++ b/docs/api/functions/ErrorStyle.detailText.html @@ -1 +1 @@ -detailText | vim-web

    Function detailText

    +detailText | vim-web

    Function detailText

    diff --git a/docs/api/functions/ErrorStyle.dotList.html b/docs/api/functions/ErrorStyle.dotList.html index af25bdc7..72fff544 100644 --- a/docs/api/functions/ErrorStyle.dotList.html +++ b/docs/api/functions/ErrorStyle.dotList.html @@ -1 +1 @@ -dotList | vim-web

    Function dotList

    +dotList | vim-web

    Function dotList

    diff --git a/docs/api/functions/ErrorStyle.footer.html b/docs/api/functions/ErrorStyle.footer.html index 48ca46d3..22cac66f 100644 --- a/docs/api/functions/ErrorStyle.footer.html +++ b/docs/api/functions/ErrorStyle.footer.html @@ -1 +1 @@ -footer | vim-web
    +footer | vim-web
    diff --git a/docs/api/functions/ErrorStyle.link.html b/docs/api/functions/ErrorStyle.link.html index cc41316c..67f0e9b4 100644 --- a/docs/api/functions/ErrorStyle.link.html +++ b/docs/api/functions/ErrorStyle.link.html @@ -1 +1 @@ -link | vim-web
    +link | vim-web
    diff --git a/docs/api/functions/ErrorStyle.mainText.html b/docs/api/functions/ErrorStyle.mainText.html index f6617fdc..5a2d6cd0 100644 --- a/docs/api/functions/ErrorStyle.mainText.html +++ b/docs/api/functions/ErrorStyle.mainText.html @@ -1 +1 @@ -mainText | vim-web

    Function mainText

    +mainText | vim-web

    Function mainText

    diff --git a/docs/api/functions/ErrorStyle.numList.html b/docs/api/functions/ErrorStyle.numList.html index 7c3512a4..b11207c3 100644 --- a/docs/api/functions/ErrorStyle.numList.html +++ b/docs/api/functions/ErrorStyle.numList.html @@ -1 +1 @@ -numList | vim-web

    Function numList

    +numList | vim-web

    Function numList

    diff --git a/docs/api/functions/ErrorStyle.subTitle.html b/docs/api/functions/ErrorStyle.subTitle.html index 76ceee8b..dc97f08b 100644 --- a/docs/api/functions/ErrorStyle.subTitle.html +++ b/docs/api/functions/ErrorStyle.subTitle.html @@ -1 +1 @@ -subTitle | vim-web

    Function subTitle

    +subTitle | vim-web

    Function subTitle

    diff --git a/docs/api/functions/Errors.fileOpeningError.html b/docs/api/functions/Errors.fileOpeningError.html index 8cd4047c..66cdc14a 100644 --- a/docs/api/functions/Errors.fileOpeningError.html +++ b/docs/api/functions/Errors.fileOpeningError.html @@ -1 +1 @@ -fileOpeningError | vim-web

    Function fileOpeningError

    +fileOpeningError | vim-web

    Function fileOpeningError

    diff --git a/docs/api/functions/Errors.serverCompatibilityError.html b/docs/api/functions/Errors.serverCompatibilityError.html index 7921f157..896973b5 100644 --- a/docs/api/functions/Errors.serverCompatibilityError.html +++ b/docs/api/functions/Errors.serverCompatibilityError.html @@ -1 +1 @@ -serverCompatibilityError | vim-web

    Function serverCompatibilityError

    +serverCompatibilityError | vim-web

    Function serverCompatibilityError

    diff --git a/docs/api/functions/Errors.serverConnectionError.html b/docs/api/functions/Errors.serverConnectionError.html index ba1db7cb..2f10834a 100644 --- a/docs/api/functions/Errors.serverConnectionError.html +++ b/docs/api/functions/Errors.serverConnectionError.html @@ -1 +1 @@ -serverConnectionError | vim-web

    Function serverConnectionError

    +serverConnectionError | vim-web

    Function serverConnectionError

    diff --git a/docs/api/functions/Errors.serverFileDownloadingError.html b/docs/api/functions/Errors.serverFileDownloadingError.html index 56870abe..a5be15f6 100644 --- a/docs/api/functions/Errors.serverFileDownloadingError.html +++ b/docs/api/functions/Errors.serverFileDownloadingError.html @@ -1 +1 @@ -serverFileDownloadingError | vim-web

    Function serverFileDownloadingError

    +serverFileDownloadingError | vim-web

    Function serverFileDownloadingError

    diff --git a/docs/api/functions/Errors.serverFileLoadingError.html b/docs/api/functions/Errors.serverFileLoadingError.html index 314537e0..20cd882b 100644 --- a/docs/api/functions/Errors.serverFileLoadingError.html +++ b/docs/api/functions/Errors.serverFileLoadingError.html @@ -1 +1 @@ -serverFileLoadingError | vim-web

    Function serverFileLoadingError

    +serverFileLoadingError | vim-web

    Function serverFileLoadingError

    diff --git a/docs/api/functions/Errors.serverStreamError.html b/docs/api/functions/Errors.serverStreamError.html index d2f7f8cc..9effc166 100644 --- a/docs/api/functions/Errors.serverStreamError.html +++ b/docs/api/functions/Errors.serverStreamError.html @@ -1 +1 @@ -serverStreamError | vim-web

    Function serverStreamError

    +serverStreamError | vim-web

    Function serverStreamError

    diff --git a/docs/api/functions/UltraReact.UltraComponent.html b/docs/api/functions/UltraReact.UltraComponent.html index 340f3333..57da312a 100644 --- a/docs/api/functions/UltraReact.UltraComponent.html +++ b/docs/api/functions/UltraReact.UltraComponent.html @@ -1,2 +1,2 @@ UltraComponent | vim-web

    Function UltraComponent

    +

    Parameters

    Returns Element

    diff --git a/docs/api/functions/UltraReact.createUltraComponent.html b/docs/api/functions/UltraReact.createUltraComponent.html index 8ac8642a..a458bcce 100644 --- a/docs/api/functions/UltraReact.createUltraComponent.html +++ b/docs/api/functions/UltraReact.createUltraComponent.html @@ -1,4 +1,4 @@ createUltraComponent | vim-web

    Function createUltraComponent

    +
    diff --git a/docs/api/functions/UltraViewer.clamp.html b/docs/api/functions/UltraViewer.clamp.html index a9ffbea3..77804d4d 100644 --- a/docs/api/functions/UltraViewer.clamp.html +++ b/docs/api/functions/UltraViewer.clamp.html @@ -1,2 +1,2 @@ clamp | vim-web
    +

    Parameters

    Returns number

    diff --git a/docs/api/functions/UltraViewer.remap.html b/docs/api/functions/UltraViewer.remap.html index a6425cf8..af4d1bc2 100644 --- a/docs/api/functions/UltraViewer.remap.html +++ b/docs/api/functions/UltraViewer.remap.html @@ -1,2 +1,2 @@ remap | vim-web
    +

    Parameters

    Returns number

    diff --git a/docs/api/functions/WebglReact.BimInfo.useBimInfo.html b/docs/api/functions/WebglReact.BimInfo.useBimInfo.html index e76da7de..9ac2ca53 100644 --- a/docs/api/functions/WebglReact.BimInfo.useBimInfo.html +++ b/docs/api/functions/WebglReact.BimInfo.useBimInfo.html @@ -2,4 +2,4 @@ of a BIM info panel. This hook maintains internal state for each customization callback, allowing dynamic updates at runtime.

    Returns BimInfoPanelRef

    A BimInfoPanelRef object containing getters and setters for each customization callback.

    -
    +
    diff --git a/docs/api/functions/WebglReact.VimComponent.html b/docs/api/functions/WebglReact.VimComponent.html index 30763a96..e0500aa1 100644 --- a/docs/api/functions/WebglReact.VimComponent.html +++ b/docs/api/functions/WebglReact.VimComponent.html @@ -1,2 +1,2 @@ VimComponent | vim-web

    Function VimComponent

    +

    Parameters

    Returns Element

    diff --git a/docs/api/functions/WebglReact.createWebglComponent.html b/docs/api/functions/WebglReact.createWebglComponent.html index 6daf7375..12be31ff 100644 --- a/docs/api/functions/WebglReact.createWebglComponent.html +++ b/docs/api/functions/WebglReact.createWebglComponent.html @@ -3,4 +3,4 @@
  • componentSettings: RecursivePartial<Settings> = {}

    UI Component settings.

  • viewerSettings: RecursivePartial<ViewerSettings> = {}

    Viewer settings.

  • Returns Promise<VimComponentRef>

    An object containing the resulting container, reactRoot, and viewer.

    -
    +
    diff --git a/docs/api/functions/WebglReact.getLocalSettings.html b/docs/api/functions/WebglReact.getLocalSettings.html index 94882cc2..307c7e05 100644 --- a/docs/api/functions/WebglReact.getLocalSettings.html +++ b/docs/api/functions/WebglReact.getLocalSettings.html @@ -1,4 +1,4 @@ getLocalSettings | vim-web

    Function getLocalSettings

    • Retrieves component settings from localStorage and applies permissions

      Parameters

      • settings: RecursivePartial<Settings> = {}

        Partial component settings to apply permissions from

      Returns {}

      The stored settings with applied permissions, or empty object if retrieval fails

      -
    +
    diff --git a/docs/api/functions/WebglReact.viw-webgl-react.ControlBar.html b/docs/api/functions/WebglReact.viw-webgl-react.ControlBar.html index fa8fc491..a175ec90 100644 --- a/docs/api/functions/WebglReact.viw-webgl-react.ControlBar.html +++ b/docs/api/functions/WebglReact.viw-webgl-react.ControlBar.html @@ -1,2 +1,2 @@ ControlBar | vim-web
    • JSX Component for the control bar.

      -

      Parameters

      • props: {
            camera: ComponentCamera;
            cursor: CursorManager;
            customization: ControlBarCustomization;
            isolation: Isolation;
            modal: ModalRef;
            settings: Settings;
            side: SideState;
            viewer: WebglViewer.Viewer;
        }

      Returns Element

    +

    Parameters

    Returns Element

    diff --git a/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenu.html b/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenu.html index 1508daec..c528370a 100644 --- a/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenu.html +++ b/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenu.html @@ -1,2 +1,2 @@ VimContextMenu | vim-web
    • Context menu component definition according to current state.

      -

      Parameters

      • props: {
            camera: ComponentCamera;
            customization?: (e: ContextMenuElement[]) => ContextMenuElement[];
            isolation: Isolation;
            modal: ModalRef;
            selection: Object3D[];
            treeRef: MutableRefObject<TreeActionRef>;
            viewer: WebglViewer.Viewer;
        }

      Returns Element

    +

    Parameters

    Returns Element

    diff --git a/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenuMemo.html b/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenuMemo.html index a5a46abb..7a7ed550 100644 --- a/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenuMemo.html +++ b/docs/api/functions/WebglReact.viw-webgl-react.VimContextMenuMemo.html @@ -1,2 +1,2 @@ VimContextMenuMemo | vim-web

    Memoized version of VimContextMenu.

    -
    • Parameters

      • props: {
            camera: ComponentCamera;
            customization?: (e: ContextMenuElement[]) => ContextMenuElement[];
            isolation: Isolation;
            modal: ModalRef;
            selection: Object3D[];
            treeRef: MutableRefObject<TreeActionRef>;
            viewer: WebglViewer.Viewer;
        }

      Returns ReactNode

    +
    diff --git a/docs/api/functions/WebglReact.viw-webgl-react.buttonBlueStyle.html b/docs/api/functions/WebglReact.viw-webgl-react.buttonBlueStyle.html index 8ebbbb82..b2578e43 100644 --- a/docs/api/functions/WebglReact.viw-webgl-react.buttonBlueStyle.html +++ b/docs/api/functions/WebglReact.viw-webgl-react.buttonBlueStyle.html @@ -1 +1 @@ -buttonBlueStyle | vim-web
    +buttonBlueStyle | vim-web
    diff --git a/docs/api/functions/WebglReact.viw-webgl-react.buttonDefaultStyle.html b/docs/api/functions/WebglReact.viw-webgl-react.buttonDefaultStyle.html index d8a7364d..48a66c74 100644 --- a/docs/api/functions/WebglReact.viw-webgl-react.buttonDefaultStyle.html +++ b/docs/api/functions/WebglReact.viw-webgl-react.buttonDefaultStyle.html @@ -1 +1 @@ -buttonDefaultStyle | vim-web
    +buttonDefaultStyle | vim-web
    diff --git a/docs/api/functions/WebglReact.viw-webgl-react.showContextMenu.html b/docs/api/functions/WebglReact.viw-webgl-react.showContextMenu.html index 097e3e97..fc1df4f0 100644 --- a/docs/api/functions/WebglReact.viw-webgl-react.showContextMenu.html +++ b/docs/api/functions/WebglReact.viw-webgl-react.showContextMenu.html @@ -1 +1 @@ -showContextMenu | vim-web
    +showContextMenu | vim-web
    diff --git a/docs/api/functions/WebglViewer.Geometry.createGeometryFromArrays.html b/docs/api/functions/WebglViewer.Geometry.createGeometryFromArrays.html index a32ae50d..2f7c0d3a 100644 --- a/docs/api/functions/WebglViewer.Geometry.createGeometryFromArrays.html +++ b/docs/api/functions/WebglViewer.Geometry.createGeometryFromArrays.html @@ -4,4 +4,4 @@
  • vertexColors: Float32Array<ArrayBufferLike> = undefined

    color data with 3 or 4 number per vertex. RBG or RGBA

  • colorSize: number = 3

    specify whether to treat colors as RGB or RGBA

  • Returns THREE.BufferGeometry

    a BufferGeometry

    -
    +
    diff --git a/docs/api/functions/WebglViewer.Geometry.createGeometryFromInstances.html b/docs/api/functions/WebglViewer.Geometry.createGeometryFromInstances.html index 398a35fd..d5473ec2 100644 --- a/docs/api/functions/WebglViewer.Geometry.createGeometryFromInstances.html +++ b/docs/api/functions/WebglViewer.Geometry.createGeometryFromInstances.html @@ -1,3 +1,3 @@ createGeometryFromInstances | vim-web

    Function createGeometryFromInstances

    +
    diff --git a/docs/api/functions/WebglViewer.Geometry.createGeometryFromMesh.html b/docs/api/functions/WebglViewer.Geometry.createGeometryFromMesh.html index 8202e511..69b3a3f1 100644 --- a/docs/api/functions/WebglViewer.Geometry.createGeometryFromMesh.html +++ b/docs/api/functions/WebglViewer.Geometry.createGeometryFromMesh.html @@ -1,4 +1,4 @@ createGeometryFromMesh | vim-web
    • Creates a BufferGeometry from a given mesh index in the g3d

      Parameters

      • g3d: G3d
      • mesh: number

        g3d mesh index

      • section: MeshSection
      • transparent: boolean

        specify to use RGB or RGBA for colors

        -

      Returns THREE.BufferGeometry

    +

    Returns THREE.BufferGeometry

    diff --git a/docs/api/functions/WebglViewer.Geometry.getInstanceMatrix.html b/docs/api/functions/WebglViewer.Geometry.getInstanceMatrix.html index afb27b1a..46a68ede 100644 --- a/docs/api/functions/WebglViewer.Geometry.getInstanceMatrix.html +++ b/docs/api/functions/WebglViewer.Geometry.getInstanceMatrix.html @@ -1,4 +1,4 @@ getInstanceMatrix | vim-web
    • Returns a THREE.Matrix4 from the g3d for given instance

      Parameters

      • g3d: G3d
      • instance: number

        g3d instance index

      • target: Matrix4 = ...

        matrix where the data will be copied, a new matrix will be created if none provided.

        -

      Returns THREE.Matrix4

    +

    Returns THREE.Matrix4

    diff --git a/docs/api/functions/WebglViewer.Geometry.mergeInstanceMeshes.html b/docs/api/functions/WebglViewer.Geometry.mergeInstanceMeshes.html index bcc233a3..63e8d923 100644 --- a/docs/api/functions/WebglViewer.Geometry.mergeInstanceMeshes.html +++ b/docs/api/functions/WebglViewer.Geometry.mergeInstanceMeshes.html @@ -1,3 +1,3 @@ mergeInstanceMeshes | vim-web
    +

    Parameters

    Returns MergeResult

    diff --git a/docs/api/functions/WebglViewer.Geometry.mergeUniqueMeshes.html b/docs/api/functions/WebglViewer.Geometry.mergeUniqueMeshes.html index ce9a53bf..941bf1c6 100644 --- a/docs/api/functions/WebglViewer.Geometry.mergeUniqueMeshes.html +++ b/docs/api/functions/WebglViewer.Geometry.mergeUniqueMeshes.html @@ -1,2 +1,2 @@ mergeUniqueMeshes | vim-web
    +

    Parameters

    Returns MergeResult

    diff --git a/docs/api/functions/WebglViewer.Transparency.isValid.html b/docs/api/functions/WebglViewer.Transparency.isValid.html index 16dc0523..7b5af6c0 100644 --- a/docs/api/functions/WebglViewer.Transparency.isValid.html +++ b/docs/api/functions/WebglViewer.Transparency.isValid.html @@ -1,2 +1,2 @@ isValid | vim-web
    +

    Parameters

    Returns value is Mode

    diff --git a/docs/api/functions/WebglViewer.Transparency.requiresAlpha.html b/docs/api/functions/WebglViewer.Transparency.requiresAlpha.html index 2849b544..40bb8b6e 100644 --- a/docs/api/functions/WebglViewer.Transparency.requiresAlpha.html +++ b/docs/api/functions/WebglViewer.Transparency.requiresAlpha.html @@ -1,2 +1,2 @@ requiresAlpha | vim-web
    +

    Parameters

    Returns mode is "all" | "transparentOnly"

    diff --git a/docs/api/functions/WebglViewer.createBoxes.html b/docs/api/functions/WebglViewer.createBoxes.html index 2fa2c9cd..ab3e5e5c 100644 --- a/docs/api/functions/WebglViewer.createBoxes.html +++ b/docs/api/functions/WebglViewer.createBoxes.html @@ -1 +1 @@ -createBoxes | vim-web

    Function createBoxes

    • Parameters

      • boxes: Box3[]

      Returns InstancedMesh<BoxGeometry, MeshBasicMaterial, InstancedMeshEventMap>

    +createBoxes | vim-web

    Function createBoxes

    • Parameters

      • boxes: Box3[]

      Returns InstancedMesh<BoxGeometry, MeshBasicMaterial, InstancedMeshEventMap>

    diff --git a/docs/api/functions/WebglViewer.createWireframe.html b/docs/api/functions/WebglViewer.createWireframe.html index 141208ff..80efcd9b 100644 --- a/docs/api/functions/WebglViewer.createWireframe.html +++ b/docs/api/functions/WebglViewer.createWireframe.html @@ -1,3 +1,3 @@ createWireframe | vim-web

    Function createWireframe

    +
    diff --git a/docs/api/functions/WebglViewer.getFullSettings.html b/docs/api/functions/WebglViewer.getFullSettings.html index 562af75a..2f05e65c 100644 --- a/docs/api/functions/WebglViewer.getFullSettings.html +++ b/docs/api/functions/WebglViewer.getFullSettings.html @@ -1,4 +1,4 @@ getFullSettings | vim-web

    Function getFullSettings

    +
    diff --git a/docs/api/functions/WebglViewer.getViewerSettings.html b/docs/api/functions/WebglViewer.getViewerSettings.html index bee5290e..5bae5345 100644 --- a/docs/api/functions/WebglViewer.getViewerSettings.html +++ b/docs/api/functions/WebglViewer.getViewerSettings.html @@ -1,3 +1,3 @@ getViewerSettings | vim-web

    Function getViewerSettings

    +

    Returns ViewerSettings

    diff --git a/docs/api/functions/WebglViewer.getViewerSettingsFromUrl.html b/docs/api/functions/WebglViewer.getViewerSettingsFromUrl.html index 909e6d50..1b904b5c 100644 --- a/docs/api/functions/WebglViewer.getViewerSettingsFromUrl.html +++ b/docs/api/functions/WebglViewer.getViewerSettingsFromUrl.html @@ -3,4 +3,4 @@

    Parameters

    Returns RecursivePartial<ViewerSettings>

    A PartialSettings object that can further be merged with default values.

    -
    +
    diff --git a/docs/api/functions/WebglViewer.open.html b/docs/api/functions/WebglViewer.open.html index 3c2e4f1c..b34ca92d 100644 --- a/docs/api/functions/WebglViewer.open.html +++ b/docs/api/functions/WebglViewer.open.html @@ -3,4 +3,4 @@
  • settings: Partial<VimSettings>

    The settings to configure the behavior of the vim object.

  • OptionalonProgress: (p: IProgressLogs) => void

    Optional callback function to track progress logs.

  • Returns Promise<WebglViewer.Vim>

    A Promise that resolves when the vim object is successfully opened.

    -
    +
    diff --git a/docs/api/functions/WebglViewer.request.html b/docs/api/functions/WebglViewer.request.html index c45bacba..eb63fcb5 100644 --- a/docs/api/functions/WebglViewer.request.html +++ b/docs/api/functions/WebglViewer.request.html @@ -2,4 +2,4 @@

    Parameters

    Returns VimRequest

    a request object that can be used to track progress and get the result.

    -
    +
    diff --git a/docs/api/functions/createContainer.html b/docs/api/functions/createContainer.html index 8ccab39c..54ab4307 100644 --- a/docs/api/functions/createContainer.html +++ b/docs/api/functions/createContainer.html @@ -1,4 +1,4 @@ createContainer | vim-web

    Function createContainer

    • Creates a default container for the vim component around a vim viewer The element is created if not provided. The element will be made position:absolute.

      Parameters

      • Optionalelement: HTMLElement

      Returns Container

      optional HTML element to use as root

      -
    +
    diff --git a/docs/api/functions/icons.arrowLeft.html b/docs/api/functions/icons.arrowLeft.html index 3b179e35..926b5f86 100644 --- a/docs/api/functions/icons.arrowLeft.html +++ b/docs/api/functions/icons.arrowLeft.html @@ -1 +1 @@ -arrowLeft | vim-web

    Function arrowLeft

    +arrowLeft | vim-web

    Function arrowLeft

    diff --git a/docs/api/functions/icons.camera.html b/docs/api/functions/icons.camera.html index 0517d76a..64b78c7e 100644 --- a/docs/api/functions/icons.camera.html +++ b/docs/api/functions/icons.camera.html @@ -1 +1 @@ -camera | vim-web

    Function camera

    +camera | vim-web

    Function camera

    diff --git a/docs/api/functions/icons.checkmark.html b/docs/api/functions/icons.checkmark.html index 25dcde9f..f9fbf862 100644 --- a/docs/api/functions/icons.checkmark.html +++ b/docs/api/functions/icons.checkmark.html @@ -1 +1 @@ -checkmark | vim-web

    Function checkmark

    +checkmark | vim-web

    Function checkmark

    diff --git a/docs/api/functions/icons.close.html b/docs/api/functions/icons.close.html index 3a116fa8..55949818 100644 --- a/docs/api/functions/icons.close.html +++ b/docs/api/functions/icons.close.html @@ -1 +1 @@ -close | vim-web

    Function close

    +close | vim-web

    Function close

    diff --git a/docs/api/functions/icons.collapse.html b/docs/api/functions/icons.collapse.html index c9a1b746..c0b30ed7 100644 --- a/docs/api/functions/icons.collapse.html +++ b/docs/api/functions/icons.collapse.html @@ -1 +1 @@ -collapse | vim-web

    Function collapse

    +collapse | vim-web

    Function collapse

    diff --git a/docs/api/functions/icons.frameRect.html b/docs/api/functions/icons.frameRect.html index af8910b9..c503c3ed 100644 --- a/docs/api/functions/icons.frameRect.html +++ b/docs/api/functions/icons.frameRect.html @@ -1 +1 @@ -frameRect | vim-web

    Function frameRect

    +frameRect | vim-web

    Function frameRect

    diff --git a/docs/api/functions/icons.frameSelection.html b/docs/api/functions/icons.frameSelection.html index 892c073a..7e9f02a4 100644 --- a/docs/api/functions/icons.frameSelection.html +++ b/docs/api/functions/icons.frameSelection.html @@ -1 +1 @@ -frameSelection | vim-web

    Function frameSelection

    +frameSelection | vim-web

    Function frameSelection

    diff --git a/docs/api/functions/icons.fullArrowLeft.html b/docs/api/functions/icons.fullArrowLeft.html index 0ea9d16f..7de367a6 100644 --- a/docs/api/functions/icons.fullArrowLeft.html +++ b/docs/api/functions/icons.fullArrowLeft.html @@ -1 +1 @@ -fullArrowLeft | vim-web

    Function fullArrowLeft

    +fullArrowLeft | vim-web

    Function fullArrowLeft

    diff --git a/docs/api/functions/icons.fullsScreen.html b/docs/api/functions/icons.fullsScreen.html index 74316196..2919d5af 100644 --- a/docs/api/functions/icons.fullsScreen.html +++ b/docs/api/functions/icons.fullsScreen.html @@ -1 +1 @@ -fullsScreen | vim-web

    Function fullsScreen

    +fullsScreen | vim-web

    Function fullsScreen

    diff --git a/docs/api/functions/icons.ghost.html b/docs/api/functions/icons.ghost.html index f0cc5fef..c5011778 100644 --- a/docs/api/functions/icons.ghost.html +++ b/docs/api/functions/icons.ghost.html @@ -1 +1 @@ -ghost | vim-web

    Function ghost

    +ghost | vim-web

    Function ghost

    diff --git a/docs/api/functions/icons.ghostDead.html b/docs/api/functions/icons.ghostDead.html index 0965198d..4ea463e3 100644 --- a/docs/api/functions/icons.ghostDead.html +++ b/docs/api/functions/icons.ghostDead.html @@ -1 +1 @@ -ghostDead | vim-web

    Function ghostDead

    +ghostDead | vim-web

    Function ghostDead

    diff --git a/docs/api/functions/icons.help.html b/docs/api/functions/icons.help.html index 80aa1deb..5a845234 100644 --- a/docs/api/functions/icons.help.html +++ b/docs/api/functions/icons.help.html @@ -1 +1 @@ -help | vim-web

    Function help

    +help | vim-web

    Function help

    diff --git a/docs/api/functions/icons.hidden.html b/docs/api/functions/icons.hidden.html index 2a41e4e0..a824c5d7 100644 --- a/docs/api/functions/icons.hidden.html +++ b/docs/api/functions/icons.hidden.html @@ -1 +1 @@ -hidden | vim-web

    Function hidden

    +hidden | vim-web

    Function hidden

    diff --git a/docs/api/functions/icons.home.html b/docs/api/functions/icons.home.html index a2ebfb4a..23d1d5c3 100644 --- a/docs/api/functions/icons.home.html +++ b/docs/api/functions/icons.home.html @@ -1 +1 @@ -home | vim-web

    Function home

    +home | vim-web

    Function home

    diff --git a/docs/api/functions/icons.look.html b/docs/api/functions/icons.look.html index a58879a7..d5c19d94 100644 --- a/docs/api/functions/icons.look.html +++ b/docs/api/functions/icons.look.html @@ -1 +1 @@ -look | vim-web

    Function look

    +look | vim-web

    Function look

    diff --git a/docs/api/functions/icons.measure.html b/docs/api/functions/icons.measure.html index 83b0cb8b..7da11c57 100644 --- a/docs/api/functions/icons.measure.html +++ b/docs/api/functions/icons.measure.html @@ -1 +1 @@ -measure | vim-web

    Function measure

    +measure | vim-web

    Function measure

    diff --git a/docs/api/functions/icons.minimize.html b/docs/api/functions/icons.minimize.html index e207d858..6b38024d 100644 --- a/docs/api/functions/icons.minimize.html +++ b/docs/api/functions/icons.minimize.html @@ -1 +1 @@ -minimize | vim-web

    Function minimize

    +minimize | vim-web

    Function minimize

    diff --git a/docs/api/functions/icons.more.html b/docs/api/functions/icons.more.html index 3a4adbde..6381a19c 100644 --- a/docs/api/functions/icons.more.html +++ b/docs/api/functions/icons.more.html @@ -1 +1 @@ -more | vim-web

    Function more

    +more | vim-web

    Function more

    diff --git a/docs/api/functions/icons.orbit.html b/docs/api/functions/icons.orbit.html index 93dc3d93..84b3d0fa 100644 --- a/docs/api/functions/icons.orbit.html +++ b/docs/api/functions/icons.orbit.html @@ -1 +1 @@ -orbit | vim-web

    Function orbit

    +orbit | vim-web

    Function orbit

    diff --git a/docs/api/functions/icons.orthographic.html b/docs/api/functions/icons.orthographic.html index 67d8689f..5dc599fb 100644 --- a/docs/api/functions/icons.orthographic.html +++ b/docs/api/functions/icons.orthographic.html @@ -1 +1 @@ -orthographic | vim-web

    Function orthographic

    +orthographic | vim-web

    Function orthographic

    diff --git a/docs/api/functions/icons.pan.html b/docs/api/functions/icons.pan.html index bf7f4e48..56507dd2 100644 --- a/docs/api/functions/icons.pan.html +++ b/docs/api/functions/icons.pan.html @@ -1 +1 @@ -pan | vim-web

    Function pan

    +pan | vim-web

    Function pan

    diff --git a/docs/api/functions/icons.perspective.html b/docs/api/functions/icons.perspective.html index 864cf077..0575544a 100644 --- a/docs/api/functions/icons.perspective.html +++ b/docs/api/functions/icons.perspective.html @@ -1 +1 @@ -perspective | vim-web

    Function perspective

    +perspective | vim-web

    Function perspective

    diff --git a/docs/api/functions/icons.sectionBox.html b/docs/api/functions/icons.sectionBox.html index d4893687..49df95ca 100644 --- a/docs/api/functions/icons.sectionBox.html +++ b/docs/api/functions/icons.sectionBox.html @@ -1 +1 @@ -sectionBox | vim-web

    Function sectionBox

    +sectionBox | vim-web

    Function sectionBox

    diff --git a/docs/api/functions/icons.sectionBoxClip.html b/docs/api/functions/icons.sectionBoxClip.html index 10065cff..4ddfb642 100644 --- a/docs/api/functions/icons.sectionBoxClip.html +++ b/docs/api/functions/icons.sectionBoxClip.html @@ -1 +1 @@ -sectionBoxClip | vim-web

    Function sectionBoxClip

    +sectionBoxClip | vim-web

    Function sectionBoxClip

    diff --git a/docs/api/functions/icons.sectionBoxIgnore.html b/docs/api/functions/icons.sectionBoxIgnore.html index b57684d6..12b9444a 100644 --- a/docs/api/functions/icons.sectionBoxIgnore.html +++ b/docs/api/functions/icons.sectionBoxIgnore.html @@ -1 +1 @@ -sectionBoxIgnore | vim-web

    Function sectionBoxIgnore

    +sectionBoxIgnore | vim-web

    Function sectionBoxIgnore

    diff --git a/docs/api/functions/icons.sectionBoxReset.html b/docs/api/functions/icons.sectionBoxReset.html index adf43013..2273488a 100644 --- a/docs/api/functions/icons.sectionBoxReset.html +++ b/docs/api/functions/icons.sectionBoxReset.html @@ -1 +1 @@ -sectionBoxReset | vim-web

    Function sectionBoxReset

    +sectionBoxReset | vim-web

    Function sectionBoxReset

    diff --git a/docs/api/functions/icons.sectionBoxShrink.html b/docs/api/functions/icons.sectionBoxShrink.html index 939b0352..82976ee1 100644 --- a/docs/api/functions/icons.sectionBoxShrink.html +++ b/docs/api/functions/icons.sectionBoxShrink.html @@ -1 +1 @@ -sectionBoxShrink | vim-web

    Function sectionBoxShrink

    +sectionBoxShrink | vim-web

    Function sectionBoxShrink

    diff --git a/docs/api/functions/icons.settings.html b/docs/api/functions/icons.settings.html index ee91a4ac..90b6ab1a 100644 --- a/docs/api/functions/icons.settings.html +++ b/docs/api/functions/icons.settings.html @@ -1 +1 @@ -settings | vim-web

    Function settings

    +settings | vim-web

    Function settings

    diff --git a/docs/api/functions/icons.toggleIsolation.html b/docs/api/functions/icons.toggleIsolation.html index 252c81f0..eab4f489 100644 --- a/docs/api/functions/icons.toggleIsolation.html +++ b/docs/api/functions/icons.toggleIsolation.html @@ -1 +1 @@ -toggleIsolation | vim-web

    Function toggleIsolation

    +toggleIsolation | vim-web

    Function toggleIsolation

    diff --git a/docs/api/functions/icons.trash.html b/docs/api/functions/icons.trash.html index cfdc98ea..970f8286 100644 --- a/docs/api/functions/icons.trash.html +++ b/docs/api/functions/icons.trash.html @@ -1 +1 @@ -trash | vim-web

    Function trash

    +trash | vim-web

    Function trash

    diff --git a/docs/api/functions/icons.treeView.html b/docs/api/functions/icons.treeView.html index 201b0113..f3403a7d 100644 --- a/docs/api/functions/icons.treeView.html +++ b/docs/api/functions/icons.treeView.html @@ -1 +1 @@ -treeView | vim-web

    Function treeView

    +treeView | vim-web

    Function treeView

    diff --git a/docs/api/functions/icons.undo.html b/docs/api/functions/icons.undo.html index 1ff3993b..21a28ef5 100644 --- a/docs/api/functions/icons.undo.html +++ b/docs/api/functions/icons.undo.html @@ -1 +1 @@ -undo | vim-web

    Function undo

    +undo | vim-web

    Function undo

    diff --git a/docs/api/functions/icons.visible.html b/docs/api/functions/icons.visible.html index 5df975a0..47fd5b7f 100644 --- a/docs/api/functions/icons.visible.html +++ b/docs/api/functions/icons.visible.html @@ -1 +1 @@ -visible | vim-web

    Function visible

    +visible | vim-web

    Function visible

    diff --git a/docs/api/functions/icons.zoom.html b/docs/api/functions/icons.zoom.html index f65e4455..b5e642a9 100644 --- a/docs/api/functions/icons.zoom.html +++ b/docs/api/functions/icons.zoom.html @@ -1 +1 @@ -zoom | vim-web

    Function zoom

    +zoom | vim-web

    Function zoom

    diff --git a/docs/api/interfaces/UltraViewer.ILoadRequest.html b/docs/api/interfaces/UltraViewer.ILoadRequest.html index 6ccf1e2d..20925872 100644 --- a/docs/api/interfaces/UltraViewer.ILoadRequest.html +++ b/docs/api/interfaces/UltraViewer.ILoadRequest.html @@ -1,5 +1,5 @@ -ILoadRequest | vim-web

    Interface ILoadRequest

    interface ILoadRequest {
        get isCompleted(): boolean;
        abort(): void;
        getProgress(): AsyncGenerator<number, any, any>;
        getResult(): Promise<LoadSuccess | LoadError>;
    }

    Accessors

    isCompleted +ILoadRequest | vim-web

    Interface ILoadRequest

    interface ILoadRequest {
        get isCompleted(): boolean;
        abort(): void;
        getProgress(): AsyncGenerator<number, any, any>;
        getResult(): Promise<LoadSuccess | LoadError>;
    }

    Accessors

    Methods

    +

    Accessors

    Methods

    diff --git a/docs/api/interfaces/UltraViewer.utils.IPromise.html b/docs/api/interfaces/UltraViewer.utils.IPromise.html index 002c4097..fa8d1398 100644 --- a/docs/api/interfaces/UltraViewer.utils.IPromise.html +++ b/docs/api/interfaces/UltraViewer.utils.IPromise.html @@ -1,4 +1,4 @@ -IPromise | vim-web

    Interface IPromise<T>

    interface IPromise<T> {
        promise: Promise<T>;
        reject(reason?: string): void;
        resolve(value: T): void;
    }

    Type Parameters

    • T

    Implemented by

    Properties

    promise +IPromise | vim-web

    Interface IPromise<T>

    interface IPromise<T> {
        promise: Promise<T>;
        reject(reason?: string): void;
        resolve(value: T): void;
    }

    Type Parameters

    • T

    Implemented by

    Properties

    Methods

    Properties

    promise: Promise<T>

    Methods

    +

    Properties

    promise: Promise<T>

    Methods

    diff --git a/docs/api/interfaces/WebglReact.Settings.html b/docs/api/interfaces/WebglReact.Settings.html index 0cb08a34..962ba5bf 100644 --- a/docs/api/interfaces/WebglReact.Settings.html +++ b/docs/api/interfaces/WebglReact.Settings.html @@ -1,7 +1,7 @@ Settings | vim-web

    Interface Settings

    Complete settings configuration for the Vim component ComponentSettings

    -
    interface Settings {
        capacity: {
            canDownload: boolean;
            canFollowUrl: boolean;
            canGoFullScreen: boolean;
            useOrthographicCamera: boolean;
        };
        isolation: { enable: boolean };
        materials: {
            smallGhostThreshold: number;
            useFastMaterial: boolean;
            useGhostMaterial: boolean;
        };
        ui: {
            axesPanel: UserBoolean;
            bimInfoPanel: UserBoolean;
            bimTreePanel: UserBoolean;
            controlBar: UserBoolean;
            enableGhost: UserBoolean;
            help: UserBoolean;
            logo: UserBoolean;
            lookAround: UserBoolean;
            maximise: UserBoolean;
            measuringMode: UserBoolean;
            orbit: UserBoolean;
            orthographic: UserBoolean;
            pan: UserBoolean;
            performance: UserBoolean;
            projectInspector: UserBoolean;
            resetCamera: UserBoolean;
            sectioningMode: UserBoolean;
            settings: UserBoolean;
            toggleIsolation: UserBoolean;
            zoom: UserBoolean;
            zoomToFit: UserBoolean;
            zoomWindow: UserBoolean;
        };
    }

    Properties

    interface Settings {
        capacity: {
            canDownload: boolean;
            canFollowUrl: boolean;
            canGoFullScreen: boolean;
            useOrthographicCamera: boolean;
        };
        isolation: { enable: boolean };
        materials: {
            smallGhostThreshold: number;
            useFastMaterial: boolean;
            useGhostMaterial: boolean;
        };
        ui: {
            axesPanel: UserBoolean;
            bimInfoPanel: UserBoolean;
            bimTreePanel: UserBoolean;
            controlBar: UserBoolean;
            enableGhost: UserBoolean;
            help: UserBoolean;
            logo: UserBoolean;
            lookAround: UserBoolean;
            maximise: UserBoolean;
            measuringMode: UserBoolean;
            orbit: UserBoolean;
            orthographic: UserBoolean;
            pan: UserBoolean;
            performance: UserBoolean;
            projectInspector: UserBoolean;
            resetCamera: UserBoolean;
            sectioningMode: UserBoolean;
            settings: UserBoolean;
            toggleIsolation: UserBoolean;
            zoom: UserBoolean;
            zoomToFit: UserBoolean;
            zoomWindow: UserBoolean;
        };
    }

    Properties

    capacity: {
        canDownload: boolean;
        canFollowUrl: boolean;
        canGoFullScreen: boolean;
        useOrthographicCamera: boolean;
    }
    isolation: { enable: boolean }
    materials: {
        smallGhostThreshold: number;
        useFastMaterial: boolean;
        useGhostMaterial: boolean;
    }
    ui: {
        axesPanel: UserBoolean;
        bimInfoPanel: UserBoolean;
        bimTreePanel: UserBoolean;
        controlBar: UserBoolean;
        enableGhost: UserBoolean;
        help: UserBoolean;
        logo: UserBoolean;
        lookAround: UserBoolean;
        maximise: UserBoolean;
        measuringMode: UserBoolean;
        orbit: UserBoolean;
        orthographic: UserBoolean;
        pan: UserBoolean;
        performance: UserBoolean;
        projectInspector: UserBoolean;
        resetCamera: UserBoolean;
        sectioningMode: UserBoolean;
        settings: UserBoolean;
        toggleIsolation: UserBoolean;
        zoom: UserBoolean;
        zoomToFit: UserBoolean;
        zoomWindow: UserBoolean;
    }
    +

    Properties

    capacity: {
        canDownload: boolean;
        canFollowUrl: boolean;
        canGoFullScreen: boolean;
        useOrthographicCamera: boolean;
    }
    isolation: { enable: boolean }
    materials: {
        smallGhostThreshold: number;
        useFastMaterial: boolean;
        useGhostMaterial: boolean;
    }
    ui: {
        axesPanel: UserBoolean;
        bimInfoPanel: UserBoolean;
        bimTreePanel: UserBoolean;
        controlBar: UserBoolean;
        enableGhost: UserBoolean;
        help: UserBoolean;
        logo: UserBoolean;
        lookAround: UserBoolean;
        maximise: UserBoolean;
        measuringMode: UserBoolean;
        orbit: UserBoolean;
        orthographic: UserBoolean;
        pan: UserBoolean;
        performance: UserBoolean;
        projectInspector: UserBoolean;
        resetCamera: UserBoolean;
        sectioningMode: UserBoolean;
        settings: UserBoolean;
        toggleIsolation: UserBoolean;
        zoom: UserBoolean;
        zoomToFit: UserBoolean;
        zoomWindow: UserBoolean;
    }
    diff --git a/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuButton.html b/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuButton.html index c8b48500..9ac4be72 100644 --- a/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuButton.html +++ b/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuButton.html @@ -1,7 +1,7 @@ IContextMenuButton | vim-web

    Represents a button in the context menu. It can't be clicked triggering given action.

    -
    interface IContextMenuButton {
        action: (e: ClickCallback) => void;
        enabled: boolean;
        id: string;
        keyboard: string;
        label: string;
    }

    Properties

    interface IContextMenuButton {
        action: (e: ClickCallback) => void;
        enabled: boolean;
        id: string;
        keyboard: string;
        label: string;
    }

    Properties

    action: (e: ClickCallback) => void
    enabled: boolean
    id: string
    keyboard: string
    label: string
    +

    Properties

    action: (e: ClickCallback) => void
    enabled: boolean
    id: string
    keyboard: string
    label: string
    diff --git a/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuDivider.html b/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuDivider.html index 6c2baefd..8f0ee747 100644 --- a/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuDivider.html +++ b/docs/api/interfaces/WebglReact.viw-webgl-react.IContextMenuDivider.html @@ -1,4 +1,4 @@ IContextMenuDivider | vim-web

    Represents a divider in the context menu. It can't be clicked.

    -
    interface IContextMenuDivider {
        enabled: boolean;
        id: string;
    }

    Properties

    interface IContextMenuDivider {
        enabled: boolean;
        id: string;
    }

    Properties

    Properties

    enabled: boolean
    id: string
    +

    Properties

    enabled: boolean
    id: string
    diff --git a/docs/api/interfaces/WebglViewer.IRenderer.html b/docs/api/interfaces/WebglViewer.IRenderer.html index 00f2c91a..a5c314ee 100644 --- a/docs/api/interfaces/WebglViewer.IRenderer.html +++ b/docs/api/interfaces/WebglViewer.IRenderer.html @@ -1,6 +1,6 @@ IRenderer | vim-web

    Interface IRenderer

    Interface for a renderer object, providing methods to add and remove objects from a scene, update bounding boxes, and notify scene updates.

    -
    interface IRenderer {
        add(scene: Scene | Object3D<Object3DEventMap>): any;
        notifySceneUpdate(): any;
        remove(scene: Scene): any;
        updateBox(box: Box3): any;
    }

    Methods

    add +
    interface IRenderer {
        add(scene: Scene | Object3D<Object3DEventMap>): any;
        notifySceneUpdate(): any;
        remove(scene: Scene): any;
        updateBox(box: Box3): any;
    }

    Methods

    +

    Methods

    diff --git a/docs/api/interfaces/WebglViewer.InputScheme.html b/docs/api/interfaces/WebglViewer.InputScheme.html index 09012abf..4ba2c39f 100644 --- a/docs/api/interfaces/WebglViewer.InputScheme.html +++ b/docs/api/interfaces/WebglViewer.InputScheme.html @@ -1,9 +1,9 @@ InputScheme | vim-web

    Interface InputScheme

    Defines an input scheme for the viewer.

    -
    interface InputScheme {
        onIdleAction(hit: InputAction): void;
        onKeyAction(key: number): boolean;
        onMainAction(hit: InputAction): void;
    }

    Implemented by

    Methods

    interface InputScheme {
        onIdleAction(hit: InputAction): void;
        onKeyAction(key: number): boolean;
        onMainAction(hit: InputAction): void;
    }

    Implemented by

    Methods

    +

    Parameters

    Returns void

    diff --git a/docs/api/types/Container.html b/docs/api/types/Container.html index e03d3c6f..5a665612 100644 --- a/docs/api/types/Container.html +++ b/docs/api/types/Container.html @@ -2,4 +2,4 @@

    Type declaration

    +
    diff --git a/docs/api/types/MessageBoxProps.html b/docs/api/types/MessageBoxProps.html index 10277fe2..ae51adc9 100644 --- a/docs/api/types/MessageBoxProps.html +++ b/docs/api/types/MessageBoxProps.html @@ -1 +1 @@ -MessageBoxProps | vim-web

    Type Alias MessageBoxProps

    MessageBoxProps: {
        body: string | JSX.Element;
        canClose: boolean;
        footer?: string | JSX.Element;
        onClose?: () => void;
        title: string;
    }
    +MessageBoxProps | vim-web

    Type Alias MessageBoxProps

    MessageBoxProps: {
        body: string | JSX.Element;
        canClose: boolean;
        footer?: string | JSX.Element;
        onClose?: () => void;
        title: string;
    }
    diff --git a/docs/api/types/UltraReact.UltraComponentRef.html b/docs/api/types/UltraReact.UltraComponentRef.html index bed1d17b..fa8fc1d1 100644 --- a/docs/api/types/UltraReact.UltraComponentRef.html +++ b/docs/api/types/UltraReact.UltraComponentRef.html @@ -1 +1 @@ -UltraComponentRef | vim-web

    Type Alias UltraComponentRef

    UltraComponentRef: {
        dispose: () => void;
        modal: ModalRef;
        viewer: UltraViewer.Viewer;
        load(url: UltraViewer.VimSource): ILoadRequest;
    }
    +UltraComponentRef | vim-web

    Type Alias UltraComponentRef

    UltraComponentRef: {
        dispose: () => void;
        modal: ModalRef;
        viewer: UltraViewer.Viewer;
        load(url: UltraViewer.VimSource): ILoadRequest;
    }
    diff --git a/docs/api/types/UltraViewer.ClientState.html b/docs/api/types/UltraViewer.ClientState.html index a279234a..1e1b9abc 100644 --- a/docs/api/types/UltraViewer.ClientState.html +++ b/docs/api/types/UltraViewer.ClientState.html @@ -1 +1 @@ -ClientState | vim-web

    Type Alias ClientState

    ClientState:
        | ClientStateConnecting
        | ClientStateConnected
        | ClientStateDisconnected
        | ClientStateValidating
        | ClientError
    +ClientState | vim-web

    Type Alias ClientState

    ClientState:
        | ClientStateConnecting
        | ClientStateConnected
        | ClientStateDisconnected
        | ClientStateValidating
        | ClientError
    diff --git a/docs/api/types/UltraViewer.ConnectionSettings.html b/docs/api/types/UltraViewer.ConnectionSettings.html index ab808edb..1dd91d77 100644 --- a/docs/api/types/UltraViewer.ConnectionSettings.html +++ b/docs/api/types/UltraViewer.ConnectionSettings.html @@ -1 +1 @@ -ConnectionSettings | vim-web

    Type Alias ConnectionSettings

    ConnectionSettings: {
        retries?: number;
        retryDelay?: number;
        timeout?: number;
        url?: string;
    }
    +ConnectionSettings | vim-web

    Type Alias ConnectionSettings

    ConnectionSettings: {
        retries?: number;
        retryDelay?: number;
        timeout?: number;
        url?: string;
    }
    diff --git a/docs/api/types/UltraViewer.VimRequestErrorType.html b/docs/api/types/UltraViewer.VimRequestErrorType.html index b89ee743..679346fa 100644 --- a/docs/api/types/UltraViewer.VimRequestErrorType.html +++ b/docs/api/types/UltraViewer.VimRequestErrorType.html @@ -1 +1 @@ -VimRequestErrorType | vim-web

    Type Alias VimRequestErrorType

    VimRequestErrorType:
        | "loadingError"
        | "downloadingError"
        | "serverDisconnected"
        | "unknown"
        | "cancelled"
    +VimRequestErrorType | vim-web

    Type Alias VimRequestErrorType

    VimRequestErrorType:
        | "loadingError"
        | "downloadingError"
        | "serverDisconnected"
        | "unknown"
        | "cancelled"
    diff --git a/docs/api/types/UltraViewer.VimSource.html b/docs/api/types/UltraViewer.VimSource.html index 460393f0..24e62d0e 100644 --- a/docs/api/types/UltraViewer.VimSource.html +++ b/docs/api/types/UltraViewer.VimSource.html @@ -1 +1 @@ -VimSource | vim-web

    Type Alias VimSource

    VimSource: { authToken?: string; url: string }
    +VimSource | vim-web

    Type Alias VimSource

    VimSource: { authToken?: string; url: string }
    diff --git a/docs/api/types/WebglReact.BimInfo.BimInfoPanelRef.html b/docs/api/types/WebglReact.BimInfo.BimInfoPanelRef.html index 2c51035e..2828dfa0 100644 --- a/docs/api/types/WebglReact.BimInfo.BimInfoPanelRef.html +++ b/docs/api/types/WebglReact.BimInfo.BimInfoPanelRef.html @@ -10,4 +10,4 @@
  • onRenderHeader: DataRender<Entry[]>

    A function that customizes the rendering of the header of the BIM info panel.

  • onRenderHeaderEntry: DataRender<Entry>

    A function that customizes the rendering of each header entry in the BIM info panel.

  • onRenderHeaderEntryValue: DataRender<Entry>

    A function that customizes the rendering of each entry value of the header in the BIM info panel.

    -
  • +
    diff --git a/docs/api/types/WebglReact.BimInfo.Data.html b/docs/api/types/WebglReact.BimInfo.Data.html index 7636a0c6..64ab0cea 100644 --- a/docs/api/types/WebglReact.BimInfo.Data.html +++ b/docs/api/types/WebglReact.BimInfo.Data.html @@ -1,4 +1,4 @@ Data | vim-web
    Data: { body: Section[] | undefined; header: Entry[] | undefined }

    Represents the entire data set for the BIM info panel, including the header and body sections.

    Type declaration

    • body: Section[] | undefined

      The body of the BIM info panel, typically containing one or more sections of grouped entries.

    • header: Entry[] | undefined

      The header of the BIM info panel, typically a list of entries summarizing key information.

      -
    +
    diff --git a/docs/api/types/WebglReact.BimInfo.DataCustomization.html b/docs/api/types/WebglReact.BimInfo.DataCustomization.html index 9d477cd8..2aa40094 100644 --- a/docs/api/types/WebglReact.BimInfo.DataCustomization.html +++ b/docs/api/types/WebglReact.BimInfo.DataCustomization.html @@ -3,4 +3,4 @@

    Type declaration

    +
    diff --git a/docs/api/types/WebglReact.BimInfo.DataRender.html b/docs/api/types/WebglReact.BimInfo.DataRender.html index 9fcabd1d..9d0dae89 100644 --- a/docs/api/types/WebglReact.BimInfo.DataRender.html +++ b/docs/api/types/WebglReact.BimInfo.DataRender.html @@ -5,4 +5,4 @@

    The data to render.

    The standard rendering function for the data.

    A custom JSX element to render, or undefined to use the default rendering.

    -
    +
    diff --git a/docs/api/types/WebglReact.BimInfo.Entry.html b/docs/api/types/WebglReact.BimInfo.Entry.html index 536ec632..b6d49cc7 100644 --- a/docs/api/types/WebglReact.BimInfo.Entry.html +++ b/docs/api/types/WebglReact.BimInfo.Entry.html @@ -2,4 +2,4 @@

    Type declaration

    +
    diff --git a/docs/api/types/WebglReact.BimInfo.Group.html b/docs/api/types/WebglReact.BimInfo.Group.html index 9008bb8f..70eb3948 100644 --- a/docs/api/types/WebglReact.BimInfo.Group.html +++ b/docs/api/types/WebglReact.BimInfo.Group.html @@ -2,4 +2,4 @@

    Type declaration

    +
    diff --git a/docs/api/types/WebglReact.BimInfo.Section.html b/docs/api/types/WebglReact.BimInfo.Section.html index 3b8606fc..7926524d 100644 --- a/docs/api/types/WebglReact.BimInfo.Section.html +++ b/docs/api/types/WebglReact.BimInfo.Section.html @@ -2,4 +2,4 @@

    Type declaration

    +
    diff --git a/docs/api/types/WebglReact.PartialSettings.html b/docs/api/types/WebglReact.PartialSettings.html index 37001561..e875a435 100644 --- a/docs/api/types/WebglReact.PartialSettings.html +++ b/docs/api/types/WebglReact.PartialSettings.html @@ -1,2 +1,2 @@ PartialSettings | vim-web

    Type Alias PartialSettings

    PartialSettings: RecursivePartial<Settings>

    Partial version of ComponentSettings where all properties are optional

    -
    +
    diff --git a/docs/api/types/WebglReact.public-api.ContextMenuRef.html b/docs/api/types/WebglReact.public-api.ContextMenuRef.html index c0b99f74..b71da072 100644 --- a/docs/api/types/WebglReact.public-api.ContextMenuRef.html +++ b/docs/api/types/WebglReact.public-api.ContextMenuRef.html @@ -1,3 +1,3 @@ ContextMenuRef | vim-web
    ContextMenuRef: { customize: (customization: ContextMenuCustomization) => void }

    Reference to manage context menu functionality in the component.

    Type declaration

    • customize: (customization: ContextMenuCustomization) => void

      Defines a callback function to dynamically customize the context menu.

      -
    +
    diff --git a/docs/api/types/WebglReact.public-api.ControlBarRef.html b/docs/api/types/WebglReact.public-api.ControlBarRef.html index 61c71b69..0492a9ce 100644 --- a/docs/api/types/WebglReact.public-api.ControlBarRef.html +++ b/docs/api/types/WebglReact.public-api.ControlBarRef.html @@ -1,3 +1,3 @@ ControlBarRef | vim-web
    ControlBarRef: { customize: (customization: ControlBarCustomization) => void }

    Reference to manage control bar functionality in the component.

    Type declaration

    • customize: (customization: ControlBarCustomization) => void

      Defines a callback function to dynamically customize the control bar.

      -
    +
    diff --git a/docs/api/types/WebglReact.public-api.HelpRef.html b/docs/api/types/WebglReact.public-api.HelpRef.html index 50f32f2c..b4b3cb12 100644 --- a/docs/api/types/WebglReact.public-api.HelpRef.html +++ b/docs/api/types/WebglReact.public-api.HelpRef.html @@ -1,7 +1,7 @@ HelpRef | vim-web
    HelpRef: { isShow(): boolean; show(value: boolean): void }

    Reference to manage help message functionality in the component.

    Type declaration

    +
    diff --git a/docs/api/types/WebglReact.public-api.SettingsRef.html b/docs/api/types/WebglReact.public-api.SettingsRef.html index 7dd1f608..8793c8f5 100644 --- a/docs/api/types/WebglReact.public-api.SettingsRef.html +++ b/docs/api/types/WebglReact.public-api.SettingsRef.html @@ -1,4 +1,4 @@ SettingsRef | vim-web
    SettingsRef: {
        register: (callback: (settings: Settings) => void) => void;
        update: (updater: (settings: Settings) => void) => void;
    }

    Settings API managing settings applied to the component.

    Type declaration

    • register: (callback: (settings: Settings) => void) => void

      Registers a callback function to be notified when settings are updated.

    • update: (updater: (settings: Settings) => void) => void

      Allows updating settings by providing a callback function.

      -
    +
    diff --git a/docs/api/types/WebglReact.public-api.VimComponentRef.html b/docs/api/types/WebglReact.public-api.VimComponentRef.html index f7099cc0..e62dcf1a 100644 --- a/docs/api/types/WebglReact.public-api.VimComponentRef.html +++ b/docs/api/types/WebglReact.public-api.VimComponentRef.html @@ -10,4 +10,4 @@
  • modal: ModalRef

    Message API to interact with the loading box.

  • settings: SettingsRef

    Settings API managing settings applied to the component.

  • viewer: WebglViewer.Viewer

    Vim WebGL viewer around which the WebGL component is built.

    -
  • +
    diff --git a/docs/api/types/WebglReact.viw-webgl-react.ContextMenuCustomization.html b/docs/api/types/WebglReact.viw-webgl-react.ContextMenuCustomization.html index 3945658f..5c1f18e6 100644 --- a/docs/api/types/WebglReact.viw-webgl-react.ContextMenuCustomization.html +++ b/docs/api/types/WebglReact.viw-webgl-react.ContextMenuCustomization.html @@ -1,2 +1,2 @@ ContextMenuCustomization | vim-web
    ContextMenuCustomization: (e: ContextMenuElement[]) => ContextMenuElement[]

    A map function that changes the context menu.

    -
    +
    diff --git a/docs/api/types/WebglReact.viw-webgl-react.ContextMenuElement.html b/docs/api/types/WebglReact.viw-webgl-react.ContextMenuElement.html index 70145687..dca855ec 100644 --- a/docs/api/types/WebglReact.viw-webgl-react.ContextMenuElement.html +++ b/docs/api/types/WebglReact.viw-webgl-react.ContextMenuElement.html @@ -1 +1 @@ -ContextMenuElement | vim-web
    +ContextMenuElement | vim-web
    diff --git a/docs/api/types/WebglReact.viw-webgl-react.ControlBarCustomization.html b/docs/api/types/WebglReact.viw-webgl-react.ControlBarCustomization.html index 6bf3076a..f6b58451 100644 --- a/docs/api/types/WebglReact.viw-webgl-react.ControlBarCustomization.html +++ b/docs/api/types/WebglReact.viw-webgl-react.ControlBarCustomization.html @@ -1,2 +1,2 @@ ControlBarCustomization | vim-web
    ControlBarCustomization: (e: IControlBarSection[]) => IControlBarSection[]

    A map function that changes the context menu.

    -
    +
    diff --git a/docs/api/types/WebglViewer.FileType.html b/docs/api/types/WebglViewer.FileType.html index bc1bd6b8..2dce03e1 100644 --- a/docs/api/types/WebglViewer.FileType.html +++ b/docs/api/types/WebglViewer.FileType.html @@ -1 +1 @@ -FileType | vim-web

    Type Alias FileType

    FileType: "vim" | "vimx" | undefined
    +FileType | vim-web

    Type Alias FileType

    FileType: "vim" | "vimx" | undefined
    diff --git a/docs/api/types/WebglViewer.MergeArgs.html b/docs/api/types/WebglViewer.MergeArgs.html index 5f17d073..4406d01a 100644 --- a/docs/api/types/WebglViewer.MergeArgs.html +++ b/docs/api/types/WebglViewer.MergeArgs.html @@ -1 +1 @@ -MergeArgs | vim-web

    Type Alias MergeArgs

    MergeArgs: {
        legacyInstances: number[];
        legacyLoadRooms: boolean;
        matrix: THREE.Matrix4;
        section: MeshSection;
        transparent: boolean;
    }
    +MergeArgs | vim-web

    Type Alias MergeArgs

    MergeArgs: {
        legacyInstances: number[];
        legacyLoadRooms: boolean;
        matrix: THREE.Matrix4;
        section: MeshSection;
        transparent: boolean;
    }
    diff --git a/docs/api/types/WebglViewer.ModelMaterial.html b/docs/api/types/WebglViewer.ModelMaterial.html index 4fa67fd7..3c14b813 100644 --- a/docs/api/types/WebglViewer.ModelMaterial.html +++ b/docs/api/types/WebglViewer.ModelMaterial.html @@ -1 +1 @@ -ModelMaterial | vim-web

    Type Alias ModelMaterial

    ModelMaterial: THREE.Material | THREE.Material[] | undefined
    +ModelMaterial | vim-web

    Type Alias ModelMaterial

    ModelMaterial: THREE.Material | THREE.Material[] | undefined
    diff --git a/docs/api/types/WebglViewer.PartialViewerSettings.html b/docs/api/types/WebglViewer.PartialViewerSettings.html index 0a214c3c..03769f08 100644 --- a/docs/api/types/WebglViewer.PartialViewerSettings.html +++ b/docs/api/types/WebglViewer.PartialViewerSettings.html @@ -1,2 +1,2 @@ PartialViewerSettings | vim-web

    Type Alias PartialViewerSettings

    PartialViewerSettings: RecursivePartial<ViewerSettings>

    Same as the Setting type but any field can be undefined.

    -
    +
    diff --git a/docs/api/types/WebglViewer.PointerMode.html b/docs/api/types/WebglViewer.PointerMode.html index d56fb5f9..2d7d6c6b 100644 --- a/docs/api/types/WebglViewer.PointerMode.html +++ b/docs/api/types/WebglViewer.PointerMode.html @@ -1,2 +1,2 @@ PointerMode | vim-web

    Type Alias PointerMode

    PointerMode: "orbit" | "look" | "pan" | "zoom" | "rect"

    Pointers mode supported by the viewer

    -
    +
    diff --git a/docs/api/types/WebglViewer.RecursivePartial.html b/docs/api/types/WebglViewer.RecursivePartial.html index 9c82bdaa..5dfd7a94 100644 --- a/docs/api/types/WebglViewer.RecursivePartial.html +++ b/docs/api/types/WebglViewer.RecursivePartial.html @@ -1,3 +1,3 @@ RecursivePartial | vim-web

    Type Alias RecursivePartial<T>

    RecursivePartial: {
        [P in keyof T]?: T[P] extends (infer U)[]
            ? RecursivePartial<U>[]
            : T[P] extends object ? RecursivePartial<T[P]> : T[P]
    }

    Type Parameters

    • T
    +

    Type Parameters

    diff --git a/docs/api/types/WebglViewer.RequestSource.html b/docs/api/types/WebglViewer.RequestSource.html index 09a833fd..0646ba07 100644 --- a/docs/api/types/WebglViewer.RequestSource.html +++ b/docs/api/types/WebglViewer.RequestSource.html @@ -1 +1 @@ -RequestSource | vim-web

    Type Alias RequestSource

    RequestSource: {
        buffer?: ArrayBuffer;
        headers?: Record<string, string>;
        url?: string;
    }
    +RequestSource | vim-web

    Type Alias RequestSource

    RequestSource: {
        buffer?: ArrayBuffer;
        headers?: Record<string, string>;
        url?: string;
    }
    diff --git a/docs/api/types/WebglViewer.SelectableObject.html b/docs/api/types/WebglViewer.SelectableObject.html index a21f0a93..e47357aa 100644 --- a/docs/api/types/WebglViewer.SelectableObject.html +++ b/docs/api/types/WebglViewer.SelectableObject.html @@ -1 +1 @@ -SelectableObject | vim-web

    Type Alias SelectableObject

    SelectableObject: Object3D | GizmoMarker
    +SelectableObject | vim-web

    Type Alias SelectableObject

    SelectableObject: Object3D | GizmoMarker
    diff --git a/docs/api/types/WebglViewer.TextureEncoding.html b/docs/api/types/WebglViewer.TextureEncoding.html index 2d3c0d92..4b5ab00b 100644 --- a/docs/api/types/WebglViewer.TextureEncoding.html +++ b/docs/api/types/WebglViewer.TextureEncoding.html @@ -1 +1 @@ -TextureEncoding | vim-web

    Type Alias TextureEncoding

    TextureEncoding: "url" | "base64" | undefined
    +TextureEncoding | vim-web

    Type Alias TextureEncoding

    TextureEncoding: "url" | "base64" | undefined
    diff --git a/docs/api/types/WebglViewer.Transparency.Mode.html b/docs/api/types/WebglViewer.Transparency.Mode.html index 9bd8185d..00f2f6e6 100644 --- a/docs/api/types/WebglViewer.Transparency.Mode.html +++ b/docs/api/types/WebglViewer.Transparency.Mode.html @@ -1,2 +1,2 @@ Mode | vim-web
    Mode: "opaqueOnly" | "transparentOnly" | "allAsOpaque" | "all"

    Determines how to draw (or not) transparent and opaque objects

    -
    +
    diff --git a/docs/api/types/WebglViewer.ViewerSettings.html b/docs/api/types/WebglViewer.ViewerSettings.html index 98fe5f2d..b775ac75 100644 --- a/docs/api/types/WebglViewer.ViewerSettings.html +++ b/docs/api/types/WebglViewer.ViewerSettings.html @@ -96,4 +96,4 @@ Default: THREE.Color(153, 204, 255)

  • sunlights: {
        color: THREE.Color;
        followCamera: boolean;
        intensity: number;
        position: THREE.Vector3;
    }[]

    Sunlight (directional light) options Two Blue-Green lights at odd angles. See defaultViewerSettings.

    -
  • +
    diff --git a/docs/api/types/WebglViewer.VimPartialSettings.html b/docs/api/types/WebglViewer.VimPartialSettings.html index c915f815..c5b4551b 100644 --- a/docs/api/types/WebglViewer.VimPartialSettings.html +++ b/docs/api/types/WebglViewer.VimPartialSettings.html @@ -1,2 +1,2 @@ VimPartialSettings | vim-web

    Type Alias VimPartialSettings

    VimPartialSettings: Partial<VimSettings>

    Represents a partial configuration of settings for a vim object.

    -
    +
    diff --git a/docs/api/types/WebglViewer.VimSettings.html b/docs/api/types/WebglViewer.VimSettings.html index a704c064..b2173eb3 100644 --- a/docs/api/types/WebglViewer.VimSettings.html +++ b/docs/api/types/WebglViewer.VimSettings.html @@ -9,4 +9,4 @@
  • scale: number

    The scaling factor applied to the vim object.

  • transparency: Mode

    Determines whether objects are drawn based on their transparency.

  • verboseHttp: boolean

    Set to true to enable verbose HTTP logging.

    -
  • +
    diff --git a/docs/api/types/WebglViewer.VimSource.html b/docs/api/types/WebglViewer.VimSource.html index 714d0fb8..9ab951bf 100644 --- a/docs/api/types/WebglViewer.VimSource.html +++ b/docs/api/types/WebglViewer.VimSource.html @@ -1 +1 @@ -VimSource | vim-web

    Type Alias VimSource

    VimSource: BFastSource
    +VimSource | vim-web

    Type Alias VimSource

    VimSource: BFastSource
    diff --git a/docs/api/types/icons.IconOptions.html b/docs/api/types/icons.IconOptions.html index 5421a26f..da13e1d0 100644 --- a/docs/api/types/icons.IconOptions.html +++ b/docs/api/types/icons.IconOptions.html @@ -1,2 +1,2 @@ IconOptions | vim-web

    Type Alias IconOptions

    IconOptions: {
        className?: string;
        fill: string;
        height: number | string;
        width: number | string;
    }

    Common Icon Options.

    -
    +
    diff --git a/docs/api/variables/ErrorStyle.vcColorLink.html b/docs/api/variables/ErrorStyle.vcColorLink.html index 2dac7bee..8bf890cc 100644 --- a/docs/api/variables/ErrorStyle.vcColorLink.html +++ b/docs/api/variables/ErrorStyle.vcColorLink.html @@ -1 +1 @@ -vcColorLink | vim-web

    Variable vcColorLinkConst

    vcColorLink: "vc-text-[#0590CC]" = 'vc-text-[#0590CC]'
    +vcColorLink | vim-web

    Variable vcColorLinkConst

    vcColorLink: "vc-text-[#0590CC]" = 'vc-text-[#0590CC]'
    diff --git a/docs/api/variables/ErrorStyle.vcColorPrimary.html b/docs/api/variables/ErrorStyle.vcColorPrimary.html index 0f0fadb3..5c5c201a 100644 --- a/docs/api/variables/ErrorStyle.vcColorPrimary.html +++ b/docs/api/variables/ErrorStyle.vcColorPrimary.html @@ -1 +1 @@ -vcColorPrimary | vim-web

    Variable vcColorPrimaryConst

    vcColorPrimary: "vc-text-[#212733]" = 'vc-text-[#212733]'
    +vcColorPrimary | vim-web

    Variable vcColorPrimaryConst

    vcColorPrimary: "vc-text-[#212733]" = 'vc-text-[#212733]'
    diff --git a/docs/api/variables/ErrorStyle.vcColorSecondary.html b/docs/api/variables/ErrorStyle.vcColorSecondary.html index c168b606..007fa131 100644 --- a/docs/api/variables/ErrorStyle.vcColorSecondary.html +++ b/docs/api/variables/ErrorStyle.vcColorSecondary.html @@ -1 +1 @@ -vcColorSecondary | vim-web

    Variable vcColorSecondaryConst

    vcColorSecondary: "vc-text-[#787C83]" = 'vc-text-[#787C83]'
    +vcColorSecondary | vim-web

    Variable vcColorSecondaryConst

    vcColorSecondary: "vc-text-[#787C83]" = 'vc-text-[#787C83]'
    diff --git a/docs/api/variables/ErrorStyle.vcLabel.html b/docs/api/variables/ErrorStyle.vcLabel.html index e86c7edf..c604c4e4 100644 --- a/docs/api/variables/ErrorStyle.vcLabel.html +++ b/docs/api/variables/ErrorStyle.vcLabel.html @@ -1 +1 @@ -vcLabel | vim-web

    Variable vcLabelConst

    vcLabel: "vc-text-[#3F444F]" = 'vc-text-[#3F444F]'
    +vcLabel | vim-web

    Variable vcLabelConst

    vcLabel: "vc-text-[#3F444F]" = 'vc-text-[#3F444F]'
    diff --git a/docs/api/variables/ErrorStyle.vcLink.html b/docs/api/variables/ErrorStyle.vcLink.html index 734042a9..6b64d61c 100644 --- a/docs/api/variables/ErrorStyle.vcLink.html +++ b/docs/api/variables/ErrorStyle.vcLink.html @@ -1 +1 @@ -vcLink | vim-web

    Variable vcLinkConst

    vcLink: "vc-text-[#0590CC] vc-underline" = ...
    +vcLink | vim-web

    Variable vcLinkConst

    vcLink: "vc-text-[#0590CC] vc-underline" = ...
    diff --git a/docs/api/variables/ErrorStyle.vcRoboto.html b/docs/api/variables/ErrorStyle.vcRoboto.html index d6cb6a80..06ae0dae 100644 --- a/docs/api/variables/ErrorStyle.vcRoboto.html +++ b/docs/api/variables/ErrorStyle.vcRoboto.html @@ -1 +1 @@ -vcRoboto | vim-web

    Variable vcRobotoConst

    vcRoboto: "vc-font-['Roboto',sans-serif]" = 'vc-font-[\'Roboto\',sans-serif]'
    +vcRoboto | vim-web

    Variable vcRobotoConst

    vcRoboto: "vc-font-['Roboto',sans-serif]" = 'vc-font-[\'Roboto\',sans-serif]'
    diff --git a/docs/api/variables/UltraViewer.INVALID_HANDLE.html b/docs/api/variables/UltraViewer.INVALID_HANDLE.html index f944f6e2..f59dbd6f 100644 --- a/docs/api/variables/UltraViewer.INVALID_HANDLE.html +++ b/docs/api/variables/UltraViewer.INVALID_HANDLE.html @@ -1 +1 @@ -INVALID_HANDLE | vim-web

    Variable INVALID_HANDLEConst

    INVALID_HANDLE: 4294967295 = 0xffffffff
    +INVALID_HANDLE | vim-web

    Variable INVALID_HANDLEConst

    INVALID_HANDLE: 4294967295 = 0xffffffff
    diff --git a/docs/api/variables/Urls.support.html b/docs/api/variables/Urls.support.html index a3f1db69..5f0e2732 100644 --- a/docs/api/variables/Urls.support.html +++ b/docs/api/variables/Urls.support.html @@ -1 +1 @@ -support | vim-web

    Variable supportConst

    support: "https://docs.vimaec.com" = 'https://docs.vimaec.com'
    +support | vim-web

    Variable supportConst

    support: "https://docs.vimaec.com" = 'https://docs.vimaec.com'
    diff --git a/docs/api/variables/Urls.supportControls.html b/docs/api/variables/Urls.supportControls.html index bb1a676a..ab9d1fda 100644 --- a/docs/api/variables/Urls.supportControls.html +++ b/docs/api/variables/Urls.supportControls.html @@ -1 +1 @@ -supportControls | vim-web

    Variable supportControlsConst

    supportControls: "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide" = 'https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide'
    +supportControls | vim-web

    Variable supportControlsConst

    supportControls: "https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide" = 'https://docs.vimaec.com/docs/vim-cloud/webgl-navigation-and-controls-guide'
    diff --git a/docs/api/variables/WebglReact.defaultSettings.html b/docs/api/variables/WebglReact.defaultSettings.html index 012ebe0c..626745b2 100644 --- a/docs/api/variables/WebglReact.defaultSettings.html +++ b/docs/api/variables/WebglReact.defaultSettings.html @@ -1,2 +1,2 @@ defaultSettings | vim-web

    Variable defaultSettingsConst

    defaultSettings: Settings = ...

    Default settings configuration for the Vim component

    -
    +
    diff --git a/docs/api/variables/WebglReact.viw-webgl-react.contextMenuElementIds.html b/docs/api/variables/WebglReact.viw-webgl-react.contextMenuElementIds.html index be27c61a..ed603f2f 100644 --- a/docs/api/variables/WebglReact.viw-webgl-react.contextMenuElementIds.html +++ b/docs/api/variables/WebglReact.viw-webgl-react.contextMenuElementIds.html @@ -1,2 +1,2 @@ contextMenuElementIds | vim-web
    contextMenuElementIds: {
        clearSelection: string;
        deleteMeasurement: string;
        dividerCamera: string;
        dividerMeasure: string;
        dividerSection: string;
        dividerSelection: string;
        fitSectionToSelection: string;
        hideObject: string;
        ignoreSection: string;
        isolateSelection: string;
        resetCamera: string;
        resetSection: string;
        selectSimilar: string;
        showAll: string;
        showControls: string;
        showObject: string;
        zoomToFit: string;
    } = ...

    Current list of context menu item ids. Used to find and replace items when customizing the context menu.

    -
    +
    diff --git a/docs/api/variables/WebglReact.viw-webgl-react.elementIds.html b/docs/api/variables/WebglReact.viw-webgl-react.elementIds.html index a045c61d..0559a210 100644 --- a/docs/api/variables/WebglReact.viw-webgl-react.elementIds.html +++ b/docs/api/variables/WebglReact.viw-webgl-react.elementIds.html @@ -1 +1 @@ -elementIds | vim-web
    elementIds: {
        buttonCameraLook: string;
        buttonCameraOrbit: string;
        buttonCameraPan: string;
        buttonCameraZoom: string;
        buttonCameraZoomToFit: string;
        buttonCameraZoomWindow: string;
        buttonHelp: string;
        buttonMaximize: string;
        buttonMeasure: string;
        buttonMeasureDelete: string;
        buttonMeasureDone: string;
        buttonProjectInspector: string;
        buttonSectionBox: string;
        buttonSectionBoxClip: string;
        buttonSectionBoxDone: string;
        buttonSectionBoxIgnore: string;
        buttonSectionBoxReset: string;
        buttonSectionBoxShrinkToSelection: string;
        buttonSettings: string;
        buttonToggleIsolation: string;
        sectionCamera: string;
        sectionMeasure: string;
        sectionSectionBox: string;
        sectionSettings: string;
        sectionTools: string;
    } = ...
    +elementIds | vim-web
    elementIds: {
        buttonCameraLook: string;
        buttonCameraOrbit: string;
        buttonCameraPan: string;
        buttonCameraZoom: string;
        buttonCameraZoomToFit: string;
        buttonCameraZoomWindow: string;
        buttonHelp: string;
        buttonMaximize: string;
        buttonMeasure: string;
        buttonMeasureDelete: string;
        buttonMeasureDone: string;
        buttonProjectInspector: string;
        buttonSectionBox: string;
        buttonSectionBoxClip: string;
        buttonSectionBoxDone: string;
        buttonSectionBoxIgnore: string;
        buttonSectionBoxReset: string;
        buttonSectionBoxShrinkToSelection: string;
        buttonSettings: string;
        buttonToggleIsolation: string;
        sectionCamera: string;
        sectionMeasure: string;
        sectionSectionBox: string;
        sectionSettings: string;
        sectionTools: string;
    } = ...
    diff --git a/docs/api/variables/WebglReact.viw-webgl-react.sectionBlueStyle.html b/docs/api/variables/WebglReact.viw-webgl-react.sectionBlueStyle.html index 2818b1a2..84c0c306 100644 --- a/docs/api/variables/WebglReact.viw-webgl-react.sectionBlueStyle.html +++ b/docs/api/variables/WebglReact.viw-webgl-react.sectionBlueStyle.html @@ -1 +1 @@ -sectionBlueStyle | vim-web
    +sectionBlueStyle | vim-web
    diff --git a/docs/api/variables/WebglReact.viw-webgl-react.sectionDefaultStyle.html b/docs/api/variables/WebglReact.viw-webgl-react.sectionDefaultStyle.html index ded0b07b..bfd65f13 100644 --- a/docs/api/variables/WebglReact.viw-webgl-react.sectionDefaultStyle.html +++ b/docs/api/variables/WebglReact.viw-webgl-react.sectionDefaultStyle.html @@ -1 +1 @@ -sectionDefaultStyle | vim-web
    sectionDefaultStyle: string = ...
    +sectionDefaultStyle | vim-web
    sectionDefaultStyle: string = ...
    diff --git a/docs/api/variables/WebglViewer.KEYS.html b/docs/api/variables/WebglViewer.KEYS.html index 363d5eb7..c85b88b4 100644 --- a/docs/api/variables/WebglViewer.KEYS.html +++ b/docs/api/variables/WebglViewer.KEYS.html @@ -1,2 +1,2 @@ KEYS | vim-web

    Variable KEYSConst

    KEYS: {
        KEY_0: number;
        KEY_1: number;
        KEY_2: number;
        KEY_3: number;
        KEY_4: number;
        KEY_5: number;
        KEY_6: number;
        KEY_7: number;
        KEY_8: number;
        KEY_9: number;
        KEY_A: number;
        KEY_ADD: number;
        KEY_ALT: number;
        KEY_B: number;
        KEY_BACKSPACE: number;
        KEY_C: number;
        KEY_CTRL: number;
        KEY_D: number;
        KEY_DECIMAL: number;
        KEY_DELETE: number;
        KEY_DIVIDE: number;
        KEY_DOWN: number;
        KEY_E: number;
        KEY_END: number;
        KEY_ENTER: number;
        KEY_ESCAPE: number;
        KEY_F: number;
        KEY_F1: number;
        KEY_F10: number;
        KEY_F11: number;
        KEY_F12: number;
        KEY_F2: number;
        KEY_F3: number;
        KEY_F4: number;
        KEY_F5: number;
        KEY_F6: number;
        KEY_F7: number;
        KEY_F8: number;
        KEY_F9: number;
        KEY_G: number;
        KEY_H: number;
        KEY_HOME: number;
        KEY_I: number;
        KEY_INSERT: number;
        KEY_J: number;
        KEY_K: number;
        KEY_L: number;
        KEY_LEFT: number;
        KEY_M: number;
        KEY_MULTIPLY: number;
        KEY_N: number;
        KEY_NUMPAD0: number;
        KEY_NUMPAD1: number;
        KEY_NUMPAD2: number;
        KEY_NUMPAD3: number;
        KEY_NUMPAD4: number;
        KEY_NUMPAD5: number;
        KEY_NUMPAD6: number;
        KEY_NUMPAD7: number;
        KEY_NUMPAD8: number;
        KEY_NUMPAD9: number;
        KEY_O: number;
        KEY_OEM_MINUS: number;
        KEY_OEM_PLUS: number;
        KEY_P: number;
        KEY_Q: number;
        KEY_R: number;
        KEY_RIGHT: number;
        KEY_S: number;
        KEY_SEPARATOR: number;
        KEY_SHIFT: number;
        KEY_SPACE: number;
        KEY_SUBTRACT: number;
        KEY_T: number;
        KEY_TAB: number;
        KEY_U: number;
        KEY_UP: number;
        KEY_V: number;
        KEY_W: number;
        KEY_X: number;
        KEY_Y: number;
        KEY_Z: number;
    } = ...

    Key values for viewer

    -
    +
    diff --git a/docs/api/variables/WebglViewer.defaultConfig.html b/docs/api/variables/WebglViewer.defaultConfig.html index eae5b8d2..1d9e8b3c 100644 --- a/docs/api/variables/WebglViewer.defaultConfig.html +++ b/docs/api/variables/WebglViewer.defaultConfig.html @@ -1,2 +1,2 @@ defaultConfig | vim-web

    Variable defaultConfigConst

    defaultConfig: VimSettings = ...

    Default configuration settings for a vim object.

    -
    +
    diff --git a/docs/api/variables/WebglViewer.defaultViewerSettings.html b/docs/api/variables/WebglViewer.defaultViewerSettings.html index 0d7eaf2f..33d12bd8 100644 --- a/docs/api/variables/WebglViewer.defaultViewerSettings.html +++ b/docs/api/variables/WebglViewer.defaultViewerSettings.html @@ -1,2 +1,2 @@ defaultViewerSettings | vim-web

    Variable defaultViewerSettingsConst

    defaultViewerSettings: ViewerSettings = ...

    Defines the default values for the VIM Viewer settings.

    -
    +
    diff --git a/docs/assets/index-DmikZzEc.js b/docs/assets/index-CEyQgIDL.js similarity index 91% rename from docs/assets/index-DmikZzEc.js rename to docs/assets/index-CEyQgIDL.js index ae80f0d1..656733d2 100644 --- a/docs/assets/index-DmikZzEc.js +++ b/docs/assets/index-CEyQgIDL.js @@ -1,4 +1,4 @@ -var G2=Object.defineProperty;var j2=(i,e,t)=>e in i?G2(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var E=(i,e,t)=>j2(i,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function Xa(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var Vm={exports:{}},nc={},zm={exports:{}},tn={};/** +var G2=Object.defineProperty;var j2=(i,e,t)=>e in i?G2(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t;var E=(i,e,t)=>j2(i,typeof e!="symbol"?e+"":e,t);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const c of s.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&n(c)}).observe(document,{childList:!0,subtree:!0});function t(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function n(r){if(r.ep)return;r.ep=!0;const s=t(r);fetch(r.href,s)}})();function Xa(i){return i&&i.__esModule&&Object.prototype.hasOwnProperty.call(i,"default")?i.default:i}var zm={exports:{}},nc={},Hm={exports:{}},tn={};/** * @license React * react.production.min.js * @@ -6,7 +6,7 @@ var G2=Object.defineProperty;var j2=(i,e,t)=>e in i?G2(i,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var nw;function W2(){if(nw)return tn;nw=1;var i=Symbol.for("react.element"),e=Symbol.for("react.portal"),t=Symbol.for("react.fragment"),n=Symbol.for("react.strict_mode"),r=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),c=Symbol.for("react.context"),u=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),m=Symbol.for("react.memo"),y=Symbol.for("react.lazy"),x=Symbol.iterator;function b(W){return W===null||typeof W!="object"?null:(W=x&&W[x]||W["@@iterator"],typeof W=="function"?W:null)}var w={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},M=Object.assign,T={};function S(W,ne,We){this.props=W,this.context=ne,this.refs=T,this.updater=We||w}S.prototype.isReactComponent={},S.prototype.setState=function(W,ne){if(typeof W!="object"&&typeof W!="function"&&W!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,W,ne,"setState")},S.prototype.forceUpdate=function(W){this.updater.enqueueForceUpdate(this,W,"forceUpdate")};function _(){}_.prototype=S.prototype;function D(W,ne,We){this.props=W,this.context=ne,this.refs=T,this.updater=We||w}var P=D.prototype=new _;P.constructor=D,M(P,S.prototype),P.isPureReactComponent=!0;var R=Array.isArray,F=Object.prototype.hasOwnProperty,L={current:null},G={key:!0,ref:!0,__self:!0,__source:!0};function Z(W,ne,We){var ae,ce={},Fe=null,xe=null;if(ne!=null)for(ae in ne.ref!==void 0&&(xe=ne.ref),ne.key!==void 0&&(Fe=""+ne.key),ne)F.call(ne,ae)&&!G.hasOwnProperty(ae)&&(ce[ae]=ne[ae]);var Ye=arguments.length-2;if(Ye===1)ce.children=We;else if(1e in i?G2(i,e,{enumerable:!0,config * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. - */var rw;function X2(){if(rw)return nc;rw=1;var i=zv(),e=Symbol.for("react.element"),t=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,r=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(u,d,m){var y,x={},b=null,w=null;m!==void 0&&(b=""+m),d.key!==void 0&&(b=""+d.key),d.ref!==void 0&&(w=d.ref);for(y in d)n.call(d,y)&&!s.hasOwnProperty(y)&&(x[y]=d[y]);if(u&&u.defaultProps)for(y in d=u.defaultProps,d)x[y]===void 0&&(x[y]=d[y]);return{$$typeof:e,type:u,key:b,ref:w,props:x,_owner:r.current}}return nc.Fragment=t,nc.jsx=c,nc.jsxs=c,nc}var sw;function Y2(){return sw||(sw=1,Vm.exports=X2()),Vm.exports}var H=Y2(),U=zv();const It=Xa(U);var ic={},aw;function q2(){if(aw)return ic;aw=1,Object.defineProperty(ic,"__esModule",{value:!0}),ic.parse=c,ic.serialize=m;const i=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,e=/^[\u0021-\u003A\u003C-\u007E]*$/,t=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,n=/^[\u0020-\u003A\u003D-\u007E]*$/,r=Object.prototype.toString,s=(()=>{const b=function(){};return b.prototype=Object.create(null),b})();function c(b,w){const M=new s,T=b.length;if(T<2)return M;const S=(w==null?void 0:w.decode)||y;let _=0;do{const D=b.indexOf("=",_);if(D===-1)break;const P=b.indexOf(";",_),R=P===-1?T:P;if(D>R){_=b.lastIndexOf(";",D-1)+1;continue}const F=u(b,_,D),L=d(b,D,F),G=b.slice(F,L);if(M[G]===void 0){let Z=u(b,D+1,R),k=d(b,R,Z);const O=S(b.slice(Z,k));M[G]=O}_=R+1}while(_M;){const T=b.charCodeAt(--w);if(T!==32&&T!==9)return w+1}return M}function m(b,w,M){const T=(M==null?void 0:M.encode)||encodeURIComponent;if(!i.test(b))throw new TypeError(`argument name is invalid: ${b}`);const S=T(w);if(!e.test(S))throw new TypeError(`argument val is invalid: ${w}`);let _=b+"="+S;if(!M)return _;if(M.maxAge!==void 0){if(!Number.isInteger(M.maxAge))throw new TypeError(`option maxAge is invalid: ${M.maxAge}`);_+="; Max-Age="+M.maxAge}if(M.domain){if(!t.test(M.domain))throw new TypeError(`option domain is invalid: ${M.domain}`);_+="; Domain="+M.domain}if(M.path){if(!n.test(M.path))throw new TypeError(`option path is invalid: ${M.path}`);_+="; Path="+M.path}if(M.expires){if(!x(M.expires)||!Number.isFinite(M.expires.valueOf()))throw new TypeError(`option expires is invalid: ${M.expires}`);_+="; Expires="+M.expires.toUTCString()}if(M.httpOnly&&(_+="; HttpOnly"),M.secure&&(_+="; Secure"),M.partitioned&&(_+="; Partitioned"),M.priority)switch(typeof M.priority=="string"?M.priority.toLowerCase():void 0){case"low":_+="; Priority=Low";break;case"medium":_+="; Priority=Medium";break;case"high":_+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${M.priority}`)}if(M.sameSite)switch(typeof M.sameSite=="string"?M.sameSite.toLowerCase():M.sameSite){case!0:case"strict":_+="; SameSite=Strict";break;case"lax":_+="; SameSite=Lax";break;case"none":_+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${M.sameSite}`)}return _}function y(b){if(b.indexOf("%")===-1)return b;try{return decodeURIComponent(b)}catch{return b}}function x(b){return r.call(b)==="[object Date]"}return ic}q2();/** + */var rw;function X2(){if(rw)return nc;rw=1;var i=Hv(),e=Symbol.for("react.element"),t=Symbol.for("react.fragment"),n=Object.prototype.hasOwnProperty,r=i.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,s={key:!0,ref:!0,__self:!0,__source:!0};function c(u,d,m){var y,x={},b=null,w=null;m!==void 0&&(b=""+m),d.key!==void 0&&(b=""+d.key),d.ref!==void 0&&(w=d.ref);for(y in d)n.call(d,y)&&!s.hasOwnProperty(y)&&(x[y]=d[y]);if(u&&u.defaultProps)for(y in d=u.defaultProps,d)x[y]===void 0&&(x[y]=d[y]);return{$$typeof:e,type:u,key:b,ref:w,props:x,_owner:r.current}}return nc.Fragment=t,nc.jsx=c,nc.jsxs=c,nc}var sw;function Y2(){return sw||(sw=1,zm.exports=X2()),zm.exports}var H=Y2(),B=Hv();const It=Xa(B);var ic={},aw;function q2(){if(aw)return ic;aw=1,Object.defineProperty(ic,"__esModule",{value:!0}),ic.parse=c,ic.serialize=m;const i=/^[\u0021-\u003A\u003C\u003E-\u007E]+$/,e=/^[\u0021-\u003A\u003C-\u007E]*$/,t=/^([.]?[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)([.][a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?)*$/i,n=/^[\u0020-\u003A\u003D-\u007E]*$/,r=Object.prototype.toString,s=(()=>{const b=function(){};return b.prototype=Object.create(null),b})();function c(b,w){const M=new s,T=b.length;if(T<2)return M;const S=(w==null?void 0:w.decode)||y;let _=0;do{const D=b.indexOf("=",_);if(D===-1)break;const P=b.indexOf(";",_),R=P===-1?T:P;if(D>R){_=b.lastIndexOf(";",D-1)+1;continue}const F=u(b,_,D),L=d(b,D,F),G=b.slice(F,L);if(M[G]===void 0){let Z=u(b,D+1,R),k=d(b,R,Z);const O=S(b.slice(Z,k));M[G]=O}_=R+1}while(_M;){const T=b.charCodeAt(--w);if(T!==32&&T!==9)return w+1}return M}function m(b,w,M){const T=(M==null?void 0:M.encode)||encodeURIComponent;if(!i.test(b))throw new TypeError(`argument name is invalid: ${b}`);const S=T(w);if(!e.test(S))throw new TypeError(`argument val is invalid: ${w}`);let _=b+"="+S;if(!M)return _;if(M.maxAge!==void 0){if(!Number.isInteger(M.maxAge))throw new TypeError(`option maxAge is invalid: ${M.maxAge}`);_+="; Max-Age="+M.maxAge}if(M.domain){if(!t.test(M.domain))throw new TypeError(`option domain is invalid: ${M.domain}`);_+="; Domain="+M.domain}if(M.path){if(!n.test(M.path))throw new TypeError(`option path is invalid: ${M.path}`);_+="; Path="+M.path}if(M.expires){if(!x(M.expires)||!Number.isFinite(M.expires.valueOf()))throw new TypeError(`option expires is invalid: ${M.expires}`);_+="; Expires="+M.expires.toUTCString()}if(M.httpOnly&&(_+="; HttpOnly"),M.secure&&(_+="; Secure"),M.partitioned&&(_+="; Partitioned"),M.priority)switch(typeof M.priority=="string"?M.priority.toLowerCase():void 0){case"low":_+="; Priority=Low";break;case"medium":_+="; Priority=Medium";break;case"high":_+="; Priority=High";break;default:throw new TypeError(`option priority is invalid: ${M.priority}`)}if(M.sameSite)switch(typeof M.sameSite=="string"?M.sameSite.toLowerCase():M.sameSite){case!0:case"strict":_+="; SameSite=Strict";break;case"lax":_+="; SameSite=Lax";break;case"none":_+="; SameSite=None";break;default:throw new TypeError(`option sameSite is invalid: ${M.sameSite}`)}return _}function y(b){if(b.indexOf("%")===-1)return b;try{return decodeURIComponent(b)}catch{return b}}function x(b){return r.call(b)==="[object Date]"}return ic}q2();/** * react-router v7.0.2 * * Copyright (c) Remix Software Inc. @@ -23,9 +23,9 @@ var G2=Object.defineProperty;var j2=(i,e,t)=>e in i?G2(i,e,{enumerable:!0,config * LICENSE.md file in the root directory of this source tree. * * @license MIT - */var ow="popstate";function Z2(i={}){function e(n,r){let{pathname:s,search:c,hash:u}=n.location;return hg("",{pathname:s,search:c,hash:u},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function t(n,r){return typeof r=="string"?r:Jc(r)}return K2(e,t,null,i)}function In(i,e){if(i===!1||i===null||typeof i>"u")throw new Error(e)}function Rr(i,e){if(!i){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function $2(){return Math.random().toString(36).substring(2,10)}function lw(i,e){return{usr:i.state,key:i.key,idx:e}}function hg(i,e,t=null,n){return{pathname:typeof i=="string"?i:i.pathname,search:"",hash:"",...typeof e=="string"?hl(e):e,state:t,key:e&&e.key||n||$2()}}function Jc({pathname:i="/",search:e="",hash:t=""}){return e&&e!=="?"&&(i+=e.charAt(0)==="?"?e:"?"+e),t&&t!=="#"&&(i+=t.charAt(0)==="#"?t:"#"+t),i}function hl(i){let e={};if(i){let t=i.indexOf("#");t>=0&&(e.hash=i.substring(t),i=i.substring(0,t));let n=i.indexOf("?");n>=0&&(e.search=i.substring(n),i=i.substring(0,n)),i&&(e.pathname=i)}return e}function K2(i,e,t,n={}){let{window:r=document.defaultView,v5Compat:s=!1}=n,c=r.history,u="POP",d=null,m=y();m==null&&(m=0,c.replaceState({...c.state,idx:m},""));function y(){return(c.state||{idx:null}).idx}function x(){u="POP";let S=y(),_=S==null?null:S-m;m=S,d&&d({action:u,location:T.location,delta:_})}function b(S,_){u="PUSH";let D=hg(T.location,S,_);m=y()+1;let P=lw(D,m),R=T.createHref(D);try{c.pushState(P,"",R)}catch(F){if(F instanceof DOMException&&F.name==="DataCloneError")throw F;r.location.assign(R)}s&&d&&d({action:u,location:T.location,delta:1})}function w(S,_){u="REPLACE";let D=hg(T.location,S,_);m=y();let P=lw(D,m),R=T.createHref(D);c.replaceState(P,"",R),s&&d&&d({action:u,location:T.location,delta:0})}function M(S){let _=r.location.origin!=="null"?r.location.origin:r.location.href,D=typeof S=="string"?S:Jc(S);return D=D.replace(/ $/,"%20"),In(_,`No window.location.(origin|href) available to create URL for href: ${D}`),new URL(D,_)}let T={get action(){return u},get location(){return i(r,c)},listen(S){if(d)throw new Error("A history only accepts one active listener");return r.addEventListener(ow,x),d=S,()=>{r.removeEventListener(ow,x),d=null}},createHref(S){return e(r,S)},createURL:M,encodeLocation(S){let _=M(S);return{pathname:_.pathname,search:_.search,hash:_.hash}},push:b,replace:w,go(S){return c.go(S)}};return T}function rS(i,e,t="/"){return Q2(i,e,t,!1)}function Q2(i,e,t,n){let r=typeof e=="string"?hl(e):e,s=ta(r.pathname||"/",t);if(s==null)return null;let c=sS(i);J2(c);let u=null;for(let d=0;u==null&&d{let d={relativePath:u===void 0?s.path||"":u,caseSensitive:s.caseSensitive===!0,childrenIndex:c,route:s};d.relativePath.startsWith("/")&&(In(d.relativePath.startsWith(n),`Absolute route path "${d.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(n.length));let m=gs([n,d.relativePath]),y=t.concat(d);s.children&&s.children.length>0&&(In(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),sS(s.children,e,y,m)),!(s.path==null&&!s.index)&&e.push({path:m,score:aC(m,s.index),routesMeta:y})};return i.forEach((s,c)=>{var u;if(s.path===""||!((u=s.path)!=null&&u.includes("?")))r(s,c);else for(let d of aS(s.path))r(s,c,d)}),e}function aS(i){let e=i.split("/");if(e.length===0)return[];let[t,...n]=e,r=t.endsWith("?"),s=t.replace(/\?$/,"");if(n.length===0)return r?[s,""]:[s];let c=aS(n.join("/")),u=[];return u.push(...c.map(d=>d===""?s:[s,d].join("/"))),r&&u.push(...c),u.map(d=>i.startsWith("/")&&d===""?"/":d)}function J2(i){i.sort((e,t)=>e.score!==t.score?t.score-e.score:oC(e.routesMeta.map(n=>n.childrenIndex),t.routesMeta.map(n=>n.childrenIndex)))}var eC=/^:[\w-]+$/,tC=3,nC=2,iC=1,rC=10,sC=-2,cw=i=>i==="*";function aC(i,e){let t=i.split("/"),n=t.length;return t.some(cw)&&(n+=sC),e&&(n+=nC),t.filter(r=>!cw(r)).reduce((r,s)=>r+(eC.test(s)?tC:s===""?iC:rC),n)}function oC(i,e){return i.length===e.length&&i.slice(0,-1).every((n,r)=>n===e[r])?i[i.length-1]-e[e.length-1]:0}function lC(i,e,t=!1){let{routesMeta:n}=i,r={},s="/",c=[];for(let u=0;u{if(y==="*"){let M=u[b]||"";c=s.slice(0,s.length-M.length).replace(/(.)\/+$/,"$1")}const w=u[b];return x&&!w?m[y]=void 0:m[y]=(w||"").replace(/%2F/g,"/"),m},{}),pathname:s,pathnameBase:c,pattern:i}}function cC(i,e=!1,t=!0){Rr(i==="*"||!i.endsWith("*")||i.endsWith("/*"),`Route path "${i}" will be treated as if it were "${i.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${i.replace(/\*$/,"/*")}".`);let n=[],r="^"+i.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,u,d)=>(n.push({paramName:u,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return i.endsWith("*")?(n.push({paramName:"*"}),r+=i==="*"||i==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?r+="\\/*$":i!==""&&i!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),n]}function uC(i){try{return i.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Rr(!1,`The URL path "${i}" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),i}}function ta(i,e){if(e==="/")return i;if(!i.toLowerCase().startsWith(e.toLowerCase()))return null;let t=e.endsWith("/")?e.length-1:e.length,n=i.charAt(t);return n&&n!=="/"?null:i.slice(t)||"/"}function hC(i,e="/"){let{pathname:t,search:n="",hash:r=""}=typeof i=="string"?hl(i):i;return{pathname:t?t.startsWith("/")?t:dC(t,e):e,search:pC(n),hash:gC(r)}}function dC(i,e){let t=e.replace(/\/+$/,"").split("/");return i.split("/").forEach(r=>{r===".."?t.length>1&&t.pop():r!=="."&&t.push(r)}),t.length>1?t.join("/"):"/"}function Hm(i,e,t,n){return`Cannot include a '${i}' character in a manually specified \`to.${e}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${t}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function fC(i){return i.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Hv(i){let e=fC(i);return e.map((t,n)=>n===e.length-1?t.pathname:t.pathnameBase)}function Gv(i,e,t,n=!1){let r;typeof i=="string"?r=hl(i):(r={...i},In(!r.pathname||!r.pathname.includes("?"),Hm("?","pathname","search",r)),In(!r.pathname||!r.pathname.includes("#"),Hm("#","pathname","hash",r)),In(!r.search||!r.search.includes("#"),Hm("#","search","hash",r)));let s=i===""||r.pathname==="",c=s?"/":r.pathname,u;if(c==null)u=t;else{let x=e.length-1;if(!n&&c.startsWith("..")){let b=c.split("/");for(;b[0]==="..";)b.shift(),x-=1;r.pathname=b.join("/")}u=x>=0?e[x]:"/"}let d=hC(r,u),m=c&&c!=="/"&&c.endsWith("/"),y=(s||c===".")&&t.endsWith("/");return!d.pathname.endsWith("/")&&(m||y)&&(d.pathname+="/"),d}var gs=i=>i.join("/").replace(/\/\/+/g,"/"),mC=i=>i.replace(/\/+$/,"").replace(/^\/*/,"/"),pC=i=>!i||i==="?"?"":i.startsWith("?")?i:"?"+i,gC=i=>!i||i==="#"?"":i.startsWith("#")?i:"#"+i;function vC(i){return i!=null&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.internal=="boolean"&&"data"in i}var oS=["POST","PUT","PATCH","DELETE"];new Set(oS);var yC=["GET",...oS];new Set(yC);var dl=U.createContext(null);dl.displayName="DataRouter";var Gd=U.createContext(null);Gd.displayName="DataRouterState";var lS=U.createContext({isTransitioning:!1});lS.displayName="ViewTransition";var _C=U.createContext(new Map);_C.displayName="Fetchers";var wC=U.createContext(null);wC.displayName="Await";var Dr=U.createContext(null);Dr.displayName="Navigation";var au=U.createContext(null);au.displayName="Location";var Xr=U.createContext({outlet:null,matches:[],isDataRoute:!1});Xr.displayName="Route";var jv=U.createContext(null);jv.displayName="RouteError";function xC(i,{relative:e}={}){In(fl(),"useHref() may be used only in the context of a component.");let{basename:t,navigator:n}=U.useContext(Dr),{hash:r,pathname:s,search:c}=ou(i,{relative:e}),u=s;return t!=="/"&&(u=s==="/"?t:gs([t,s])),n.createHref({pathname:u,search:c,hash:r})}function fl(){return U.useContext(au)!=null}function na(){return In(fl(),"useLocation() may be used only in the context of a component."),U.useContext(au).location}var cS="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function uS(i){U.useContext(Dr).static||U.useLayoutEffect(i)}function Wv(){let{isDataRoute:i}=U.useContext(Xr);return i?LC():bC()}function bC(){In(fl(),"useNavigate() may be used only in the context of a component.");let i=U.useContext(dl),{basename:e,navigator:t}=U.useContext(Dr),{matches:n}=U.useContext(Xr),{pathname:r}=na(),s=JSON.stringify(Hv(n)),c=U.useRef(!1);return uS(()=>{c.current=!0}),U.useCallback((d,m={})=>{if(Rr(c.current,cS),!c.current)return;if(typeof d=="number"){t.go(d);return}let y=Gv(d,JSON.parse(s),r,m.relative==="path");i==null&&e!=="/"&&(y.pathname=y.pathname==="/"?e:gs([e,y.pathname])),(m.replace?t.replace:t.push)(y,m.state,m)},[e,t,s,r,i])}U.createContext(null);function ou(i,{relative:e}={}){let{matches:t}=U.useContext(Xr),{pathname:n}=na(),r=JSON.stringify(Hv(t));return U.useMemo(()=>Gv(i,JSON.parse(r),n,e==="path"),[i,r,n,e])}function SC(i,e){return hS(i,e)}function hS(i,e,t,n){var _;In(fl(),"useRoutes() may be used only in the context of a component.");let{navigator:r}=U.useContext(Dr),{matches:s}=U.useContext(Xr),c=s[s.length-1],u=c?c.params:{},d=c?c.pathname:"/",m=c?c.pathnameBase:"/",y=c&&c.route;{let D=y&&y.path||"";dS(d,!y||D.endsWith("*")||D.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${d}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + */var ow="popstate";function Z2(i={}){function e(n,r){let{pathname:s,search:c,hash:u}=n.location;return dg("",{pathname:s,search:c,hash:u},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function t(n,r){return typeof r=="string"?r:eu(r)}return K2(e,t,null,i)}function In(i,e){if(i===!1||i===null||typeof i>"u")throw new Error(e)}function Rr(i,e){if(!i){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function $2(){return Math.random().toString(36).substring(2,10)}function lw(i,e){return{usr:i.state,key:i.key,idx:e}}function dg(i,e,t=null,n){return{pathname:typeof i=="string"?i:i.pathname,search:"",hash:"",...typeof e=="string"?hl(e):e,state:t,key:e&&e.key||n||$2()}}function eu({pathname:i="/",search:e="",hash:t=""}){return e&&e!=="?"&&(i+=e.charAt(0)==="?"?e:"?"+e),t&&t!=="#"&&(i+=t.charAt(0)==="#"?t:"#"+t),i}function hl(i){let e={};if(i){let t=i.indexOf("#");t>=0&&(e.hash=i.substring(t),i=i.substring(0,t));let n=i.indexOf("?");n>=0&&(e.search=i.substring(n),i=i.substring(0,n)),i&&(e.pathname=i)}return e}function K2(i,e,t,n={}){let{window:r=document.defaultView,v5Compat:s=!1}=n,c=r.history,u="POP",d=null,m=y();m==null&&(m=0,c.replaceState({...c.state,idx:m},""));function y(){return(c.state||{idx:null}).idx}function x(){u="POP";let S=y(),_=S==null?null:S-m;m=S,d&&d({action:u,location:T.location,delta:_})}function b(S,_){u="PUSH";let D=dg(T.location,S,_);m=y()+1;let P=lw(D,m),R=T.createHref(D);try{c.pushState(P,"",R)}catch(F){if(F instanceof DOMException&&F.name==="DataCloneError")throw F;r.location.assign(R)}s&&d&&d({action:u,location:T.location,delta:1})}function w(S,_){u="REPLACE";let D=dg(T.location,S,_);m=y();let P=lw(D,m),R=T.createHref(D);c.replaceState(P,"",R),s&&d&&d({action:u,location:T.location,delta:0})}function M(S){let _=r.location.origin!=="null"?r.location.origin:r.location.href,D=typeof S=="string"?S:eu(S);return D=D.replace(/ $/,"%20"),In(_,`No window.location.(origin|href) available to create URL for href: ${D}`),new URL(D,_)}let T={get action(){return u},get location(){return i(r,c)},listen(S){if(d)throw new Error("A history only accepts one active listener");return r.addEventListener(ow,x),d=S,()=>{r.removeEventListener(ow,x),d=null}},createHref(S){return e(r,S)},createURL:M,encodeLocation(S){let _=M(S);return{pathname:_.pathname,search:_.search,hash:_.hash}},push:b,replace:w,go(S){return c.go(S)}};return T}function rS(i,e,t="/"){return Q2(i,e,t,!1)}function Q2(i,e,t,n){let r=typeof e=="string"?hl(e):e,s=ta(r.pathname||"/",t);if(s==null)return null;let c=sS(i);J2(c);let u=null;for(let d=0;u==null&&d{let d={relativePath:u===void 0?s.path||"":u,caseSensitive:s.caseSensitive===!0,childrenIndex:c,route:s};d.relativePath.startsWith("/")&&(In(d.relativePath.startsWith(n),`Absolute route path "${d.relativePath}" nested under path "${n}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),d.relativePath=d.relativePath.slice(n.length));let m=gs([n,d.relativePath]),y=t.concat(d);s.children&&s.children.length>0&&(In(s.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${m}".`),sS(s.children,e,y,m)),!(s.path==null&&!s.index)&&e.push({path:m,score:aC(m,s.index),routesMeta:y})};return i.forEach((s,c)=>{var u;if(s.path===""||!((u=s.path)!=null&&u.includes("?")))r(s,c);else for(let d of aS(s.path))r(s,c,d)}),e}function aS(i){let e=i.split("/");if(e.length===0)return[];let[t,...n]=e,r=t.endsWith("?"),s=t.replace(/\?$/,"");if(n.length===0)return r?[s,""]:[s];let c=aS(n.join("/")),u=[];return u.push(...c.map(d=>d===""?s:[s,d].join("/"))),r&&u.push(...c),u.map(d=>i.startsWith("/")&&d===""?"/":d)}function J2(i){i.sort((e,t)=>e.score!==t.score?t.score-e.score:oC(e.routesMeta.map(n=>n.childrenIndex),t.routesMeta.map(n=>n.childrenIndex)))}var eC=/^:[\w-]+$/,tC=3,nC=2,iC=1,rC=10,sC=-2,cw=i=>i==="*";function aC(i,e){let t=i.split("/"),n=t.length;return t.some(cw)&&(n+=sC),e&&(n+=nC),t.filter(r=>!cw(r)).reduce((r,s)=>r+(eC.test(s)?tC:s===""?iC:rC),n)}function oC(i,e){return i.length===e.length&&i.slice(0,-1).every((n,r)=>n===e[r])?i[i.length-1]-e[e.length-1]:0}function lC(i,e,t=!1){let{routesMeta:n}=i,r={},s="/",c=[];for(let u=0;u{if(y==="*"){let M=u[b]||"";c=s.slice(0,s.length-M.length).replace(/(.)\/+$/,"$1")}const w=u[b];return x&&!w?m[y]=void 0:m[y]=(w||"").replace(/%2F/g,"/"),m},{}),pathname:s,pathnameBase:c,pattern:i}}function cC(i,e=!1,t=!0){Rr(i==="*"||!i.endsWith("*")||i.endsWith("/*"),`Route path "${i}" will be treated as if it were "${i.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${i.replace(/\*$/,"/*")}".`);let n=[],r="^"+i.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(c,u,d)=>(n.push({paramName:u,isOptional:d!=null}),d?"/?([^\\/]+)?":"/([^\\/]+)"));return i.endsWith("*")?(n.push({paramName:"*"}),r+=i==="*"||i==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):t?r+="\\/*$":i!==""&&i!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),n]}function uC(i){try{return i.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Rr(!1,`The URL path "${i}" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent encoding (${e}).`),i}}function ta(i,e){if(e==="/")return i;if(!i.toLowerCase().startsWith(e.toLowerCase()))return null;let t=e.endsWith("/")?e.length-1:e.length,n=i.charAt(t);return n&&n!=="/"?null:i.slice(t)||"/"}function hC(i,e="/"){let{pathname:t,search:n="",hash:r=""}=typeof i=="string"?hl(i):i;return{pathname:t?t.startsWith("/")?t:dC(t,e):e,search:pC(n),hash:gC(r)}}function dC(i,e){let t=e.replace(/\/+$/,"").split("/");return i.split("/").forEach(r=>{r===".."?t.length>1&&t.pop():r!=="."&&t.push(r)}),t.length>1?t.join("/"):"/"}function Gm(i,e,t,n){return`Cannot include a '${i}' character in a manually specified \`to.${e}\` field [${JSON.stringify(n)}]. Please separate it out to the \`to.${t}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function fC(i){return i.filter((e,t)=>t===0||e.route.path&&e.route.path.length>0)}function Gv(i){let e=fC(i);return e.map((t,n)=>n===e.length-1?t.pathname:t.pathnameBase)}function jv(i,e,t,n=!1){let r;typeof i=="string"?r=hl(i):(r={...i},In(!r.pathname||!r.pathname.includes("?"),Gm("?","pathname","search",r)),In(!r.pathname||!r.pathname.includes("#"),Gm("#","pathname","hash",r)),In(!r.search||!r.search.includes("#"),Gm("#","search","hash",r)));let s=i===""||r.pathname==="",c=s?"/":r.pathname,u;if(c==null)u=t;else{let x=e.length-1;if(!n&&c.startsWith("..")){let b=c.split("/");for(;b[0]==="..";)b.shift(),x-=1;r.pathname=b.join("/")}u=x>=0?e[x]:"/"}let d=hC(r,u),m=c&&c!=="/"&&c.endsWith("/"),y=(s||c===".")&&t.endsWith("/");return!d.pathname.endsWith("/")&&(m||y)&&(d.pathname+="/"),d}var gs=i=>i.join("/").replace(/\/\/+/g,"/"),mC=i=>i.replace(/\/+$/,"").replace(/^\/*/,"/"),pC=i=>!i||i==="?"?"":i.startsWith("?")?i:"?"+i,gC=i=>!i||i==="#"?"":i.startsWith("#")?i:"#"+i;function vC(i){return i!=null&&typeof i.status=="number"&&typeof i.statusText=="string"&&typeof i.internal=="boolean"&&"data"in i}var oS=["POST","PUT","PATCH","DELETE"];new Set(oS);var yC=["GET",...oS];new Set(yC);var dl=B.createContext(null);dl.displayName="DataRouter";var Gd=B.createContext(null);Gd.displayName="DataRouterState";var lS=B.createContext({isTransitioning:!1});lS.displayName="ViewTransition";var _C=B.createContext(new Map);_C.displayName="Fetchers";var wC=B.createContext(null);wC.displayName="Await";var Dr=B.createContext(null);Dr.displayName="Navigation";var ou=B.createContext(null);ou.displayName="Location";var Xr=B.createContext({outlet:null,matches:[],isDataRoute:!1});Xr.displayName="Route";var Wv=B.createContext(null);Wv.displayName="RouteError";function xC(i,{relative:e}={}){In(fl(),"useHref() may be used only in the context of a component.");let{basename:t,navigator:n}=B.useContext(Dr),{hash:r,pathname:s,search:c}=lu(i,{relative:e}),u=s;return t!=="/"&&(u=s==="/"?t:gs([t,s])),n.createHref({pathname:u,search:c,hash:r})}function fl(){return B.useContext(ou)!=null}function na(){return In(fl(),"useLocation() may be used only in the context of a component."),B.useContext(ou).location}var cS="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function uS(i){B.useContext(Dr).static||B.useLayoutEffect(i)}function Xv(){let{isDataRoute:i}=B.useContext(Xr);return i?LC():bC()}function bC(){In(fl(),"useNavigate() may be used only in the context of a component.");let i=B.useContext(dl),{basename:e,navigator:t}=B.useContext(Dr),{matches:n}=B.useContext(Xr),{pathname:r}=na(),s=JSON.stringify(Gv(n)),c=B.useRef(!1);return uS(()=>{c.current=!0}),B.useCallback((d,m={})=>{if(Rr(c.current,cS),!c.current)return;if(typeof d=="number"){t.go(d);return}let y=jv(d,JSON.parse(s),r,m.relative==="path");i==null&&e!=="/"&&(y.pathname=y.pathname==="/"?e:gs([e,y.pathname])),(m.replace?t.replace:t.push)(y,m.state,m)},[e,t,s,r,i])}B.createContext(null);function lu(i,{relative:e}={}){let{matches:t}=B.useContext(Xr),{pathname:n}=na(),r=JSON.stringify(Gv(t));return B.useMemo(()=>jv(i,JSON.parse(r),n,e==="path"),[i,r,n,e])}function SC(i,e){return hS(i,e)}function hS(i,e,t,n){var _;In(fl(),"useRoutes() may be used only in the context of a component.");let{navigator:r}=B.useContext(Dr),{matches:s}=B.useContext(Xr),c=s[s.length-1],u=c?c.params:{},d=c?c.pathname:"/",m=c?c.pathnameBase:"/",y=c&&c.route;{let D=y&&y.path||"";dS(d,!y||D.endsWith("*")||D.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${d}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. -Please change the parent to .`)}let x=na(),b;if(e){let D=typeof e=="string"?hl(e):e;In(m==="/"||((_=D.pathname)==null?void 0:_.startsWith(m)),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${m}" but pathname "${D.pathname}" was given in the \`location\` prop.`),b=D}else b=x;let w=b.pathname||"/",M=w;if(m!=="/"){let D=m.replace(/^\//,"").split("/");M="/"+w.replace(/^\//,"").split("/").slice(D.length).join("/")}let T=rS(i,{pathname:M});Rr(y||T!=null,`No routes matched location "${b.pathname}${b.search}${b.hash}" `),Rr(T==null||T[T.length-1].route.element!==void 0||T[T.length-1].route.Component!==void 0||T[T.length-1].route.lazy!==void 0,`Matched leaf route at location "${b.pathname}${b.search}${b.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let S=AC(T&&T.map(D=>Object.assign({},D,{params:Object.assign({},u,D.params),pathname:gs([m,r.encodeLocation?r.encodeLocation(D.pathname).pathname:D.pathname]),pathnameBase:D.pathnameBase==="/"?m:gs([m,r.encodeLocation?r.encodeLocation(D.pathnameBase).pathname:D.pathnameBase])})),s,t,n);return e&&S?U.createElement(au.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...b},navigationType:"POP"}},S):S}function EC(){let i=NC(),e=vC(i)?`${i.status} ${i.statusText}`:i instanceof Error?i.message:JSON.stringify(i),t=i instanceof Error?i.stack:null,n="rgba(200,200,200, 0.5)",r={padding:"0.5rem",backgroundColor:n},s={padding:"2px 4px",backgroundColor:n},c=null;return console.error("Error handled by React Router default ErrorBoundary:",i),c=U.createElement(U.Fragment,null,U.createElement("p",null,"💿 Hey developer 👋"),U.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",U.createElement("code",{style:s},"ErrorBoundary")," or"," ",U.createElement("code",{style:s},"errorElement")," prop on your route.")),U.createElement(U.Fragment,null,U.createElement("h2",null,"Unexpected Application Error!"),U.createElement("h3",{style:{fontStyle:"italic"}},e),t?U.createElement("pre",{style:r},t):null,c)}var TC=U.createElement(EC,null),MC=class extends U.Component{constructor(i){super(i),this.state={location:i.location,revalidation:i.revalidation,error:i.error}}static getDerivedStateFromError(i){return{error:i}}static getDerivedStateFromProps(i,e){return e.location!==i.location||e.revalidation!=="idle"&&i.revalidation==="idle"?{error:i.error,location:i.location,revalidation:i.revalidation}:{error:i.error!==void 0?i.error:e.error,location:e.location,revalidation:i.revalidation||e.revalidation}}componentDidCatch(i,e){console.error("React Router caught the following error during render",i,e)}render(){return this.state.error!==void 0?U.createElement(Xr.Provider,{value:this.props.routeContext},U.createElement(jv.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function CC({routeContext:i,match:e,children:t}){let n=U.useContext(dl);return n&&n.static&&n.staticContext&&(e.route.errorElement||e.route.ErrorBoundary)&&(n.staticContext._deepestRenderedBoundaryId=e.route.id),U.createElement(Xr.Provider,{value:i},t)}function AC(i,e=[],t=null,n=null){if(i==null){if(!t)return null;if(t.errors)i=t.matches;else if(e.length===0&&!t.initialized&&t.matches.length>0)i=t.matches;else return null}let r=i,s=t==null?void 0:t.errors;if(s!=null){let d=r.findIndex(m=>m.route.id&&(s==null?void 0:s[m.route.id])!==void 0);In(d>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(s).join(",")}`),r=r.slice(0,Math.min(r.length,d+1))}let c=!1,u=-1;if(t)for(let d=0;d=0?r=r.slice(0,u+1):r=[r[0]];break}}}return r.reduceRight((d,m,y)=>{let x,b=!1,w=null,M=null;t&&(x=s&&m.route.id?s[m.route.id]:void 0,w=m.route.errorElement||TC,c&&(u<0&&y===0?(dS("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),b=!0,M=null):u===y&&(b=!0,M=m.route.hydrateFallbackElement||null)));let T=e.concat(r.slice(0,y+1)),S=()=>{let _;return x?_=w:b?_=M:m.route.Component?_=U.createElement(m.route.Component,null):m.route.element?_=m.route.element:_=d,U.createElement(CC,{match:m,routeContext:{outlet:d,matches:T,isDataRoute:t!=null},children:_})};return t&&(m.route.ErrorBoundary||m.route.errorElement||y===0)?U.createElement(MC,{location:t.location,revalidation:t.revalidation,component:w,error:x,children:S(),routeContext:{outlet:null,matches:T,isDataRoute:!0}}):S()},null)}function Xv(i){return`${i} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function IC(i){let e=U.useContext(dl);return In(e,Xv(i)),e}function PC(i){let e=U.useContext(Gd);return In(e,Xv(i)),e}function RC(i){let e=U.useContext(Xr);return In(e,Xv(i)),e}function Yv(i){let e=RC(i),t=e.matches[e.matches.length-1];return In(t.route.id,`${i} can only be used on routes that contain a unique "id"`),t.route.id}function DC(){return Yv("useRouteId")}function NC(){var n;let i=U.useContext(jv),e=PC("useRouteError"),t=Yv("useRouteError");return i!==void 0?i:(n=e.errors)==null?void 0:n[t]}function LC(){let{router:i}=IC("useNavigate"),e=Yv("useNavigate"),t=U.useRef(!1);return uS(()=>{t.current=!0}),U.useCallback(async(r,s={})=>{Rr(t.current,cS),t.current&&(typeof r=="number"?i.navigate(r):await i.navigate(r,{fromRouteId:e,...s}))},[i,e])}var uw={};function dS(i,e,t){!e&&!uw[i]&&(uw[i]=!0,Rr(!1,t))}U.memo(OC);function OC({routes:i,future:e,state:t}){return hS(i,void 0,t,e)}function FC({to:i,replace:e,state:t,relative:n}){In(fl()," may be used only in the context of a component.");let{static:r}=U.useContext(Dr);Rr(!r," must not be used on the initial render in a . This is a no-op, but you should modify your code so the is only ever rendered in response to some user interaction or state change.");let{matches:s}=U.useContext(Xr),{pathname:c}=na(),u=Wv(),d=Gv(i,Hv(s),c,n==="path"),m=JSON.stringify(d);return U.useEffect(()=>{u(JSON.parse(m),{replace:e,state:t,relative:n})},[u,m,n,e,t]),null}function zc(i){In(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function BC({basename:i="/",children:e=null,location:t,navigationType:n="POP",navigator:r,static:s=!1}){In(!fl(),"You cannot render a inside another . You should never have more than one in your app.");let c=i.replace(/^\/*/,"/"),u=U.useMemo(()=>({basename:c,navigator:r,static:s,future:{}}),[c,r,s]);typeof t=="string"&&(t=hl(t));let{pathname:d="/",search:m="",hash:y="",state:x=null,key:b="default"}=t,w=U.useMemo(()=>{let M=ta(d,c);return M==null?null:{location:{pathname:M,search:m,hash:y,state:x,key:b},navigationType:n}},[c,d,m,y,x,b,n]);return Rr(w!=null,` is not able to match the URL "${d}${m}${y}" because it does not start with the basename, so the won't render anything.`),w==null?null:U.createElement(Dr.Provider,{value:u},U.createElement(au.Provider,{children:e,value:w}))}function UC({children:i,location:e}){return SC(dg(i),e)}function dg(i,e=[]){let t=[];return U.Children.forEach(i,(n,r)=>{if(!U.isValidElement(n))return;let s=[...e,r];if(n.type===U.Fragment){t.push.apply(t,dg(n.props.children,s));return}In(n.type===zc,`[${typeof n.type=="string"?n.type:n.type.name}] is not a component. All component children of must be a or `),In(!n.props.index||!n.props.children,"An index route cannot have child routes.");let c={id:n.props.id||s.join("-"),caseSensitive:n.props.caseSensitive,element:n.props.element,Component:n.props.Component,index:n.props.index,path:n.props.path,loader:n.props.loader,action:n.props.action,hydrateFallbackElement:n.props.hydrateFallbackElement,HydrateFallback:n.props.HydrateFallback,errorElement:n.props.errorElement,ErrorBoundary:n.props.ErrorBoundary,hasErrorBoundary:n.props.hasErrorBoundary===!0||n.props.ErrorBoundary!=null||n.props.errorElement!=null,shouldRevalidate:n.props.shouldRevalidate,handle:n.props.handle,lazy:n.props.lazy};n.props.children&&(c.children=dg(n.props.children,s)),t.push(c)}),t}var rd="get",sd="application/x-www-form-urlencoded";function jd(i){return i!=null&&typeof i.tagName=="string"}function kC(i){return jd(i)&&i.tagName.toLowerCase()==="button"}function VC(i){return jd(i)&&i.tagName.toLowerCase()==="form"}function zC(i){return jd(i)&&i.tagName.toLowerCase()==="input"}function HC(i){return!!(i.metaKey||i.altKey||i.ctrlKey||i.shiftKey)}function GC(i,e){return i.button===0&&(!e||e==="_self")&&!HC(i)}var ph=null;function jC(){if(ph===null)try{new FormData(document.createElement("form"),0),ph=!1}catch{ph=!0}return ph}var WC=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function Gm(i){return i!=null&&!WC.has(i)?(Rr(!1,`"${i}" is not a valid \`encType\` for \`
    \`/\`\` and will default to "${sd}"`),null):i}function XC(i,e){let t,n,r,s,c;if(VC(i)){let u=i.getAttribute("action");n=u?ta(u,e):null,t=i.getAttribute("method")||rd,r=Gm(i.getAttribute("enctype"))||sd,s=new FormData(i)}else if(kC(i)||zC(i)&&(i.type==="submit"||i.type==="image")){let u=i.form;if(u==null)throw new Error('Cannot submit a