/* eslint-disable */ /* tslint:disable */ /** * This is an autogenerated file created by the Stencil compiler. * It contains typing information for all components that exist in this project. */ import { HTMLStencilElement, JSXBase } from "./stencil-public-runtime"; import { FilterOptions, MetadataKey, RowArg, RowDataProvider, SceneTreeOperationOptions, ScrollToOptions, SelectItemOptions } from "./components/scene-tree/types"; import { Config, PartialConfig } from "./lib/config"; import { Environment } from "./lib/environment"; import { FilterTreeOptions, SceneTreeController } from "./components/scene-tree/lib/controller"; import { SceneTreeErrorDetails } from "./components/scene-tree/lib/errors"; import { Row } from "./components/scene-tree/lib/row"; import { Node } from "@vertexvis/scene-tree-protos/scenetree/protos/domain_pb"; import { SceneTreeOperationHandler } from "./components/scene-tree/lib/handlers"; import { SceneTreeCellHoverController } from "./components/scene-tree-table-layout/lib/hover-controller"; import { SceneTreeTableCellEventDetails } from "./components/scene-tree-table-cell/scene-tree-table-cell"; import { DomScrollToOptions } from "./components/scene-tree-table-layout/lib/dom"; import { FrameCameraType } from "./lib/types/frameCamera"; import { CrossSectioningOptions, FeatureHighlightOptions, FeatureLineOptions, FrameType, PhantomOptions, SceneComparisonOptions, SelectionHighlightingOptions } from "./interfaces"; import { Frame, FrameCameraBase } from "./lib/types/frame"; import { ViewerStream } from "./lib/stream/stream"; import { AngleUnitType, DepthBuffer, DistanceUnitType, EntityType, FrameCameraBase as FrameCameraBase1, FramePerspectiveCamera, Orientation, StencilBufferManager, Viewport } from "./lib/types"; import { AnnotationController, AnnotationState } from "./lib/annotations/controller"; import { ModelViewController } from "./lib/model-views/controller"; import { PmiController } from "./lib/pmi"; import { SceneItemController } from "./lib/scene-items/controller"; import { CanvasController } from "./lib/canvases"; import { TapEventDetails } from "./lib/interactions/tapEventDetails"; import { ConnectionStatus, LoadOptions } from "./components/viewer/viewer"; import { Dimensions, Euler, Matrix4, Point, Quaternion, Rectangle, Vector3 } from "@vertexvis/geometry"; import { BasicInteractionHandler, BasicViewer, Color, Disposable } from "@vertexvis/utils"; import { InteractionHandler } from "./lib/interactions/interactionHandler"; import { KeyInteraction } from "./lib/interactions/keyInteraction"; import { Cursor } from "./lib/cursors"; import { BaseInteractionHandler } from "./lib/interactions/baseInteractionHandler"; import { Scene } from "./lib/scenes/scene"; import { CalloutAnnotationData } from "./lib/annotations/annotation"; import { ViewerIconSize } from "./components/viewer-icon/viewer-icon"; import { VolumeIntersectionQueryController } from "./lib/volume-intersection/controller"; import { VolumeIntersectionQueryModel } from "./lib/volume-intersection/model"; import { VolumeIntersectionQueryMode, VolumeIntersectionQueryType } from "./components/viewer-box-query-tool/types"; import { ViewerToolbarDirection, ViewerToolbarPlacement } from "./components/viewer-toolbar/types"; import { ViewerToolbarGroupDirection } from "./components/viewer-toolbar-group/types"; import { ViewerDomRendererDrawMode } from "./components/viewer-dom-renderer/viewer-dom-renderer"; import { ViewerIconName, ViewerIconSize as ViewerIconSize1 } from "./components/viewer-icon/viewer-icon"; import { ViewerMarkupToolType } from "./components/viewer-markup-tool/viewer-markup-tool"; import { LineAnchorStyle } from "./components/viewer-markup-arrow/utils"; import { Markup, MarkupCenteringBehavior, MarkupInteraction } from "./lib/types/markup"; import { ViewerMarkupArrowMode } from "./components/viewer-markup-arrow/viewer-markup-arrow"; import { ViewerMarkupCircleMode } from "./components/viewer-markup-circle/viewer-markup-circle"; import { ViewerMarkupFreeformMode } from "./components/viewer-markup-freeform/viewer-markup-freeform"; import { ViewerMarkupToolType as ViewerMarkupToolType1 } from "./components/viewer-markup-tool/viewer-markup-tool"; import { MeasurementController, MeasurementModel, MeasurementOutcome, MeasurementOverlayManager, MeasurementResult } from "./lib/measurement"; import { Formatter } from "./lib/formatter"; import { EditBeginEventDetails, EditEndEventDetails, ViewerMeasurementDistanceElementMetrics, ViewerMeasurementDistanceMode } from "./components/viewer-measurement-distance/viewer-measurement-distance"; import { Anchor } from "./components/viewer-measurement-distance/utils"; import { PointToPointHitProvider } from "./components/viewer-measurement-distance/interactions"; import { Pin, PinModel, TextPin, ViewerPinToolMode, ViewerPinToolType } from "./lib/pins/model"; import { PinController } from "./lib/pins/controller"; import { SpinnerSize } from "./components/viewer-spinner/viewer-spinner"; import { ViewerTeleportMode, WalkModeModel } from "./lib/walk-mode/model"; import { WalkModeController } from "./lib/walk-mode/controller"; import { TransformController } from "./lib/transforms/controller"; import { ModifierKey } from "./lib/types/keys"; import { Drawable } from "./lib/transforms/drawable"; export { FilterOptions, MetadataKey, RowArg, RowDataProvider, SceneTreeOperationOptions, ScrollToOptions, SelectItemOptions } from "./components/scene-tree/types"; export { Config, PartialConfig } from "./lib/config"; export { Environment } from "./lib/environment"; export { FilterTreeOptions, SceneTreeController } from "./components/scene-tree/lib/controller"; export { SceneTreeErrorDetails } from "./components/scene-tree/lib/errors"; export { Row } from "./components/scene-tree/lib/row"; export { Node } from "@vertexvis/scene-tree-protos/scenetree/protos/domain_pb"; export { SceneTreeOperationHandler } from "./components/scene-tree/lib/handlers"; export { SceneTreeCellHoverController } from "./components/scene-tree-table-layout/lib/hover-controller"; export { SceneTreeTableCellEventDetails } from "./components/scene-tree-table-cell/scene-tree-table-cell"; export { DomScrollToOptions } from "./components/scene-tree-table-layout/lib/dom"; export { FrameCameraType } from "./lib/types/frameCamera"; export { CrossSectioningOptions, FeatureHighlightOptions, FeatureLineOptions, FrameType, PhantomOptions, SceneComparisonOptions, SelectionHighlightingOptions } from "./interfaces"; export { Frame, FrameCameraBase } from "./lib/types/frame"; export { ViewerStream } from "./lib/stream/stream"; export { AngleUnitType, DepthBuffer, DistanceUnitType, EntityType, FrameCameraBase as FrameCameraBase1, FramePerspectiveCamera, Orientation, StencilBufferManager, Viewport } from "./lib/types"; export { AnnotationController, AnnotationState } from "./lib/annotations/controller"; export { ModelViewController } from "./lib/model-views/controller"; export { PmiController } from "./lib/pmi"; export { SceneItemController } from "./lib/scene-items/controller"; export { CanvasController } from "./lib/canvases"; export { TapEventDetails } from "./lib/interactions/tapEventDetails"; export { ConnectionStatus, LoadOptions } from "./components/viewer/viewer"; export { Dimensions, Euler, Matrix4, Point, Quaternion, Rectangle, Vector3 } from "@vertexvis/geometry"; export { BasicInteractionHandler, BasicViewer, Color, Disposable } from "@vertexvis/utils"; export { InteractionHandler } from "./lib/interactions/interactionHandler"; export { KeyInteraction } from "./lib/interactions/keyInteraction"; export { Cursor } from "./lib/cursors"; export { BaseInteractionHandler } from "./lib/interactions/baseInteractionHandler"; export { Scene } from "./lib/scenes/scene"; export { CalloutAnnotationData } from "./lib/annotations/annotation"; export { ViewerIconSize } from "./components/viewer-icon/viewer-icon"; export { VolumeIntersectionQueryController } from "./lib/volume-intersection/controller"; export { VolumeIntersectionQueryModel } from "./lib/volume-intersection/model"; export { VolumeIntersectionQueryMode, VolumeIntersectionQueryType } from "./components/viewer-box-query-tool/types"; export { ViewerToolbarDirection, ViewerToolbarPlacement } from "./components/viewer-toolbar/types"; export { ViewerToolbarGroupDirection } from "./components/viewer-toolbar-group/types"; export { ViewerDomRendererDrawMode } from "./components/viewer-dom-renderer/viewer-dom-renderer"; export { ViewerIconName, ViewerIconSize as ViewerIconSize1 } from "./components/viewer-icon/viewer-icon"; export { ViewerMarkupToolType } from "./components/viewer-markup-tool/viewer-markup-tool"; export { LineAnchorStyle } from "./components/viewer-markup-arrow/utils"; export { Markup, MarkupCenteringBehavior, MarkupInteraction } from "./lib/types/markup"; export { ViewerMarkupArrowMode } from "./components/viewer-markup-arrow/viewer-markup-arrow"; export { ViewerMarkupCircleMode } from "./components/viewer-markup-circle/viewer-markup-circle"; export { ViewerMarkupFreeformMode } from "./components/viewer-markup-freeform/viewer-markup-freeform"; export { ViewerMarkupToolType as ViewerMarkupToolType1 } from "./components/viewer-markup-tool/viewer-markup-tool"; export { MeasurementController, MeasurementModel, MeasurementOutcome, MeasurementOverlayManager, MeasurementResult } from "./lib/measurement"; export { Formatter } from "./lib/formatter"; export { EditBeginEventDetails, EditEndEventDetails, ViewerMeasurementDistanceElementMetrics, ViewerMeasurementDistanceMode } from "./components/viewer-measurement-distance/viewer-measurement-distance"; export { Anchor } from "./components/viewer-measurement-distance/utils"; export { PointToPointHitProvider } from "./components/viewer-measurement-distance/interactions"; export { Pin, PinModel, TextPin, ViewerPinToolMode, ViewerPinToolType } from "./lib/pins/model"; export { PinController } from "./lib/pins/controller"; export { SpinnerSize } from "./components/viewer-spinner/viewer-spinner"; export { ViewerTeleportMode, WalkModeModel } from "./lib/walk-mode/model"; export { WalkModeController } from "./lib/walk-mode/controller"; export { TransformController } from "./lib/transforms/controller"; export { ModifierKey } from "./lib/types/keys"; export { Drawable } from "./lib/transforms/drawable"; export namespace Components { interface VertexSceneTree { /** * Performs an API call to collapse all nodes in the tree. */ "collapseAll": () => Promise; /** * Performs an API call that will collapse the node associated to the specified row or row index. * @param row A row, row index, or node to collapse. */ "collapseItem": (row: RowArg) => Promise; /** * An object to configure the scene tree. */ "config"?: PartialConfig | string; /** * Sets the default environment for the viewer. This setting is used for auto-configuring network hosts. Use the `config` property for manually setting hosts. * @default 'platprod' */ "configEnv": Environment; "controller"?: SceneTreeController; /** * Performs an API call that will deselect the item associated to the given row or row index. * @param row The row, row index, or node to deselect. */ "deselectItem": (row: RowArg) => Promise; /** * Performs an API call to expand all nodes in the tree. */ "expandAll": () => Promise; /** * Performs an API call that will expand the node associated to the specified row or row index. * @param row A row, row index, or node to expand. */ "expandItem": (row: RowArg) => Promise; /** * Fetches the metadata keys that are available to the scene tree. Metadata keys can be assigned to the scene tree using the `metadataKeys` property. The scene tree will fetch this metadata and make these values available for data binding. * @returns A promise that resolves with the names of available keys. */ "fetchMetadataKeys": () => Promise; /** * Performs an async request that will filter the displayed items in the tree that match the given term and options. * @param term The filter term. * @param options The options to apply to the filter. * @returns A promise that completes when the request has completed. Note, items are displayed asynchronously. So the displayed items may not reflect the result of this filter when the promise completes. */ "filterItems": (term: string, options?: FilterTreeOptions) => Promise; /** * Returns the row data from the given vertical client position. * @param clientY The vertical client position. * @returns A row or `undefined` if the row hasn't been loaded. */ "getRowAtClientY": (clientY: number) => Promise; /** * Returns a row at the given index. If the row data has not been loaded, returns `undefined`. * @param index The index of the row. * @returns A row, or `undefined` if the row hasn't been loaded. */ "getRowAtIndex": (index: number) => Promise; /** * Returns the row data from the given mouse or pointer event. The event must originate from a `vertex-scene-tree-table-cell` contained by this element, otherwise `undefined` is returned. * @param event A mouse or pointer event that originated from this component. * @returns A row, or `undefined` if the row hasn't been loaded. */ "getRowForEvent": (event: MouseEvent | PointerEvent) => Promise; /** * Returns the row with the given id. If there is not a row matching the id, returns `undefined`. * @param itemId An ID of an item to return the row for. * @returns A row, or `undefined` if a corresponding row doesn't exist */ "getRowForItemId": (itemId: string) => Promise; /** * Performs an API call that will hide the item associated to the given row or row index. * @param row The row, row index, or node to hide. */ "hideItem": (row: RowArg) => Promise; /** * Schedules a render of the rows in the scene tree. Useful if any custom data in your scene tree has changed, and you want to update the row's contents. **Note:** This is an asynchronous operation. The update may happen on the next frame. */ "invalidateRows": () => Promise; /** * Performs an API call that will show only the item associated to the given row or row index and fit the camera to the item's bounding box. * @param row The row, row index, or node to isolate. */ "isolateItem": (row: RowArg) => Promise; /** * A list of part metadata keys that will be made available to each row. This metadata can be used for data binding inside the scene tree's template. **Note:** for the values of these metadata keys to be evaluated for search, they must be provided to the `metadataSearchKeys` specified in the `searchOptions`. Otherwise, the search will only be performed against the item name. * @default [] */ "metadataKeys": MetadataKey[]; /** * @deprecated Use `searchOptions` Indicates whether the metadata search should use an exact match. * @default false */ "metadataSearchExactMatch": boolean; /** * @deprecated Use `searchOptions` A list of the metadata keys that a scene tree search should be performed on. * @default [] */ "metadataSearchKeys": MetadataKey[]; /** * The duration of operations with animations, in milliseconds, when a user performs an action that results in an animation such as isolate. Defaults to 500ms. * @default 500 */ "operationAnimationDuration": number; /** * The number of offscreen rows above and below the viewport to render. Having a higher number reduces the chance of the browser not displaying a row while scrolling. * @default 25 */ "overScanCount": number; /** * A callback that is invoked immediately before a row is about to be rendered. This callback can return additional data that can be bound to in a template. * @example ```html ``` */ "rowData"?: RowDataProvider; /** * Scrolls the tree to the given row index. * @param index An index of the row to scroll to. * @param options A set of options to configure the scrolling behavior. */ "scrollToIndex": (index: number, options?: ScrollToOptions) => Promise; /** * Scrolls the tree to an item with the given ID. If the node for the item is not expanded, the tree will expand each of its parent nodes. * @param itemId An ID of an item to scroll to. * @param options A set of options to configure the scrolling behavior. * @returns A promise that resolves when the operation is finished. */ "scrollToItem": (itemId: string, options?: ScrollToOptions) => Promise; /** * A set of options to configure scene tree searching behavior. * @default {} */ "searchOptions": FilterOptions; /** * Performs an async request that will select the filtered items in the tree that match the given term. * @param term The filter term. * @returns A promise that completes when the request has completed. */ "selectFilteredItems": (term: string, options?: SceneTreeOperationOptions) => Promise; /** * Performs an API call that will select the item associated to the given row or row index. This method supports a `recurseParent` option that allows for recursively selecting the next unselected parent node. This behavior is considered stateful. Each call to `selectItem` will track the ancestry of the passed in `rowArg`. If calling `selectItem` with a row not belonging to the ancestry of a previous selection, then this method will perform a standard selection. * @param row The row, row index or node to select. * @param options A set of options to configure selection behavior. */ "selectItem": (row: RowArg, { recurseParent, ...options }?: SelectItemOptions) => Promise; /** * Performs an API call that will show the item associated to the given row or row index. * @param row The row, row index, or node to show. */ "showItem": (row: RowArg) => Promise; /** * Performs an API call that will either expand or collapse the node associated to the given row or row index. * @param row The row, row index, or node to collapse or expand. */ "toggleExpandItem": (row: RowArg) => Promise; /** * Performs an API call that will either hide or show the item associated to the given row or row index. * @param row The row, row index, or node to toggle visibility. */ "toggleItemVisibility": (row: RowArg) => Promise; /** * An instance of a `` element. Either this property or `viewerSelector` must be set. */ "viewer"?: HTMLVertexViewerElement | null; /** * A CSS selector that points to a `` element. Either this property or `viewer` must be set. */ "viewerSelector"?: string; } /** * A notification banner that displays a message and an action button. */ interface VertexSceneTreeNotificationBanner { /** * The label of the action button. */ "actionLabel"?: string; /** * The message to display in the banner. */ "message"?: string; } interface VertexSceneTreeSearch { /** * Clears the current search term and clears any debounced filters. */ "clear": () => Promise; /** * The scene tree controller */ "controller"?: SceneTreeController; /** * Specifies the delay, in milliseconds, to emit `search` events after user input. If this value is specified, searches will automatically occur after a keystroke has occurred and the debounce threshold has elapsed. Defaults to `undefined`, and searches only occur on an `Enter` press or a `blur` event. */ "debounce"?: number; /** * If `true`, disables user interaction of the component. * @default false */ "disabled": boolean; /** * Placeholder text if `value` is empty. * @default undefined */ "placeholder"?: string; /** * Gives focus to the component's internal text input. */ "setFocus": () => Promise; /** * The current text value of the component. Value is updated on user interaction. * @default '' */ "value": string; } interface VertexSceneTreeTableCell { /** * Whether to always show the requested icons in the cell. If false, the icons will only appear when hovering over the cell. * @default false */ "alwaysShowIcons": boolean; /** * Indicates whether to display an indicator that the node associated with this cell is an end item. */ "endItemIndicator"?: boolean; /** * Indicates whether to display a button for toggling the expanded state of the node associated with this cell. */ "expandToggle"?: boolean; /** * An optional handler that will override this cell's default expansion behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "expansionHandler"?: SceneTreeOperationHandler; "hoverController"?: SceneTreeCellHoverController; /** * @default false */ "hovered": boolean; "isScrolling"?: boolean; /** * Indicates whether to display a button for isolating (show only + fly to) the node associated with this cell. */ "isolateButton"?: boolean; /** * An optional handler that will override this cell's default isolate behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "isolateHandler"?: SceneTreeOperationHandler; /** * The node data that is associated to the row that this cell belongs to. Contains information related to if the node is expanded, visible, etc. */ "node"?: Node.AsObject; /** * The value to display in this cell if the `value` specified is undefined. Defaults to "--". * @default '--' */ "placeholder": string; /** * An optional handler that will override this cell's default selection behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "selectionHandler"?: SceneTreeOperationHandler; /** * A reference to the scene tree to perform operations for interactions. Such as expansion, visibility and selection. */ "tree"?: HTMLVertexSceneTreeElement; /** * The value to display in this cell. */ "value"?: string; /** * An optional handler that will override this cell's default visibility behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "visibilityHandler"?: SceneTreeOperationHandler; /** * Indicates whether to display a button for toggling the visibility state of the node associated with this cell. */ "visibilityToggle"?: boolean; } interface VertexSceneTreeTableColumn { /** * The initial width of this column. */ "initialWidth"?: number; /** * The maximum width of this column. */ "maxWidth"?: number; /** * The minimum width of this column. */ "minWidth"?: number; } interface VertexSceneTreeTableHeader { } interface VertexSceneTreeTableLayout { /** * Attempts to compute the height of templated cells. Used for internals or testing. * @ignore */ "attemptComputeCellHeight": () => Promise; "controller"?: SceneTreeController; "layoutHeight"?: number; /** * @default 0 */ "layoutOffset": number; "layoutWidth"?: number; /** * The number of offscreen rows above and below the viewport to render. Having a higher number reduces the chance of the browser not displaying a row while scrolling. This prop will be automatically populated based on the `overScanCount` prop specified in the parent `` element. * @default 25 */ "overScanCount": number; /** * A callback that is invoked immediately before a row is about to be rendered. This callback can return additional data that can be bound to in a template. This prop will be automatically populated based on the `rowData` prop specified in the parent `` element. * @example ```html ``` */ "rowData"?: RowDataProvider; /** * @default 24 */ "rowHeight": number; /** * @default [] */ "rows": Row[]; /** * @default 0 */ "scrollOffset": number; /** * Scrolls the table to the provided top value. * @param top The position to scroll to. * @param options A set of options to configure the scrolling behavior. */ "scrollToPosition": (top: number, options: Pick) => Promise; /** * @default 0 */ "totalRows": number; /** * A reference to the scene tree to perform operations for interactions. Such as expansion, visibility and selection. */ "tree"?: HTMLVertexSceneTreeElement; /** * @default 0 */ "viewportEndIndex": number; /** * @default 0 */ "viewportStartIndex": number; } interface VertexSceneTreeTableResizeDivider { } interface VertexSceneTreeToolbar { } interface VertexSceneTreeToolbarGroup { } interface VertexViewer { /** * Adds a cursor to the viewer, and displays it if the cursor has the highest priority. Cursors are managed as a prioritized list. A cursor is displayed if it has the highest priority or if the cursor is the most recently added cursor in the set of cursors with the same priority. To remove a cursor, call `dispose()` on the returned disposable. * @param cursor The cursor to add. * @param priority The priority of the cursor. * @returns A disposable that can be used to remove the cursor. * @see See {@link CursorManager} for constants to pass to `priority`. */ "addCursor": (cursor: Cursor, priority?: number) => Promise; /** * The annotation controller for accessing annotations associated with the scene view. * @readonly */ "annotations": AnnotationController | undefined; /** * Enables or disables the default mouse and touch interactions provided by the viewer. Enabled by default. * @default true */ "cameraControls": boolean; /** * The type of camera model to represent the scene with. Can be either `perspective` or `orthographic`, and defaults to `perspective`. * @default 'perspective' */ "cameraType": FrameCameraType; /** * The controller for accessing canvases and their associated markup. * @readonly */ "canvases": CanvasController | undefined; /** * The Client ID associated with your Vertex Application. */ "clientId"?: string; /** * An object or JSON encoded string that defines configuration settings for the viewer. */ "config"?: PartialConfig | string; /** * Sets the default environment for the viewer. This setting is used for auto-configuring network hosts. Use the `config` property for manually setting hosts. * @see Viewer.config * @default 'platprod' */ "configEnv": Environment; /** * Specifies options related to presentation of cross-sections. Defaults to showing the cross-section with an end cap that matches the part color. * @default { endCapEnabled: true, endCapColor: undefined, } */ "crossSectioning"?: CrossSectioningOptions; /** * Specifies when a depth buffer is requested from rendering. Possible values are: * `undefined`: A depth buffer is never requested. * `final`: A depth buffer is only requested on the final frame. * `all`: A depth buffer is requested for every frame. Depth buffers can increase the amount of data that's sent to a client and can impact rendering performance. Values of `undefined` or `final` should be used when needing the highest rendering performance. Some features, like measurement and pins, require that depth buffers are requested and will override an 'undefined' value when the feature is active. */ "depthBuffers"?: FrameType; /** * Property used for internals or testing. */ "deviceId"?: string; "dispatchFrameDrawn": (frame: Frame) => Promise; /** * Specifies whether to enable temporal refinement of still images. * @default true */ "enableTemporalRefinement": boolean; /** * Specifies experimental rendering options. For Vertex use only. * @default '' */ "experimentalRenderingOptions": string; /** * Experimental flag indicating that connections to Vertex should be established if the viewer is initially hidden through its own style or computed style, or has not been scrolled into view. *Caution:* Setting this flag can result in reduced performance, and should generally not be used in a production setting. * @default false */ "experimentalSkipVisibilityCheck": boolean; /** * Specifies how selected features should be highlighted. */ "featureHighlighting"?: FeatureHighlightOptions; /** * Specifies if and how to render feature lines. */ "featureLines"?: FeatureLineOptions; /** * Specifies when a feature map is returned from rendering. Feature maps include information about the surfaces, edges and cross-sections that are in a frame. Possible values are: * `undefined`: A feature map is never requested. * `final`: A feature map is only requested on the final frame. * `all`: A feature map is requested for every frame. Feature maps can increase the amount of data that's sent to a client and can impact rendering performance. Values of `undefined` or `final` should be used when needing the highest rendering performance. */ "featureMaps"?: FrameType; /** * The last frame that was received, which can be used to inspect the scene and camera information. * @readonly */ "frame": Frame | undefined; "getBaseInteractionHandler": () => Promise; "getInteractionHandlers": () => Promise; /** * The HTML element that will handle interaction events from the user. Used by components to listen for interaction events from the same element as the viewer. Note, this property maybe removed in the future when refactoring our interaction handling. * @deprecated Use `InteractionHandler`. */ "getInteractionTarget_DEPRECATED": () => Promise; /** * @deprecated Use `token`. */ "getJwt": () => Promise; /** * @ignore */ "getKeyInteractions": () => Promise[]>; /** * Returns `true` indicating that the scene is ready to be interacted with. */ "isSceneReady": () => Promise; /** * Enables or disables the default keyboard shortcut interactions provided by the viewer. Enabled by default, requires `cameraControls` being enabled. * @default true */ "keyboardControls": boolean; /** * Loads the given scene into the viewer and return a `Promise` that resolves when the scene has been loaded. The specified scene is provided as a URN in the following format: * `urn:vertex:scene:` * @param urn The URN of the resource to load. * @param options Optional configurations when loading the scene. cameraType (Optional) The camera type to load. If not included, the default camera type for the resource will be used. */ "load": (urn: string, options?: LoadOptions) => Promise; /** * The controller for accessing model views associated with the scene view. * @readonly */ "modelViews": ModelViewController | undefined; /** * Specifies whether to use the default lights for the scene. When false, default lights are used. When true, no default lights are used, and the lights must be specified separately. * @default false */ "noDefaultLights": boolean; /** * Specifies how phantom parts should appear. The opacity must be between 0 and 1, where 0 is completely hidden and 1 is completely visible. * @default { opacity: 0.1 } */ "phantom"?: PhantomOptions; /** * The controller for accessing and viewing PMI. * @readonly */ "pmi": PmiController | undefined; /** * Registers and initializes an interaction handler with the viewer. Returns a `Disposable` that should be used to deregister the interaction handler. `InteractionHandler`s are used to build custom mouse and touch interactions for the viewer. Use `` to disable the default camera controls provided by the viewer. * @example ``` class CustomInteractionHandler extends InteractionHandler { private element: HTMLElement; private api: InteractionApi; public dispose(): void { this.element.removeEventListener('click', this.handleElementClick); } public initialize(element: HTMLElement, api: InteractionApi): void { this.api = api; this.element = element; this.element.addEventListener('click', this.handleElementClick); } private handleElementClick = (event: MouseEvent) => { api.tap({ x: event.clientX, y: event.clientY }); } } const viewer = document.querySelector("vertex-viewer"); viewer.registerInteractionHandler(new CustomInteractionHandler); ``` * @param interactionHandler The interaction handler to register. * @returns A promise containing the disposable to use to deregister the handler. */ "registerBasicInteractionHandler": (interactionHandler: BasicInteractionHandler) => Promise; /** * Registers and initializes an interaction handler with the viewer. Returns a `Disposable` that should be used to deregister the interaction handler. `InteractionHandler`s are used to build custom mouse and touch interactions for the viewer. Use `` to disable the default camera controls provided by the viewer. * @example ``` class CustomInteractionHandler extends InteractionHandler { private element: HTMLElement; private api: InteractionApi; public dispose(): void { this.element.removeEventListener('click', this.handleElementClick); } public initialize(element: HTMLElement, api: InteractionApi): void { this.api = api; this.element = element; this.element.addEventListener('click', this.handleElementClick); } private handleElementClick = (event: MouseEvent) => { api.tap({ x: event.clientX, y: event.clientY }); } } const viewer = document.querySelector("vertex-viewer"); viewer.registerInteractionHandler(new CustomInteractionHandler); ``` * @param interactionHandler The interaction handler to register. * @returns A promise containing the disposable to use to deregister the handler. */ "registerInteractionHandler": (interactionHandler: InteractionHandler) => Promise; /** * Registers a key interaction to be invoked when a specific set of keys are pressed during a `tap` event. `KeyInteraction`s are used to build custom keyboard shortcuts for the viewer using the current state of they keyboard to determine whether the `fn` should be invoked. Use `` to disable the default keyboard shortcuts provided by the viewer. * @example ``` class CustomKeyboardInteraction extends KeyInteraction { constructor(private viewer: HTMLVertexViewerElement) {} public predicate(keyState: KeyState): boolean { return keyState['Alt']; } public async fn(event: TapEventDetails) { const scene = await this.viewer.scene(); const result = await scene.raycaster().hitItems(event.position); if (result.hits.length > 0) { await scene .camera() .fitTo(q => q.withItemId(result.hits[0].itemId)) .render(); } } } ``` * @param keyInteraction - The `KeyInteraction` to register. */ "registerTapKeyInteraction": (keyInteraction: KeyInteraction) => Promise; /** * Disconnects the websocket and clears the internal state associated with the scene before reconnecting to the same scene. */ "reload": () => Promise; /** * An optional value that will debounce frame updates when resizing this viewer element. * @default 100 */ "resizeDebounce": number; "resolvedConfig"?: Config; /** * Sets the rotation interaction behavior. True by default. When rotateAroundTapPoint is true and the user clicks on geometry, then the model will rotate around the point that was clicked. When rotateAroundTapPoint is true and the user clicks in empty space (not on geometry), then the model will rotate around the center of the viewport. When rotateAroundTapPoint is false, then the model will always rotate around the center of the viewport. * @default true */ "rotateAroundTapPoint": boolean; /** * Returns an object that is used to perform operations on the `Scene` that's currently being viewed. These operations include updating items, positioning the camera and performing hit tests. */ "scene": () => Promise; /** * Specifies if and how to compare to another scene */ "sceneComparison"?: SceneComparisonOptions; /** * The controller for accessing and viewing SceneItems. * @readonly */ "sceneItems": SceneItemController | undefined; /** * Specifies the halo selection properties. Parameter notes: * lineWidth values supported currently are 0-5. This width is currently the value x2. For example, 1 will have a pixel width of 2. * color is optional. This will be the color of the selected items in the viewer. * opacity is also optional. The opacity will be applied to everything selected besides the highlighted outer line. */ "selectionHighlighting"?: SelectionHighlightingOptions; /** * A URN of the scene resource to load when the component is mounted in the DOM tree. The specified resource is a URN in the following format: * `urn:vertex:scene:` */ "src"?: string; "stencilBuffer": StencilBufferManager; "stream"?: ViewerStream; /** * A token that can be used to make API calls to other Vertex services. */ "token"?: string; /** * Disconnects the websocket and removes any internal state associated with the scene. */ "unload": () => Promise; /** * Represents the current viewport of the viewer. The viewport represents the dimensions of the canvas where a frame is rendered. It contains methods for translating between viewport coordinates, frame coordinates and world coordinates. * @default Viewport.fromDimensions(Dimensions.create(0, 0)) */ "viewport": Viewport; } interface VertexViewerAnnotationCallout { /** * The data that describes how to render the callout annotation. */ "data": CalloutAnnotationData; /** * The icon size to display. * @default 'sm' */ "iconSize": ViewerIconSize; } /** * The `ViewerBoxQueryTool` allows for the drawing of a "box" on screen to represent * a query for items in a specific area of the viewer. This tool then allows for an * operation to be performed on the items contained (exclusive) by the box or both * contained by and intersecting with (inclusive) the box. */ interface VertexViewerBoxQueryTool { /** * The controller that is responsible for performing operations using the volume intersection query defined by the drawn box and updating the model. */ "controller"?: VolumeIntersectionQueryController; /** * An optional value to specify a singular mode of intersection query. This value defaults to `undefined`, which will indicate that both `exclusive` and `inclusive` queries should be made, with `inclusive` being represented by a left to right drag behavior and `exclusive` being represented by a right to left drag. Setting this value to `inclusive` will cause dragging left to right and left to right to result in an `inclusive` query, and the box will only be styled for `inclusive` queries. Setting this value to `exclusive` will cause dragging left to right and left to right to result in an `exclusive` query, and the box will only be styled for `exclusive` queries. */ "mode"?: VolumeIntersectionQueryMode; /** * The model that contains the points representing the corners of the box displayed on screen, the type of the query to be performed, and methods for setting these values. */ "model"?: VolumeIntersectionQueryModel; /** * The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `clearAndSelect`, and can be changed to `select` or `deselect`. `clearAndSelect` will clear all existing selection, and select the results of the query. `select` will maintain existing selection, and select the results of the query. `deselect` will maintain existing selection, and deselect the results of the query. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller. * @default 'clearAndSelect' */ "operationType": VolumeIntersectionQueryType; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerButton { } interface VertexViewerDefaultToolbar { /** * The duration of animations, in milliseconds. Defaults to `1000`. * @default 1000 */ "animationMs": number; /** * Indicates whether animations will be used when performing camera operations. Defaults to `true`. * @default false */ "animationsDisabled": boolean; /** * Specifies the direction that UI elements are placed. * @default 'horizontal' */ "direction": ViewerToolbarGroupDirection; /** * Specifies where the toolbar is positioned. * @default 'bottom-center' */ "placement": ViewerToolbarPlacement; /** * An instance of the viewer that operations will be performed on. If contained within a `` element, this property will automatically be wired. */ "viewer"?: HTMLVertexViewerElement; } /** * The `ViewerDomElement` is responsible for managing a * `` element. These elements are intended to be * added as children to a `` and represent an * individual DOM element within a local 3D scene. */ interface VertexViewerDomElement { /** * Disables the billboarding behavior of the element. When billboarding is enabled, the element will always be oriented towards the screen. * @default false */ "billboardOff": boolean; /** * **EXPERIMENTAL** Indicates if the element is detached from geometry. This property can be used with a CSS selector to modify the appearance of the element when its detached. * @example ```html ``` * @default false */ "detached": boolean; /** * **EXPERIMENTAL** Disables detached testing for this element. Defaults to disabled. When enabled, the elements position will be tested against the current depth buffer. If the position is detached, then the `detached` attribute will be set. * @default true */ "detachedOff": boolean; /** * Disables interaction events from children. * @default false */ "interactionsOff": boolean; /** * The local matrix of this element. * @default Matrix4.makeIdentity() */ "matrix": Matrix4.Matrix4; /** * Indicates if the element is hidden by geometry. This property can be used with a CSS selector to modify the appearance of the element when its occluded. * @example ```html ``` * @default false */ "occluded": boolean; /** * Disables occlusion testing for this element. Defaults to enabled. When enabled, the elements position will be tested against the current depth buffer. If the position is occluded, then the `occluded` attribute will be set. * @default false */ "occlusionOff": boolean; /** * The local 3D position of where this element is located. * @default Vector3.origin() */ "position": Vector3.Vector3; /** * The local 3D position of where this element is located, as a JSON string. JSON representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "positionJson": string; /** * The local rotation of this element. * @default Quaternion.create() */ "quaternion": Quaternion.Quaternion; /** * The local quaternion rotation of this element, as a JSON string. JSON representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z": 0, "w": 1}`. * @default '' */ "quaternionJson": string; /** * The local rotation of this element in Euler angles. */ "rotation"?: Euler.Euler; /** * The local rotation of this element in Euler angles, as a JSON string. JSON representation can either be `[x, y, z, order]` or `{"x": 0, "y": 0, "z": 0, "order": "xyz"}`. */ "rotationJson"?: string; /** * The local scale of this element. * @default Vector3.create(1, 1, 1) */ "scale": Vector3.Vector3; /** * The local scale of this element, as a JSON string. JSON string representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "scaleJson": string; } interface VertexViewerDomGroup { /** * The local matrix of this element. * @default Matrix4.makeIdentity() */ "matrix": Matrix4.Matrix4; /** * The local 3D position of where this element is located. * @default Vector3.origin() */ "position": Vector3.Vector3; /** * The local 3D position of where this element is located, as a JSON string. JSON representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "positionJson": string; /** * The local rotation of this element. * @default Quaternion.create() */ "quaternion": Quaternion.Quaternion; /** * The local rotation of this element, as a JSON string. JSON representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z": 0, "w": 1}`. * @default '' */ "quaternionJson": string; /** * The local rotation of this element in Euler angles. */ "rotation"?: Euler.Euler; /** * The local rotation of this element in Euler angles, as a JSON string. JSON representation can either be `[x, y, z, order]` or `{"x": 0, "y": 0, "z": 0, "order": "xyz"}`. */ "rotationJson"?: string; /** * The local scale of this element. * @default Vector3.create(1, 1, 1) */ "scale": Vector3.Vector3; /** * The local scale of this element, as a JSON string. JSON string representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "scaleJson": string; } /** * The `ViewerDomRenderer` is responsible for managing a * `` element. This element supports drawing DOM * objects in a local 3D scene that is synced with a remote rendered scene. */ interface VertexViewerDomRenderer { /** * The current camera of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to ``. */ "camera"?: FrameCameraBase; /** * The current depth buffer of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to ``. */ "depthBuffer"?: DepthBuffer; /** * Specifies the drawing mode for the renderer. When in `3d` mode, elements are positioned using CSS 3D transforms and will scale and rotate with the camera. In `2d` mode, a simpler 2D transform is used, and elements will not scale or rotate with camera changes. * @default '3d' */ "drawMode": ViewerDomRendererDrawMode; /** * Specifies whether to propagate events to the viewer's interaction handlers When `true` this will be registered as a valid event target for the viewer. This enables camera interactions to be initiated from elements within this renderer. When `false` this will *not* be registered as a target for the viewer. * @default true */ "propagateEventsToViewer": boolean; /** * The viewer synced to this renderer. This property will automatically be assigned if the renderer is a child of ``. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerHitResultIndicator { /** * The normal of this indicator. This value will be represented as an arrow, and will be used alongside the provided `position` to display a plane. */ "normal"?: Vector3.Vector3; /** * The position of this indicator. A point will be displayed at this position, and it will be used alongside the provided `normal` to display a plane and normal arrow centered at the position. */ "position"?: Vector3.Vector3; /** * The viewer to connect to this indicator. If nested within a , this property will be populated automatically. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerIcon { /** * The name of the icon to render. */ "name"?: ViewerIconName; /** * The size of the icon. Can be `'sm' | 'md' | 'lg' | undefined`. Predefined sizes are set to: * `sm`: 16px * `md`: 24px * `lg`: 32px A custom size can be supplied by setting this field to `undefined` and setting `font-size` through CSS. Defaults to `md`. * @default 'md' */ "size"?: ViewerIconSize1; } interface VertexViewerLayer { /** * Indicates if the layer should stretch to fill the size of its container's nearest positioned parent. * @default false */ "stretchOff": boolean; } interface VertexViewerMarkup { /** * Adds a new markup as a child to this component. A new markup component will be created from the template specified by `arrow-template-id`, `circle-template-id`, or if undefined a default element will be created. * @param markup The markup to add. * @returns The markup element that was created. * @see {@link arrowTemplateId} * @see {@link circleTemplateId} */ "addMarkup": (markup: Markup) => Promise; /** * An HTML template that describes the HTML to use for new arrow markup. It's expected that the template contains a ``. */ "arrowTemplateId"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior": MarkupCenteringBehavior; /** * An HTML template that describes the HTML to use for new circle markup. It's expected that the template contains a ``. */ "circleTemplateId"?: string; /** * If `true`, disables adding or editing of markup through user interaction. * @default false */ "disabled": boolean; /** * The style of the ending anchor. This defaults to 'arrow-triangle.' * @default 'arrow-triangle' */ "endLineAnchorStyle": LineAnchorStyle; /** * An HTML template that describes the HTML to use for new freeform markup. It's expected that the template contains a ``. */ "freeformTemplateId"?: string; /** * Returns the markup element associated to the given ID. * @param id The ID of the markup element to return. * @returns A markup element, or `undefined`. * @see {@link getMarkupElements} */ "getMarkupElement": (id: string) => Promise; /** * Returns a list of markup elements that are children of this component. * @returns A list of all markups. * @see {@link getMarkupElement} */ "getMarkupElements": () => Promise>; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * Removes a markup with the given ID, and returns the HTML element associated to the markup. Returns `undefined` if no markup is found. * @param id The ID of the markup to remove. * @returns The markup element, or undefined. */ "removeMarkup": (id: string) => Promise; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale": number; /** * Indicates if new markup should be automatically selected. * @default false */ "selectNew": boolean; /** * The ID of the markup that is selected. */ "selectedMarkupId"?: string; /** * The style of the starting anchor. This defaults to none. * @default 'none' */ "startLineAnchorStyle": LineAnchorStyle; /** * The type of markup to perform. * @default 'arrow' */ "tool": ViewerMarkupToolType; /** * The viewer to connect to markup. If nested within a , this property will be populated automatically. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerMarkupArrow { /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior": MarkupCenteringBehavior; "dispose": () => Promise; /** * The position of the ending anchor. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "end"?: Point.Point; /** * The position of the ending anchor, as a JSON string. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "endJson"?: string; /** * The style of the ending anchor. This defaults to 'arrow-triangle.' * @default 'arrow-triangle' */ "endLineAnchorStyle": LineAnchorStyle; /** * A mode that specifies how the markup component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the markup anchors are interactive and the user is able to reposition them. When `create`, anytime the user clicks on the canvas, a new markup will be performed. * @default '' */ "mode": ViewerMarkupArrowMode; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale": number; /** * The position of the starting anchor. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "start"?: Point.Point; /** * The position of the starting anchor, as a JSON string. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "startJson"?: string; /** * The style of the starting anchor. This defaults to none. * @default 'none' */ "startLineAnchorStyle": LineAnchorStyle; /** * The viewer to connect to markups. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMarkupCircle { /** * The bounds of the circle. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 10, "height": 10}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a circle with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "bounds"?: Rectangle.Rectangle; /** * The bounds of the circle. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 0.1, "height": 0.1}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a circle with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "boundsJson"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior": MarkupCenteringBehavior; "dispose": () => Promise; /** * A mode that specifies how the markup component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the markup anchors are interactive and the user is able to reposition them. When `create`, anytime the user clicks on the canvas, a new markup will be performed. * @default '' */ "mode": ViewerMarkupCircleMode; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale": number; /** * The viewer to connect to markups. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMarkupFreeform { /** * The bounds of the freeform. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 10, "height": 10}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a freeform with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "bounds"?: Rectangle.Rectangle; /** * The bounds of the freeform. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 0.1, "height": 0.1}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a freeform with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "boundsJson"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior": MarkupCenteringBehavior; "dispose": () => Promise; /** * A mode that specifies how the markup component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the markup anchors are interactive and the user is able to reposition them. When `create`, anytime the user clicks on the canvas, a new markup will be performed. * @default '' */ "mode": ViewerMarkupFreeformMode; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The positions of the various points of this freeform markup. Can either be an array of `Point`s or a JSON string representation in the format of `[[x1, y1], [x2, y2]]` or `[{"x": 0, "y": 0}, {"x": 0, "y": 0}]`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "points"?: Point.Point[]; /** * The positions of the various points of this freeform markup. Can either be an array of `Point`s or a JSON string representation in the format of `[[x1, y1], [x2, y2]]` or `[{"x": 0, "y": 0}, {"x": 0, "y": 0}]`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "pointsJson"?: string; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale": number; /** * The viewer to connect to markups. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMarkupTool { /** * An HTML template that describes the HTML to use for new arrow markup. It's expected that the template contains a ``. */ "arrowTemplateId"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior": MarkupCenteringBehavior; /** * An HTML template that describes the HTML to use for new circle markup. It's expected that the template contains a ``. */ "circleTemplateId"?: string; /** * Disables markups. This property will automatically be set when a child of a `` element. * @default false */ "disabled": boolean; /** * The style of the ending anchor. This defaults to 'arrow-triangle.' * @default 'arrow-triangle' */ "endLineAnchorStyle": LineAnchorStyle; /** * An HTML template that describes the HTML to use for new freeform markup. It's expected that the template contains a ``. */ "freeformTemplateId"?: string; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * Resets the state of the internally managed markup element to allow for creating a new markup. This state is automatically managed when this element is placed as a child of a `` element. */ "reset": () => Promise; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale": number; /** * The style of the starting anchor. This defaults to none. * @default 'none' */ "startLineAnchorStyle": LineAnchorStyle; /** * The type of markup. This property will automatically be set when a child of a `` element. * @default 'arrow' */ "tool": ViewerMarkupToolType1; /** * The viewer to connect to markup. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMeasurementDetails { /** * An optional formatter that can be used to format the display of an angle. The formatting function is passed a calculated angle in degrees and is expected to return a string. */ "angleFormatter"?: Formatter; /** * The unit of angle-based measurement. * @default 'degrees' */ "angleUnits": AngleUnitType; /** * An optional formatter that can be used to format the display of an area. The formatting function is passed a calculated area and is expected to return a string. */ "areaFormatter"?: Formatter; /** * An optional formatter that can be used to format the display of a distance. The formatting function is passed a calculated real-world distance and is expected to return a string. */ "distanceFormatter"?: Formatter; /** * The unit of distance-based measurement. * @default 'millimeters' */ "distanceUnits": DistanceUnitType; /** * The number of fraction digits to display. * @default 2 */ "fractionalDigits": number; /** * The `MeasurementModel` that should be reflected in these details. If not specified, a new `MeasurementModel` will be created, which can then be used to update the display. */ "measurementModel"?: MeasurementModel; /** * The outcome to display. This property is automatically updated if a measurement model is provided. */ "measurementOutcome"?: MeasurementOutcome; /** * The manager that the component will use to present measurement overlays. */ "measurementOverlays"?: MeasurementOverlayManager; /** * A set of result types to display. If `undefined`, then all results will be displayed. */ "resultTypes"?: MeasurementResult['type'][]; } interface VertexViewerMeasurementDistance { /** * The distance from an anchor to its label. * @default 20 */ "anchorLabelOffset": number; /** * The camera used to position the anchors. If `viewer` is defined, then the projection view matrix of the viewer will be used. */ "camera"?: FrameCameraBase1; /** * Computes the bounding boxes of the anchors and label. **Note:** invoking this function uses `getBoundingClientRect` internally and will cause a relayout of the DOM. */ "computeElementMetrics": () => Promise; /** * The distance between `start` and `end` in real world units. Value will be undefined if the start and end positions are undefined, or if the measurement is invalid. */ "distance"?: number; /** * The world position of the ending anchor. */ "end"?: Vector3.Vector3; /** * The world position of the ending anchor, as a JSON string. The JSON string can be an array or object representation in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. */ "endJson"?: string; /** * The number of fraction digits to display. * @default 2 */ "fractionalDigits": number; "hitProvider"?: PointToPointHitProvider; "indicatorPt"?: Vector3.Vector3; /** * A property that reflects which anchor is currently being interacted with. * @default 'none' */ "interactingAnchor": Anchor | 'none'; /** * Indicates if the measurement is invalid. A measurement is invalid if either the start or end position are not on the surface of the model. * @default false */ "invalid": boolean; /** * An optional formatter that can be used to format the display of a distance. The formatting function is passed a calculated real-world distance and is expected to return a string. */ "labelFormatter"?: Formatter; /** * The length of the caps at each end of the distance measurement. * @default MEASUREMENT_LINE_CAP_LENGTH */ "lineCapLength": number; /** * The measurement model that will be updated when this measurement changes. You can pass this to a component to display measurement outcomes. * @default new MeasurementModel() */ "measurementModel": MeasurementModel; /** * A mode that specifies how the measurement component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the measurement anchors are interactive and the user is able to reposition them. When `replace`, anytime the user clicks on the canvas, a new measurement will be created and replace any existing measurement. After a measurement is created, the measurement will be editable. * @default '' */ "mode": ViewerMeasurementDistanceMode; /** * Enables the display of axis reference lines between the start and end point. * @default false */ "showAxisReferenceLines": boolean; /** * The distance, in pixels, between the mouse and nearest snappable edge. A value of 0 disables snapping. * @default MEASUREMENT_SNAP_DISTANCE */ "snapDistance": number; /** * The world position of the starting anchor. */ "start"?: Vector3.Vector3; /** * The world position of the starting anchor, as a JSON string. The JSON string can be an array or object representation in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. */ "startJson"?: string; /** * The unit of measurement. * @default 'millimeters' */ "units": DistanceUnitType; /** * The viewer to connect to this measurement. The measurement will redraw any time the viewer redraws the scene. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerMeasurementLine { /** * A length of the line cap. The line cap is a line at each end of a line. * @default 0 */ "capLength": number; /** * A point that specifies the ending point of the line. * @default Point.create() */ "end": Point.Point; /** * The type of [SVG pointer events](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointer-events) that the line should respond to. * @default 'none' */ "pointerEvents": string; /** * A point that specifies the starting point of the line. * @default Point.create() */ "start": Point.Point; } interface VertexViewerMeasurementOverlays { "camera"?: FrameCameraBase1; /** * The model that contains the overlays to present. * @default new MeasurementOverlayManager() */ "measurementOverlays": MeasurementOverlayManager; /** * The viewer that this component is bound to. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerMeasurementPrecise { /** * An optional configuration to setup network configuration of measurement endpoints. */ "config"?: PartialConfig | string; /** * The environment that will be used to request measurement results. * @default 'platprod' */ "configEnv": Environment; /** * @default [ EntityType.PRECISE_SURFACE, EntityType.IMPRECISE_SURFACE, ] */ "measurableEntityTypes": EntityType[]; /** * The controller that is responsible for performing measurements and updating the model. */ "measurementController"?: MeasurementController; /** * The model that contains the entities and outcomes from performing precise measurements. * @default new MeasurementModel() */ "measurementModel": MeasurementModel; /** * The manager that is responsible for measurement overlays to present by this component. * @default new MeasurementOverlayManager() */ "measurementOverlays": MeasurementOverlayManager; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerPinGroup { /** * @default false */ "detached": boolean; /** * The dimensions of the canvas for the pins */ "elementBounds"?: DOMRect; /** * The local matrix of this element. * @default Matrix4.makeIdentity() */ "matrix": Matrix4.Matrix4; /** * @default false */ "occluded": boolean; /** * The pin to draw for the group */ "pin"?: Pin; /** * The controller that drives behavior for pin operations */ "pinController"?: PinController; /** * The model that contains the entities and outcomes from performing pin operations * @default new PinModel() */ "pinModel": PinModel; /** * Projection view matrix used for computing the position of the pin line * @default Matrix4.makeIdentity() */ "projectionViewMatrix": Matrix4.Matrix4; /** * Whether the pin is "selected" * @default false */ "selected": boolean; } interface VertexViewerPinLabel { /** * The dimensions of the canvas for the pins */ "elementBounds"?: DOMRect; /** * The pin to draw for the group */ "pin"?: TextPin; /** * The controller that drives behavior for pin operations */ "pinController"?: PinController; /** * Gives focus to the component's internal text input. */ "setFocus": () => Promise; "submit": () => Promise; /** * The current text value of the component. Value is updated on user interaction. * @default '' */ "value": string; } interface VertexViewerPinLabelLine { "labelPoint": Point.Point | undefined; "pin": Pin | undefined; "pinPoint": Point.Point | undefined; } interface VertexViewerPinTool { /** * The accent color for new pins. Setting this will override the accent template color, and will be used for any new pins created with this `vertex-viewer-pin-tool`. This styling applies to some background colors, etc */ "accentColor": Color.Color | string | undefined; /** * The mode of the pin tool * @default 'view' */ "mode": ViewerPinToolMode; /** * The controller that is responsible for drawing pins and updating the model */ "pinController"?: PinController; /** * The model that contains the entities and outcomes from performing pin annotations * @default new PinModel() */ "pinModel": PinModel; /** * The primary color for new pins. Setting this will override the primary template color, and will be used for any new pins created with this `vertex-viewer-pin-tool`. This styling applies to pin anchors, and borders, etc. */ "primaryColor": Color.Color | string | undefined; /** * The type of pin. This property will automatically be set. * @default 'pin-icon' */ "tool": ViewerPinToolType; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerSpinner { /** * The size of the spinner. Can be `'xs' | 'sm' | 'md' | 'lg' | undefined`. Predefined sizes are set to: * `xm`: 16px * `sm`: 24px * `md`: 32px * `lg`: 64px * @default 'md' */ "size"?: SpinnerSize; } /** * The `` allows for click-based "teleportation" * around a model, which is particularly useful for walking through a model. * This tool is automatically included as part of the . */ interface VertexViewerTeleportTool { /** * The duration of animations, in milliseconds. Defaults to `500`. * @default 500 */ "animationMs"?: number; /** * Indicates whether animations will be used when performing camera operations. Defaults to `false`. * @default false */ "animationsDisabled": boolean; "controller"?: WalkModeController; /** * The type of teleportation to perform when clicking. `teleport` - the camera's `position` is moved to the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated to align to the plane represented by the hit result's position and normal. `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `undefined` - no teleportation will occur when clicking. Defaults to `undefined`. */ "mode"?: ViewerTeleportMode; /** * @default new WalkModeModel() */ "model": WalkModeModel; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerToolbar { /** * @default 'horizontal' */ "direction": ViewerToolbarDirection; /** * Specifies where the toolbar is positioned. * @default 'bottom-center' */ "placement": ViewerToolbarPlacement; } interface VertexViewerToolbarGroup { /** * @default 'horizontal' */ "direction": ViewerToolbarGroupDirection; } interface VertexViewerTransformWidget { /** * **EXPERIMENTAL.** Performs an undo of the most recent set of transform manipulations, categorized by the last pause in interactivity (pointerup on a handle, Enter press on an input, keyup on an input). Note that this *does not* work repeatedly. I.e. only one undo can be performed, and once another set of transform manipulations is performed, the history is lost. */ "EXPERIMENTAL_undo": () => Promise; /** * **EXPERIMENTAL.** Enables Command+Z and Control+Z keybindings to perform an undo of the previous delta transformation. * @see `EXPERIMENTAL_undo` * @default false */ "EXPERIMENTAL_undoKeybindings": boolean; /** * The unit to show for rotation inputs. Defaults to `degrees`. * @see AngleUnitType * @default 'degrees' */ "angleUnit": AngleUnitType; /** * The controller that is responsible for performing transforms. */ "controller"?: TransformController; /** * The number of decimal places to show in the input. Defaults to `1`. * @default 1 */ "decimalPlaces": number; /** * The unit to show for translation inputs. Defaults to `millimeters`. * @see DistanceUnitType * @default 'millimeters' */ "distanceUnit": DistanceUnitType; /** * @ignore Visible for testing. */ "hovered"?: Drawable; /** * Specifies the frequency, in milliseconds, to update the transform while interacting with the widget. This delay is used to group events happening in quick succession and results in smoother widget movement. * @default 75 */ "interactionThrottle": number; /** * The starting position of this transform widget. This position will be updated as transforms occur. Setting this value to `undefined` will remove the widget. */ "position"?: Vector3.Vector3; /** * The starting angle for the transform widget. This rotation will be updated as the rotations occur. */ "rotation"?: Euler.Euler; /** * Scalar to increase the size of the rotation handles of this widget. Values above zero and below three will result in the best visual representation of the handles, and values above three may produce unexpected results. Defaults to `1`. * @default 1 */ "rotationHandleScalar": number; /** * When defined, the widget will snap to the degree of the nearest multiple of the given number when the user is rotating with the widget and holding the key defined by rotationSnapKey. Defaults to undefined. */ "rotationSnapDegrees"?: number; /** * When rotationSnapDegrees is defined, the widget will snap to the degree of the nearest multiple of the given number when the user is rotating with the widget and holding the key defined here. Defaults to the shift key. * @default 'shift' */ "rotationSnapKey": ModifierKey; /** * Whether to show inputs beside the widget handles when they are interacted with. Defaults to `true`. * @default true */ "showInputs": boolean; /** * Scalar to increase the size of the translation handles of this widget. Values above zero and below three will result in the best visual representation of the handles, and values above three may produce unexpected results. Defaults to `1`. * @default 1 */ "translationHandleScalar": number; /** * The viewer to connect to transforms. If nested within a , this property will be populated automatically. */ "viewer"?: HTMLVertexViewerElement; /** * Determines whether the x-rotation is disabled on the widget * @default false */ "xRotationDisabled": boolean; /** * Determines whether the x-translation is disabled on the widget * @default false */ "xTranslationDisabled": boolean; /** * Determines whether the xy-translation is disabled on the widget * @default false */ "xyTranslationDisabled": boolean; /** * Determines whether the xz-translation is disabled on the widget * @default false */ "xzTranslationDisabled": boolean; /** * Determines whether the y-rotation is disabled on the widget * @default false */ "yRotationDisabled": boolean; /** * Determines whether the y-translation is disabled on the widget * @default false */ "yTranslationDisabled": boolean; /** * Determines whether the yz-translation is disabled on the widget * @default false */ "yzTranslationDisabled": boolean; /** * Determines whether the z-rotation is disabled on the widget * @default false */ "zRotationDisabled": boolean; /** * Determines whether the z-translation is disabled on the widget * @default false */ "zTranslationDisabled": boolean; } interface VertexViewerViewCube { /** * The duration of the animation, in milliseconds, when a user performs a standard view interaction. Set to 0 to disable animations. * @default 500 */ "animationDuration": number; "camera"?: FramePerspectiveCamera; /** * Disables interactions for standard views. * @default false */ "standardViewsOff": boolean; /** * Disables the display of the triad. * @default false */ "triadOff": boolean; /** * Whether to perform a `viewAll` when clicking on the view cube. If this is set to `false`, the current `lookAt` point will be maintained, and the camera's `position` and `up` vectors will be aligned to the standard view. Defaults to `true`. **Note** Setting this value to `false` can result in the camera being placed underneath geometry depending on the current `viewVector` length, resulting in a view that may be unexpected. * @default true */ "viewAll": boolean; /** * The viewer element that is connected to the view cube. */ "viewer"?: HTMLVertexViewerElement; /** * @default Orientation.DEFAULT */ "worldOrientation": Orientation; /** * The label for the side of the cube on the negative x-axis. * @default 'Left' */ "xNegativeLabel": string; /** * The label for the side of the cube on the positive x-axis. * @default 'Right' */ "xPositiveLabel": string; /** * The label for the side of the cube on the negative y-axis. * @default 'Bottom' */ "yNegativeLabel": string; /** * The label for the side of the cube on the positive y-axis. * @default 'Top' */ "yPositiveLabel": string; /** * The label for the side of the cube on the negative z-axis. * @default 'Back' */ "zNegativeLabel": string; /** * The label for the side of the cube on the positive z-axis. * @default 'Front' */ "zPositiveLabel": string; } /** * The `` allows for additional interactions * intended for walking through a model instead of orbiting a model. */ interface VertexViewerWalkModeTool { /** * The `WalkModeController` responsible for controlling `KeyBinding`s and excluded elements, as well as updating the `WalkModeModel` with various configuration settings. */ "controller"?: WalkModeController; /** * Determines whether the interaction handlers for this tool should respond to events. When set to `true`, the default viewer interaction mode will be overridden to use the `pivot` camera interaction type, keyboard controls for movement will be added, and setting the `teleportMode` will enable the tool. Defaults to `true`. * @default true */ "enabled": boolean; /** * The `WalkModeModel` responsible for tracking configuration and emitting events for interaction handlers to respond to. * @default new WalkModeModel() */ "model": WalkModeModel; /** * The type of teleportation to perform when clicking. This value is passed through to a ``'s mode attribute. `teleport` - the camera's `position` is moved to the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated to align to the plane represented by the hit result's position and normal. `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `undefined` - no teleportation will occur when clicking. Defaults to `undefined`. */ "teleportMode"?: ViewerTeleportMode; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } } export interface VertexSceneTreeCustomEvent extends CustomEvent { detail: T; target: HTMLVertexSceneTreeElement; } export interface VertexSceneTreeNotificationBannerCustomEvent extends CustomEvent { detail: T; target: HTMLVertexSceneTreeNotificationBannerElement; } export interface VertexSceneTreeSearchCustomEvent extends CustomEvent { detail: T; target: HTMLVertexSceneTreeSearchElement; } export interface VertexSceneTreeTableCellCustomEvent extends CustomEvent { detail: T; target: HTMLVertexSceneTreeTableCellElement; } export interface VertexSceneTreeTableLayoutCustomEvent extends CustomEvent { detail: T; target: HTMLVertexSceneTreeTableLayoutElement; } export interface VertexViewerCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerElement; } export interface VertexViewerBoxQueryToolCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerBoxQueryToolElement; } export interface VertexViewerDomElementCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerDomElementElement; } export interface VertexViewerDomGroupCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerDomGroupElement; } export interface VertexViewerMarkupCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerMarkupElement; } export interface VertexViewerMarkupArrowCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerMarkupArrowElement; } export interface VertexViewerMarkupCircleCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerMarkupCircleElement; } export interface VertexViewerMarkupFreeformCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerMarkupFreeformElement; } export interface VertexViewerMarkupToolCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerMarkupToolElement; } export interface VertexViewerMeasurementDistanceCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerMeasurementDistanceElement; } export interface VertexViewerPinLabelCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerPinLabelElement; } export interface VertexViewerTeleportToolCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerTeleportToolElement; } export interface VertexViewerTransformWidgetCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerTransformWidgetElement; } export interface VertexViewerWalkModeToolCustomEvent extends CustomEvent { detail: T; target: HTMLVertexViewerWalkModeToolElement; } declare global { interface HTMLVertexSceneTreeElementEventMap { "connectionError": SceneTreeErrorDetails; "firstRowRendered": void; } interface HTMLVertexSceneTreeElement extends Components.VertexSceneTree, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexSceneTreeElement, ev: VertexSceneTreeCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexSceneTreeElement, ev: VertexSceneTreeCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexSceneTreeElement: { prototype: HTMLVertexSceneTreeElement; new (): HTMLVertexSceneTreeElement; }; interface HTMLVertexSceneTreeNotificationBannerElementEventMap { "action": void; } /** * A notification banner that displays a message and an action button. */ interface HTMLVertexSceneTreeNotificationBannerElement extends Components.VertexSceneTreeNotificationBanner, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexSceneTreeNotificationBannerElement, ev: VertexSceneTreeNotificationBannerCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexSceneTreeNotificationBannerElement, ev: VertexSceneTreeNotificationBannerCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexSceneTreeNotificationBannerElement: { prototype: HTMLVertexSceneTreeNotificationBannerElement; new (): HTMLVertexSceneTreeNotificationBannerElement; }; interface HTMLVertexSceneTreeSearchElementEventMap { "search": string; "searchCompleted": string; } interface HTMLVertexSceneTreeSearchElement extends Components.VertexSceneTreeSearch, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexSceneTreeSearchElement, ev: VertexSceneTreeSearchCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexSceneTreeSearchElement, ev: VertexSceneTreeSearchCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexSceneTreeSearchElement: { prototype: HTMLVertexSceneTreeSearchElement; new (): HTMLVertexSceneTreeSearchElement; }; interface HTMLVertexSceneTreeTableCellElementEventMap { "expandToggled": SceneTreeTableCellEventDetails; "visibilityToggled": SceneTreeTableCellEventDetails; "selectionToggled": SceneTreeTableCellEventDetails; "isolatePressed": SceneTreeTableCellEventDetails; "cellLoaded": void; } interface HTMLVertexSceneTreeTableCellElement extends Components.VertexSceneTreeTableCell, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexSceneTreeTableCellElement, ev: VertexSceneTreeTableCellCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexSceneTreeTableCellElement, ev: VertexSceneTreeTableCellCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexSceneTreeTableCellElement: { prototype: HTMLVertexSceneTreeTableCellElement; new (): HTMLVertexSceneTreeTableCellElement; }; interface HTMLVertexSceneTreeTableColumnElement extends Components.VertexSceneTreeTableColumn, HTMLStencilElement { } var HTMLVertexSceneTreeTableColumnElement: { prototype: HTMLVertexSceneTreeTableColumnElement; new (): HTMLVertexSceneTreeTableColumnElement; }; interface HTMLVertexSceneTreeTableHeaderElement extends Components.VertexSceneTreeTableHeader, HTMLStencilElement { } var HTMLVertexSceneTreeTableHeaderElement: { prototype: HTMLVertexSceneTreeTableHeaderElement; new (): HTMLVertexSceneTreeTableHeaderElement; }; interface HTMLVertexSceneTreeTableLayoutElementEventMap { "layoutRendered": void; "columnsResized": number[]; } interface HTMLVertexSceneTreeTableLayoutElement extends Components.VertexSceneTreeTableLayout, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexSceneTreeTableLayoutElement, ev: VertexSceneTreeTableLayoutCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexSceneTreeTableLayoutElement, ev: VertexSceneTreeTableLayoutCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexSceneTreeTableLayoutElement: { prototype: HTMLVertexSceneTreeTableLayoutElement; new (): HTMLVertexSceneTreeTableLayoutElement; }; interface HTMLVertexSceneTreeTableResizeDividerElement extends Components.VertexSceneTreeTableResizeDivider, HTMLStencilElement { } var HTMLVertexSceneTreeTableResizeDividerElement: { prototype: HTMLVertexSceneTreeTableResizeDividerElement; new (): HTMLVertexSceneTreeTableResizeDividerElement; }; interface HTMLVertexSceneTreeToolbarElement extends Components.VertexSceneTreeToolbar, HTMLStencilElement { } var HTMLVertexSceneTreeToolbarElement: { prototype: HTMLVertexSceneTreeToolbarElement; new (): HTMLVertexSceneTreeToolbarElement; }; interface HTMLVertexSceneTreeToolbarGroupElement extends Components.VertexSceneTreeToolbarGroup, HTMLStencilElement { } var HTMLVertexSceneTreeToolbarGroupElement: { prototype: HTMLVertexSceneTreeToolbarGroupElement; new (): HTMLVertexSceneTreeToolbarGroupElement; }; interface HTMLVertexViewerElementEventMap { "tap": TapEventDetails; "doubletap": TapEventDetails; "longpress": TapEventDetails; "frameReceived": Frame; "frameDrawn": Frame; "tokenExpired": void; "connectionChange": ConnectionStatus; "sceneReady": void; "sceneChanged": void; "interactionStarted": void; "interactionFinished": void; "cameraTypeChanged": FrameCameraType; "annotationStateChanged": AnnotationState; "deviceIdChange": string; "dimensionschange": Dimensions.Dimensions; } interface HTMLVertexViewerElement extends Components.VertexViewer, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerElement, ev: VertexViewerCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerElement, ev: VertexViewerCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerElement: { prototype: HTMLVertexViewerElement; new (): HTMLVertexViewerElement; }; interface HTMLVertexViewerAnnotationCalloutElement extends Components.VertexViewerAnnotationCallout, HTMLStencilElement { } var HTMLVertexViewerAnnotationCalloutElement: { prototype: HTMLVertexViewerAnnotationCalloutElement; new (): HTMLVertexViewerAnnotationCalloutElement; }; interface HTMLVertexViewerBoxQueryToolElementEventMap { "controllerChanged": VolumeIntersectionQueryController; } /** * The `ViewerBoxQueryTool` allows for the drawing of a "box" on screen to represent * a query for items in a specific area of the viewer. This tool then allows for an * operation to be performed on the items contained (exclusive) by the box or both * contained by and intersecting with (inclusive) the box. */ interface HTMLVertexViewerBoxQueryToolElement extends Components.VertexViewerBoxQueryTool, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerBoxQueryToolElement, ev: VertexViewerBoxQueryToolCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerBoxQueryToolElement, ev: VertexViewerBoxQueryToolCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerBoxQueryToolElement: { prototype: HTMLVertexViewerBoxQueryToolElement; new (): HTMLVertexViewerBoxQueryToolElement; }; interface HTMLVertexViewerButtonElement extends Components.VertexViewerButton, HTMLStencilElement { } var HTMLVertexViewerButtonElement: { prototype: HTMLVertexViewerButtonElement; new (): HTMLVertexViewerButtonElement; }; interface HTMLVertexViewerDefaultToolbarElement extends Components.VertexViewerDefaultToolbar, HTMLStencilElement { } var HTMLVertexViewerDefaultToolbarElement: { prototype: HTMLVertexViewerDefaultToolbarElement; new (): HTMLVertexViewerDefaultToolbarElement; }; interface HTMLVertexViewerDomElementElementEventMap { "occlusionStateChanged": boolean; "detachedStateChanged": boolean; "propertyChange": void; } /** * The `ViewerDomElement` is responsible for managing a * `` element. These elements are intended to be * added as children to a `` and represent an * individual DOM element within a local 3D scene. */ interface HTMLVertexViewerDomElementElement extends Components.VertexViewerDomElement, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerDomElementElement, ev: VertexViewerDomElementCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerDomElementElement, ev: VertexViewerDomElementCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerDomElementElement: { prototype: HTMLVertexViewerDomElementElement; new (): HTMLVertexViewerDomElementElement; }; interface HTMLVertexViewerDomGroupElementEventMap { "propertyChange": void; } interface HTMLVertexViewerDomGroupElement extends Components.VertexViewerDomGroup, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerDomGroupElement, ev: VertexViewerDomGroupCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerDomGroupElement, ev: VertexViewerDomGroupCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerDomGroupElement: { prototype: HTMLVertexViewerDomGroupElement; new (): HTMLVertexViewerDomGroupElement; }; /** * The `ViewerDomRenderer` is responsible for managing a * `` element. This element supports drawing DOM * objects in a local 3D scene that is synced with a remote rendered scene. */ interface HTMLVertexViewerDomRendererElement extends Components.VertexViewerDomRenderer, HTMLStencilElement { } var HTMLVertexViewerDomRendererElement: { prototype: HTMLVertexViewerDomRendererElement; new (): HTMLVertexViewerDomRendererElement; }; interface HTMLVertexViewerHitResultIndicatorElement extends Components.VertexViewerHitResultIndicator, HTMLStencilElement { } var HTMLVertexViewerHitResultIndicatorElement: { prototype: HTMLVertexViewerHitResultIndicatorElement; new (): HTMLVertexViewerHitResultIndicatorElement; }; interface HTMLVertexViewerIconElement extends Components.VertexViewerIcon, HTMLStencilElement { } var HTMLVertexViewerIconElement: { prototype: HTMLVertexViewerIconElement; new (): HTMLVertexViewerIconElement; }; interface HTMLVertexViewerLayerElement extends Components.VertexViewerLayer, HTMLStencilElement { } var HTMLVertexViewerLayerElement: { prototype: HTMLVertexViewerLayerElement; new (): HTMLVertexViewerLayerElement; }; interface HTMLVertexViewerMarkupElementEventMap { "markupAdded": | HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement; "markupChanged": | HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement; "markupRemoved": | HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement; "markupSelectionChanged": | HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement | undefined; } interface HTMLVertexViewerMarkupElement extends Components.VertexViewerMarkup, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerMarkupElement, ev: VertexViewerMarkupCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerMarkupElement, ev: VertexViewerMarkupCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerMarkupElement: { prototype: HTMLVertexViewerMarkupElement; new (): HTMLVertexViewerMarkupElement; }; interface HTMLVertexViewerMarkupArrowElementEventMap { "interactionBegin": void; "interactionEnd": MarkupInteraction; } interface HTMLVertexViewerMarkupArrowElement extends Components.VertexViewerMarkupArrow, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerMarkupArrowElement, ev: VertexViewerMarkupArrowCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerMarkupArrowElement, ev: VertexViewerMarkupArrowCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerMarkupArrowElement: { prototype: HTMLVertexViewerMarkupArrowElement; new (): HTMLVertexViewerMarkupArrowElement; }; interface HTMLVertexViewerMarkupCircleElementEventMap { "interactionBegin": void; "interactionEnd": MarkupInteraction; } interface HTMLVertexViewerMarkupCircleElement extends Components.VertexViewerMarkupCircle, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerMarkupCircleElement, ev: VertexViewerMarkupCircleCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerMarkupCircleElement, ev: VertexViewerMarkupCircleCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerMarkupCircleElement: { prototype: HTMLVertexViewerMarkupCircleElement; new (): HTMLVertexViewerMarkupCircleElement; }; interface HTMLVertexViewerMarkupFreeformElementEventMap { "interactionBegin": void; "interactionEnd": MarkupInteraction; } interface HTMLVertexViewerMarkupFreeformElement extends Components.VertexViewerMarkupFreeform, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerMarkupFreeformElement, ev: VertexViewerMarkupFreeformCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerMarkupFreeformElement, ev: VertexViewerMarkupFreeformCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerMarkupFreeformElement: { prototype: HTMLVertexViewerMarkupFreeformElement; new (): HTMLVertexViewerMarkupFreeformElement; }; interface HTMLVertexViewerMarkupToolElementEventMap { "markupBegin": void; "markupEnd": Markup; } interface HTMLVertexViewerMarkupToolElement extends Components.VertexViewerMarkupTool, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerMarkupToolElement, ev: VertexViewerMarkupToolCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerMarkupToolElement, ev: VertexViewerMarkupToolCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerMarkupToolElement: { prototype: HTMLVertexViewerMarkupToolElement; new (): HTMLVertexViewerMarkupToolElement; }; interface HTMLVertexViewerMeasurementDetailsElement extends Components.VertexViewerMeasurementDetails, HTMLStencilElement { } var HTMLVertexViewerMeasurementDetailsElement: { prototype: HTMLVertexViewerMeasurementDetailsElement; new (): HTMLVertexViewerMeasurementDetailsElement; }; interface HTMLVertexViewerMeasurementDistanceElementEventMap { "editBegin": EditBeginEventDetails; "editEnd": EditEndEventDetails; } interface HTMLVertexViewerMeasurementDistanceElement extends Components.VertexViewerMeasurementDistance, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerMeasurementDistanceElement, ev: VertexViewerMeasurementDistanceCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerMeasurementDistanceElement, ev: VertexViewerMeasurementDistanceCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerMeasurementDistanceElement: { prototype: HTMLVertexViewerMeasurementDistanceElement; new (): HTMLVertexViewerMeasurementDistanceElement; }; interface HTMLVertexViewerMeasurementLineElement extends Components.VertexViewerMeasurementLine, HTMLStencilElement { } var HTMLVertexViewerMeasurementLineElement: { prototype: HTMLVertexViewerMeasurementLineElement; new (): HTMLVertexViewerMeasurementLineElement; }; interface HTMLVertexViewerMeasurementOverlaysElement extends Components.VertexViewerMeasurementOverlays, HTMLStencilElement { } var HTMLVertexViewerMeasurementOverlaysElement: { prototype: HTMLVertexViewerMeasurementOverlaysElement; new (): HTMLVertexViewerMeasurementOverlaysElement; }; interface HTMLVertexViewerMeasurementPreciseElement extends Components.VertexViewerMeasurementPrecise, HTMLStencilElement { } var HTMLVertexViewerMeasurementPreciseElement: { prototype: HTMLVertexViewerMeasurementPreciseElement; new (): HTMLVertexViewerMeasurementPreciseElement; }; interface HTMLVertexViewerPinGroupElement extends Components.VertexViewerPinGroup, HTMLStencilElement { } var HTMLVertexViewerPinGroupElement: { prototype: HTMLVertexViewerPinGroupElement; new (): HTMLVertexViewerPinGroupElement; }; interface HTMLVertexViewerPinLabelElementEventMap { "labelChanged": void; "labelFocused": string | undefined; "labelBlurred": string | undefined; } interface HTMLVertexViewerPinLabelElement extends Components.VertexViewerPinLabel, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerPinLabelElement, ev: VertexViewerPinLabelCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerPinLabelElement, ev: VertexViewerPinLabelCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerPinLabelElement: { prototype: HTMLVertexViewerPinLabelElement; new (): HTMLVertexViewerPinLabelElement; }; interface HTMLVertexViewerPinLabelLineElement extends Components.VertexViewerPinLabelLine, HTMLStencilElement { } var HTMLVertexViewerPinLabelLineElement: { prototype: HTMLVertexViewerPinLabelLineElement; new (): HTMLVertexViewerPinLabelLineElement; }; interface HTMLVertexViewerPinToolElement extends Components.VertexViewerPinTool, HTMLStencilElement { } var HTMLVertexViewerPinToolElement: { prototype: HTMLVertexViewerPinToolElement; new (): HTMLVertexViewerPinToolElement; }; interface HTMLVertexViewerSpinnerElement extends Components.VertexViewerSpinner, HTMLStencilElement { } var HTMLVertexViewerSpinnerElement: { prototype: HTMLVertexViewerSpinnerElement; new (): HTMLVertexViewerSpinnerElement; }; interface HTMLVertexViewerTeleportToolElementEventMap { "controllerChanged": WalkModeController; } /** * The `` allows for click-based "teleportation" * around a model, which is particularly useful for walking through a model. * This tool is automatically included as part of the . */ interface HTMLVertexViewerTeleportToolElement extends Components.VertexViewerTeleportTool, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerTeleportToolElement, ev: VertexViewerTeleportToolCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerTeleportToolElement, ev: VertexViewerTeleportToolCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerTeleportToolElement: { prototype: HTMLVertexViewerTeleportToolElement; new (): HTMLVertexViewerTeleportToolElement; }; interface HTMLVertexViewerToolbarElement extends Components.VertexViewerToolbar, HTMLStencilElement { } var HTMLVertexViewerToolbarElement: { prototype: HTMLVertexViewerToolbarElement; new (): HTMLVertexViewerToolbarElement; }; interface HTMLVertexViewerToolbarGroupElement extends Components.VertexViewerToolbarGroup, HTMLStencilElement { } var HTMLVertexViewerToolbarGroupElement: { prototype: HTMLVertexViewerToolbarGroupElement; new (): HTMLVertexViewerToolbarGroupElement; }; interface HTMLVertexViewerTransformWidgetElementEventMap { "positionChanged": Vector3.Vector3 | undefined; "rotationChanged": Euler.Euler | undefined; "interactionEnded": Matrix4.Matrix4 | undefined; "interactionStarted": void; } interface HTMLVertexViewerTransformWidgetElement extends Components.VertexViewerTransformWidget, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerTransformWidgetElement, ev: VertexViewerTransformWidgetCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerTransformWidgetElement, ev: VertexViewerTransformWidgetCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerTransformWidgetElement: { prototype: HTMLVertexViewerTransformWidgetElement; new (): HTMLVertexViewerTransformWidgetElement; }; interface HTMLVertexViewerViewCubeElement extends Components.VertexViewerViewCube, HTMLStencilElement { } var HTMLVertexViewerViewCubeElement: { prototype: HTMLVertexViewerViewCubeElement; new (): HTMLVertexViewerViewCubeElement; }; interface HTMLVertexViewerWalkModeToolElementEventMap { "controllerChanged": WalkModeController; } /** * The `` allows for additional interactions * intended for walking through a model instead of orbiting a model. */ interface HTMLVertexViewerWalkModeToolElement extends Components.VertexViewerWalkModeTool, HTMLStencilElement { addEventListener(type: K, listener: (this: HTMLVertexViewerWalkModeToolElement, ev: VertexViewerWalkModeToolCustomEvent) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void; addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLVertexViewerWalkModeToolElement, ev: VertexViewerWalkModeToolCustomEvent) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void; removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void; } var HTMLVertexViewerWalkModeToolElement: { prototype: HTMLVertexViewerWalkModeToolElement; new (): HTMLVertexViewerWalkModeToolElement; }; interface HTMLElementTagNameMap { "vertex-scene-tree": HTMLVertexSceneTreeElement; "vertex-scene-tree-notification-banner": HTMLVertexSceneTreeNotificationBannerElement; "vertex-scene-tree-search": HTMLVertexSceneTreeSearchElement; "vertex-scene-tree-table-cell": HTMLVertexSceneTreeTableCellElement; "vertex-scene-tree-table-column": HTMLVertexSceneTreeTableColumnElement; "vertex-scene-tree-table-header": HTMLVertexSceneTreeTableHeaderElement; "vertex-scene-tree-table-layout": HTMLVertexSceneTreeTableLayoutElement; "vertex-scene-tree-table-resize-divider": HTMLVertexSceneTreeTableResizeDividerElement; "vertex-scene-tree-toolbar": HTMLVertexSceneTreeToolbarElement; "vertex-scene-tree-toolbar-group": HTMLVertexSceneTreeToolbarGroupElement; "vertex-viewer": HTMLVertexViewerElement; "vertex-viewer-annotation-callout": HTMLVertexViewerAnnotationCalloutElement; "vertex-viewer-box-query-tool": HTMLVertexViewerBoxQueryToolElement; "vertex-viewer-button": HTMLVertexViewerButtonElement; "vertex-viewer-default-toolbar": HTMLVertexViewerDefaultToolbarElement; "vertex-viewer-dom-element": HTMLVertexViewerDomElementElement; "vertex-viewer-dom-group": HTMLVertexViewerDomGroupElement; "vertex-viewer-dom-renderer": HTMLVertexViewerDomRendererElement; "vertex-viewer-hit-result-indicator": HTMLVertexViewerHitResultIndicatorElement; "vertex-viewer-icon": HTMLVertexViewerIconElement; "vertex-viewer-layer": HTMLVertexViewerLayerElement; "vertex-viewer-markup": HTMLVertexViewerMarkupElement; "vertex-viewer-markup-arrow": HTMLVertexViewerMarkupArrowElement; "vertex-viewer-markup-circle": HTMLVertexViewerMarkupCircleElement; "vertex-viewer-markup-freeform": HTMLVertexViewerMarkupFreeformElement; "vertex-viewer-markup-tool": HTMLVertexViewerMarkupToolElement; "vertex-viewer-measurement-details": HTMLVertexViewerMeasurementDetailsElement; "vertex-viewer-measurement-distance": HTMLVertexViewerMeasurementDistanceElement; "vertex-viewer-measurement-line": HTMLVertexViewerMeasurementLineElement; "vertex-viewer-measurement-overlays": HTMLVertexViewerMeasurementOverlaysElement; "vertex-viewer-measurement-precise": HTMLVertexViewerMeasurementPreciseElement; "vertex-viewer-pin-group": HTMLVertexViewerPinGroupElement; "vertex-viewer-pin-label": HTMLVertexViewerPinLabelElement; "vertex-viewer-pin-label-line": HTMLVertexViewerPinLabelLineElement; "vertex-viewer-pin-tool": HTMLVertexViewerPinToolElement; "vertex-viewer-spinner": HTMLVertexViewerSpinnerElement; "vertex-viewer-teleport-tool": HTMLVertexViewerTeleportToolElement; "vertex-viewer-toolbar": HTMLVertexViewerToolbarElement; "vertex-viewer-toolbar-group": HTMLVertexViewerToolbarGroupElement; "vertex-viewer-transform-widget": HTMLVertexViewerTransformWidgetElement; "vertex-viewer-view-cube": HTMLVertexViewerViewCubeElement; "vertex-viewer-walk-mode-tool": HTMLVertexViewerWalkModeToolElement; } } declare namespace LocalJSX { interface VertexSceneTree { /** * An object to configure the scene tree. */ "config"?: PartialConfig | string; /** * Sets the default environment for the viewer. This setting is used for auto-configuring network hosts. Use the `config` property for manually setting hosts. * @default 'platprod' */ "configEnv"?: Environment; "controller"?: SceneTreeController; /** * A list of part metadata keys that will be made available to each row. This metadata can be used for data binding inside the scene tree's template. **Note:** for the values of these metadata keys to be evaluated for search, they must be provided to the `metadataSearchKeys` specified in the `searchOptions`. Otherwise, the search will only be performed against the item name. * @default [] */ "metadataKeys"?: MetadataKey[]; /** * @deprecated Use `searchOptions` Indicates whether the metadata search should use an exact match. * @default false */ "metadataSearchExactMatch"?: boolean; /** * @deprecated Use `searchOptions` A list of the metadata keys that a scene tree search should be performed on. * @default [] */ "metadataSearchKeys"?: MetadataKey[]; /** * An event that is emitted when this encounters a connection error. */ "onConnectionError"?: (event: VertexSceneTreeCustomEvent) => void; /** * An event that is emitted when the first row of this has been rendered. */ "onFirstRowRendered"?: (event: VertexSceneTreeCustomEvent) => void; /** * The duration of operations with animations, in milliseconds, when a user performs an action that results in an animation such as isolate. Defaults to 500ms. * @default 500 */ "operationAnimationDuration"?: number; /** * The number of offscreen rows above and below the viewport to render. Having a higher number reduces the chance of the browser not displaying a row while scrolling. * @default 25 */ "overScanCount"?: number; /** * A callback that is invoked immediately before a row is about to be rendered. This callback can return additional data that can be bound to in a template. * @example ```html ``` */ "rowData"?: RowDataProvider; /** * A set of options to configure scene tree searching behavior. * @default {} */ "searchOptions"?: FilterOptions; /** * An instance of a `` element. Either this property or `viewerSelector` must be set. */ "viewer"?: HTMLVertexViewerElement | null; /** * A CSS selector that points to a `` element. Either this property or `viewer` must be set. */ "viewerSelector"?: string; } /** * A notification banner that displays a message and an action button. */ interface VertexSceneTreeNotificationBanner { /** * The label of the action button. */ "actionLabel"?: string; /** * The message to display in the banner. */ "message"?: string; /** * An event that is emitted when the action button is clicked. */ "onAction"?: (event: VertexSceneTreeNotificationBannerCustomEvent) => void; } interface VertexSceneTreeSearch { /** * The scene tree controller */ "controller"?: SceneTreeController; /** * Specifies the delay, in milliseconds, to emit `search` events after user input. If this value is specified, searches will automatically occur after a keystroke has occurred and the debounce threshold has elapsed. Defaults to `undefined`, and searches only occur on an `Enter` press or a `blur` event. */ "debounce"?: number; /** * If `true`, disables user interaction of the component. * @default false */ "disabled"?: boolean; /** * An event that is emitted when a user has changed or cleared the search term. The event may be delayed according to the current `debounce` value. */ "onSearch"?: (event: VertexSceneTreeSearchCustomEvent) => void; /** * An event that is emitted when a search has completed. */ "onSearchCompleted"?: (event: VertexSceneTreeSearchCustomEvent) => void; /** * Placeholder text if `value` is empty. * @default undefined */ "placeholder"?: string; /** * The current text value of the component. Value is updated on user interaction. * @default '' */ "value"?: string; } interface VertexSceneTreeTableCell { /** * Whether to always show the requested icons in the cell. If false, the icons will only appear when hovering over the cell. * @default false */ "alwaysShowIcons"?: boolean; /** * Indicates whether to display an indicator that the node associated with this cell is an end item. */ "endItemIndicator"?: boolean; /** * Indicates whether to display a button for toggling the expanded state of the node associated with this cell. */ "expandToggle"?: boolean; /** * An optional handler that will override this cell's default expansion behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "expansionHandler"?: SceneTreeOperationHandler; /** * Indicates whether to display a button for isolating (show only + fly to) the node associated with this cell. */ "isolateButton"?: boolean; /** * An optional handler that will override this cell's default isolate behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "isolateHandler"?: SceneTreeOperationHandler; /** * The node data that is associated to the row that this cell belongs to. Contains information related to if the node is expanded, visible, etc. */ "node"?: Node.AsObject; /** * Used for internals or testing. * @private */ "onCellLoaded"?: (event: VertexSceneTreeTableCellCustomEvent) => void; /** * An event that is emitted when a user requests to expand the node. This is emitted even if interactions are disabled. */ "onExpandToggled"?: (event: VertexSceneTreeTableCellCustomEvent) => void; /** * An event that is emitted when a user requests to isolate the node. This event is emitted even if interactions are disabled. */ "onIsolatePressed"?: (event: VertexSceneTreeTableCellCustomEvent) => void; /** * An event that is emitted when a user requests to change the node's selection state. This event is emitted even if interactions are disabled. */ "onSelectionToggled"?: (event: VertexSceneTreeTableCellCustomEvent) => void; /** * An event that is emitted when a user requests to change the node's visibility. This event is emitted even if interactions are disabled. */ "onVisibilityToggled"?: (event: VertexSceneTreeTableCellCustomEvent) => void; /** * The value to display in this cell if the `value` specified is undefined. Defaults to "--". * @default '--' */ "placeholder"?: string; /** * An optional handler that will override this cell's default selection behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "selectionHandler"?: SceneTreeOperationHandler; /** * A reference to the scene tree to perform operations for interactions. Such as expansion, visibility and selection. */ "tree"?: HTMLVertexSceneTreeElement; /** * The value to display in this cell. */ "value"?: string; /** * An optional handler that will override this cell's default visibility behavior. The registered handler will receive the `pointerup` event, the node data for the row this cell is associated with, and a reference to the parent `` element for performing operations. */ "visibilityHandler"?: SceneTreeOperationHandler; /** * Indicates whether to display a button for toggling the visibility state of the node associated with this cell. */ "visibilityToggle"?: boolean; } interface VertexSceneTreeTableColumn { /** * The initial width of this column. */ "initialWidth"?: number; /** * The maximum width of this column. */ "maxWidth"?: number; /** * The minimum width of this column. */ "minWidth"?: number; } interface VertexSceneTreeTableHeader { } interface VertexSceneTreeTableLayout { /** * An event that is emitted when the columns of this `` are resized with an array containing the widths of the columns in pixels. */ "onColumnsResized"?: (event: VertexSceneTreeTableLayoutCustomEvent) => void; /** * The number of offscreen rows above and below the viewport to render. Having a higher number reduces the chance of the browser not displaying a row while scrolling. This prop will be automatically populated based on the `overScanCount` prop specified in the parent `` element. * @default 25 */ "overScanCount"?: number; /** * A callback that is invoked immediately before a row is about to be rendered. This callback can return additional data that can be bound to in a template. This prop will be automatically populated based on the `rowData` prop specified in the parent `` element. * @example ```html ``` */ "rowData"?: RowDataProvider; /** * A reference to the scene tree to perform operations for interactions. Such as expansion, visibility and selection. */ "tree"?: HTMLVertexSceneTreeElement; } interface VertexSceneTreeTableResizeDivider { } interface VertexSceneTreeToolbar { } interface VertexSceneTreeToolbarGroup { } interface VertexViewer { /** * The annotation controller for accessing annotations associated with the scene view. * @readonly */ "annotations"?: AnnotationController | undefined; /** * Enables or disables the default mouse and touch interactions provided by the viewer. Enabled by default. * @default true */ "cameraControls"?: boolean; /** * The type of camera model to represent the scene with. Can be either `perspective` or `orthographic`, and defaults to `perspective`. * @default 'perspective' */ "cameraType"?: FrameCameraType; /** * The controller for accessing canvases and their associated markup. * @readonly */ "canvases"?: CanvasController | undefined; /** * The Client ID associated with your Vertex Application. */ "clientId"?: string; /** * An object or JSON encoded string that defines configuration settings for the viewer. */ "config"?: PartialConfig | string; /** * Sets the default environment for the viewer. This setting is used for auto-configuring network hosts. Use the `config` property for manually setting hosts. * @see Viewer.config * @default 'platprod' */ "configEnv"?: Environment; /** * Specifies options related to presentation of cross-sections. Defaults to showing the cross-section with an end cap that matches the part color. * @default { endCapEnabled: true, endCapColor: undefined, } */ "crossSectioning"?: CrossSectioningOptions; /** * Specifies when a depth buffer is requested from rendering. Possible values are: * `undefined`: A depth buffer is never requested. * `final`: A depth buffer is only requested on the final frame. * `all`: A depth buffer is requested for every frame. Depth buffers can increase the amount of data that's sent to a client and can impact rendering performance. Values of `undefined` or `final` should be used when needing the highest rendering performance. Some features, like measurement and pins, require that depth buffers are requested and will override an 'undefined' value when the feature is active. */ "depthBuffers"?: FrameType; /** * Specifies whether to enable temporal refinement of still images. * @default true */ "enableTemporalRefinement"?: boolean; /** * Experimental flag indicating that connections to Vertex should be established if the viewer is initially hidden through its own style or computed style, or has not been scrolled into view. *Caution:* Setting this flag can result in reduced performance, and should generally not be used in a production setting. * @default false */ "experimentalSkipVisibilityCheck"?: boolean; /** * Specifies how selected features should be highlighted. */ "featureHighlighting"?: FeatureHighlightOptions; /** * Specifies if and how to render feature lines. */ "featureLines"?: FeatureLineOptions; /** * Specifies when a feature map is returned from rendering. Feature maps include information about the surfaces, edges and cross-sections that are in a frame. Possible values are: * `undefined`: A feature map is never requested. * `final`: A feature map is only requested on the final frame. * `all`: A feature map is requested for every frame. Feature maps can increase the amount of data that's sent to a client and can impact rendering performance. Values of `undefined` or `final` should be used when needing the highest rendering performance. */ "featureMaps"?: FrameType; /** * The last frame that was received, which can be used to inspect the scene and camera information. * @readonly */ "frame"?: Frame | undefined; /** * Enables or disables the default keyboard shortcut interactions provided by the viewer. Enabled by default, requires `cameraControls` being enabled. * @default true */ "keyboardControls"?: boolean; /** * The controller for accessing model views associated with the scene view. * @readonly */ "modelViews"?: ModelViewController | undefined; /** * Specifies whether to use the default lights for the scene. When false, default lights are used. When true, no default lights are used, and the lights must be specified separately. * @default false */ "noDefaultLights"?: boolean; /** * Emits an event when the state for annotation changes. */ "onAnnotationStateChanged"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when the camera type changes. */ "onCameraTypeChanged"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when the connection status changes for the viewer */ "onConnectionChange"?: (event: VertexViewerCustomEvent) => void; "onDimensionschange"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event whenever the user double taps or clicks a location in the viewer. The event includes the location of the first tap or click. */ "onDoubletap"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when a frame has been drawn to the viewer's canvas. The event will include details about the drawn frame, such as the `Scene` information related to the scene. */ "onFrameDrawn"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when a frame has been received by the viewer. The event will include details about the drawn frame, such as the `Scene` information related to the scene. */ "onFrameReceived"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when the user hs finished an interaction. */ "onInteractionFinished"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when the user has started an interaction. */ "onInteractionStarted"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event whenever the user taps or clicks a location in the viewer and the configured amount of time passes without receiving a mouseup or touchend. The event includes the location of the tap or click. */ "onLongpress"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when a frame is received with a different scene attribute. */ "onSceneChanged"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when the scene is ready to be interacted with. */ "onSceneReady"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event whenever the user taps or clicks a location in the viewer. The event includes the location of the tap or click. This event can be used in combination with the {@link scene} method to query for items at the point of the tap. * @see {@link Scene.raycaster Scene.raycaster} for more information. */ "onTap"?: (event: VertexViewerCustomEvent) => void; /** * Emits an event when a provided oauth2 token is about to expire, or is about to expire, causing issues with establishing a websocket connection, or performing API calls. */ "onTokenExpired"?: (event: VertexViewerCustomEvent) => void; /** * Specifies how phantom parts should appear. The opacity must be between 0 and 1, where 0 is completely hidden and 1 is completely visible. * @default { opacity: 0.1 } */ "phantom"?: PhantomOptions; /** * The controller for accessing and viewing PMI. * @readonly */ "pmi"?: PmiController | undefined; /** * An optional value that will debounce frame updates when resizing this viewer element. * @default 100 */ "resizeDebounce"?: number; /** * Sets the rotation interaction behavior. True by default. When rotateAroundTapPoint is true and the user clicks on geometry, then the model will rotate around the point that was clicked. When rotateAroundTapPoint is true and the user clicks in empty space (not on geometry), then the model will rotate around the center of the viewport. When rotateAroundTapPoint is false, then the model will always rotate around the center of the viewport. * @default true */ "rotateAroundTapPoint"?: boolean; /** * Specifies if and how to compare to another scene */ "sceneComparison"?: SceneComparisonOptions; /** * The controller for accessing and viewing SceneItems. * @readonly */ "sceneItems"?: SceneItemController | undefined; /** * Specifies the halo selection properties. Parameter notes: * lineWidth values supported currently are 0-5. This width is currently the value x2. For example, 1 will have a pixel width of 2. * color is optional. This will be the color of the selected items in the viewer. * opacity is also optional. The opacity will be applied to everything selected besides the highlighted outer line. */ "selectionHighlighting"?: SelectionHighlightingOptions; /** * A URN of the scene resource to load when the component is mounted in the DOM tree. The specified resource is a URN in the following format: * `urn:vertex:scene:` */ "src"?: string; /** * Represents the current viewport of the viewer. The viewport represents the dimensions of the canvas where a frame is rendered. It contains methods for translating between viewport coordinates, frame coordinates and world coordinates. * @default Viewport.fromDimensions(Dimensions.create(0, 0)) */ "viewport"?: Viewport; } interface VertexViewerAnnotationCallout { /** * The data that describes how to render the callout annotation. */ "data": CalloutAnnotationData; /** * The icon size to display. * @default 'sm' */ "iconSize"?: ViewerIconSize; } /** * The `ViewerBoxQueryTool` allows for the drawing of a "box" on screen to represent * a query for items in a specific area of the viewer. This tool then allows for an * operation to be performed on the items contained (exclusive) by the box or both * contained by and intersecting with (inclusive) the box. */ interface VertexViewerBoxQueryTool { /** * The controller that is responsible for performing operations using the volume intersection query defined by the drawn box and updating the model. */ "controller"?: VolumeIntersectionQueryController; /** * An optional value to specify a singular mode of intersection query. This value defaults to `undefined`, which will indicate that both `exclusive` and `inclusive` queries should be made, with `inclusive` being represented by a left to right drag behavior and `exclusive` being represented by a right to left drag. Setting this value to `inclusive` will cause dragging left to right and left to right to result in an `inclusive` query, and the box will only be styled for `inclusive` queries. Setting this value to `exclusive` will cause dragging left to right and left to right to result in an `exclusive` query, and the box will only be styled for `exclusive` queries. */ "mode"?: VolumeIntersectionQueryMode; /** * The model that contains the points representing the corners of the box displayed on screen, the type of the query to be performed, and methods for setting these values. */ "model"?: VolumeIntersectionQueryModel; /** * Event emitted when the `VolumeIntersectionQueryController` associated with this tool changes. */ "onControllerChanged"?: (event: VertexViewerBoxQueryToolCustomEvent) => void; /** * The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `clearAndSelect`, and can be changed to `select` or `deselect`. `clearAndSelect` will clear all existing selection, and select the results of the query. `select` will maintain existing selection, and select the results of the query. `deselect` will maintain existing selection, and deselect the results of the query. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller. * @default 'clearAndSelect' */ "operationType"?: VolumeIntersectionQueryType; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerButton { } interface VertexViewerDefaultToolbar { /** * The duration of animations, in milliseconds. Defaults to `1000`. * @default 1000 */ "animationMs"?: number; /** * Indicates whether animations will be used when performing camera operations. Defaults to `true`. * @default false */ "animationsDisabled"?: boolean; /** * Specifies the direction that UI elements are placed. * @default 'horizontal' */ "direction"?: ViewerToolbarGroupDirection; /** * Specifies where the toolbar is positioned. * @default 'bottom-center' */ "placement"?: ViewerToolbarPlacement; /** * An instance of the viewer that operations will be performed on. If contained within a `` element, this property will automatically be wired. */ "viewer"?: HTMLVertexViewerElement; } /** * The `ViewerDomElement` is responsible for managing a * `` element. These elements are intended to be * added as children to a `` and represent an * individual DOM element within a local 3D scene. */ interface VertexViewerDomElement { /** * Disables the billboarding behavior of the element. When billboarding is enabled, the element will always be oriented towards the screen. * @default false */ "billboardOff"?: boolean; /** * **EXPERIMENTAL** Indicates if the element is detached from geometry. This property can be used with a CSS selector to modify the appearance of the element when its detached. * @example ```html ``` * @default false */ "detached"?: boolean; /** * **EXPERIMENTAL** Disables detached testing for this element. Defaults to disabled. When enabled, the elements position will be tested against the current depth buffer. If the position is detached, then the `detached` attribute will be set. * @default true */ "detachedOff"?: boolean; /** * Disables interaction events from children. * @default false */ "interactionsOff"?: boolean; /** * The local matrix of this element. * @default Matrix4.makeIdentity() */ "matrix"?: Matrix4.Matrix4; /** * Indicates if the element is hidden by geometry. This property can be used with a CSS selector to modify the appearance of the element when its occluded. * @example ```html ``` * @default false */ "occluded"?: boolean; /** * Disables occlusion testing for this element. Defaults to enabled. When enabled, the elements position will be tested against the current depth buffer. If the position is occluded, then the `occluded` attribute will be set. * @default false */ "occlusionOff"?: boolean; /** * **EXPERIMENTAL** Dispatched when the detached state is changed. */ "onDetachedStateChanged"?: (event: VertexViewerDomElementCustomEvent) => void; /** * Dispatched when the occlusion state is changed. */ "onOcclusionStateChanged"?: (event: VertexViewerDomElementCustomEvent) => void; /** * An event that is emitted when any property on the dom group changes */ "onPropertyChange"?: (event: VertexViewerDomElementCustomEvent) => void; /** * The local 3D position of where this element is located. * @default Vector3.origin() */ "position"?: Vector3.Vector3; /** * The local 3D position of where this element is located, as a JSON string. JSON representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "positionJson"?: string; /** * The local rotation of this element. * @default Quaternion.create() */ "quaternion"?: Quaternion.Quaternion; /** * The local quaternion rotation of this element, as a JSON string. JSON representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z": 0, "w": 1}`. * @default '' */ "quaternionJson"?: string; /** * The local rotation of this element in Euler angles. */ "rotation"?: Euler.Euler; /** * The local rotation of this element in Euler angles, as a JSON string. JSON representation can either be `[x, y, z, order]` or `{"x": 0, "y": 0, "z": 0, "order": "xyz"}`. */ "rotationJson"?: string; /** * The local scale of this element. * @default Vector3.create(1, 1, 1) */ "scale"?: Vector3.Vector3; /** * The local scale of this element, as a JSON string. JSON string representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "scaleJson"?: string; } interface VertexViewerDomGroup { /** * The local matrix of this element. * @default Matrix4.makeIdentity() */ "matrix"?: Matrix4.Matrix4; /** * An event that is emitted when any property on the dom group changes */ "onPropertyChange"?: (event: VertexViewerDomGroupCustomEvent) => void; /** * The local 3D position of where this element is located. * @default Vector3.origin() */ "position"?: Vector3.Vector3; /** * The local 3D position of where this element is located, as a JSON string. JSON representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "positionJson"?: string; /** * The local rotation of this element. * @default Quaternion.create() */ "quaternion"?: Quaternion.Quaternion; /** * The local rotation of this element, as a JSON string. JSON representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z": 0, "w": 1}`. * @default '' */ "quaternionJson"?: string; /** * The local rotation of this element in Euler angles. */ "rotation"?: Euler.Euler; /** * The local rotation of this element in Euler angles, as a JSON string. JSON representation can either be `[x, y, z, order]` or `{"x": 0, "y": 0, "z": 0, "order": "xyz"}`. */ "rotationJson"?: string; /** * The local scale of this element. * @default Vector3.create(1, 1, 1) */ "scale"?: Vector3.Vector3; /** * The local scale of this element, as a JSON string. JSON string representation can either be in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. * @default '' */ "scaleJson"?: string; } /** * The `ViewerDomRenderer` is responsible for managing a * `` element. This element supports drawing DOM * objects in a local 3D scene that is synced with a remote rendered scene. */ interface VertexViewerDomRenderer { /** * The current camera of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to ``. */ "camera"?: FrameCameraBase; /** * The current depth buffer of the frame. This property will automatically be set when supplying a viewer to the component, or when added as a child to ``. */ "depthBuffer"?: DepthBuffer; /** * Specifies the drawing mode for the renderer. When in `3d` mode, elements are positioned using CSS 3D transforms and will scale and rotate with the camera. In `2d` mode, a simpler 2D transform is used, and elements will not scale or rotate with camera changes. * @default '3d' */ "drawMode"?: ViewerDomRendererDrawMode; /** * Specifies whether to propagate events to the viewer's interaction handlers When `true` this will be registered as a valid event target for the viewer. This enables camera interactions to be initiated from elements within this renderer. When `false` this will *not* be registered as a target for the viewer. * @default true */ "propagateEventsToViewer"?: boolean; /** * The viewer synced to this renderer. This property will automatically be assigned if the renderer is a child of ``. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerHitResultIndicator { /** * The normal of this indicator. This value will be represented as an arrow, and will be used alongside the provided `position` to display a plane. */ "normal"?: Vector3.Vector3; /** * The position of this indicator. A point will be displayed at this position, and it will be used alongside the provided `normal` to display a plane and normal arrow centered at the position. */ "position"?: Vector3.Vector3; /** * The viewer to connect to this indicator. If nested within a , this property will be populated automatically. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerIcon { /** * The name of the icon to render. */ "name"?: ViewerIconName; /** * The size of the icon. Can be `'sm' | 'md' | 'lg' | undefined`. Predefined sizes are set to: * `sm`: 16px * `md`: 24px * `lg`: 32px A custom size can be supplied by setting this field to `undefined` and setting `font-size` through CSS. Defaults to `md`. * @default 'md' */ "size"?: ViewerIconSize1; } interface VertexViewerLayer { /** * Indicates if the layer should stretch to fill the size of its container's nearest positioned parent. * @default false */ "stretchOff"?: boolean; } interface VertexViewerMarkup { /** * An HTML template that describes the HTML to use for new arrow markup. It's expected that the template contains a ``. */ "arrowTemplateId"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior"?: MarkupCenteringBehavior; /** * An HTML template that describes the HTML to use for new circle markup. It's expected that the template contains a ``. */ "circleTemplateId"?: string; /** * If `true`, disables adding or editing of markup through user interaction. * @default false */ "disabled"?: boolean; /** * The style of the ending anchor. This defaults to 'arrow-triangle.' * @default 'arrow-triangle' */ "endLineAnchorStyle"?: LineAnchorStyle; /** * An HTML template that describes the HTML to use for new freeform markup. It's expected that the template contains a ``. */ "freeformTemplateId"?: string; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * Dispatched when a new markup is added, either through user interaction or programmatically. */ "onMarkupAdded"?: (event: VertexViewerMarkupCustomEvent<| HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement>) => void; /** * Dispatched when an existing piece of markup is changed, either through user interaction or programmatically. */ "onMarkupChanged"?: (event: VertexViewerMarkupCustomEvent<| HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement>) => void; /** * Dispatched when a markup is removed, either through user interaction or programmatically. */ "onMarkupRemoved"?: (event: VertexViewerMarkupCustomEvent<| HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement>) => void; /** * Dispatched when markup selection changes. Will either be the selected element or `undefined` indicating that selection was cleared. */ "onMarkupSelectionChanged"?: (event: VertexViewerMarkupCustomEvent<| HTMLVertexViewerMarkupArrowElement | HTMLVertexViewerMarkupCircleElement | HTMLVertexViewerMarkupFreeformElement | undefined>) => void; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale"?: number; /** * Indicates if new markup should be automatically selected. * @default false */ "selectNew"?: boolean; /** * The ID of the markup that is selected. */ "selectedMarkupId"?: string; /** * The style of the starting anchor. This defaults to none. * @default 'none' */ "startLineAnchorStyle"?: LineAnchorStyle; /** * The type of markup to perform. * @default 'arrow' */ "tool"?: ViewerMarkupToolType; /** * The viewer to connect to markup. If nested within a , this property will be populated automatically. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerMarkupArrow { /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior"?: MarkupCenteringBehavior; /** * The position of the ending anchor. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "end"?: Point.Point; /** * The position of the ending anchor, as a JSON string. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "endJson"?: string; /** * The style of the ending anchor. This defaults to 'arrow-triangle.' * @default 'arrow-triangle' */ "endLineAnchorStyle"?: LineAnchorStyle; /** * A mode that specifies how the markup component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the markup anchors are interactive and the user is able to reposition them. When `create`, anytime the user clicks on the canvas, a new markup will be performed. * @default '' */ "mode"?: ViewerMarkupArrowMode; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * An event that is dispatched anytime the user begins interacting with the markup. */ "onInteractionBegin"?: (event: VertexViewerMarkupArrowCustomEvent) => void; /** * An event that is dispatched when the user has finished interacting with the markup. */ "onInteractionEnd"?: (event: VertexViewerMarkupArrowCustomEvent) => void; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale"?: number; /** * The position of the starting anchor. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "start"?: Point.Point; /** * The position of the starting anchor, as a JSON string. Can either be an instance of a `Point` or a JSON string representation in the format of `[x, y]` or `{"x": 0, "y": 0}`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "startJson"?: string; /** * The style of the starting anchor. This defaults to none. * @default 'none' */ "startLineAnchorStyle"?: LineAnchorStyle; /** * The viewer to connect to markups. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMarkupCircle { /** * The bounds of the circle. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 10, "height": 10}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a circle with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "bounds"?: Rectangle.Rectangle; /** * The bounds of the circle. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 0.1, "height": 0.1}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a circle with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "boundsJson"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior"?: MarkupCenteringBehavior; /** * A mode that specifies how the markup component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the markup anchors are interactive and the user is able to reposition them. When `create`, anytime the user clicks on the canvas, a new markup will be performed. * @default '' */ "mode"?: ViewerMarkupCircleMode; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * An event that is dispatched anytime the user begins interacting with the markup. */ "onInteractionBegin"?: (event: VertexViewerMarkupCircleCustomEvent) => void; /** * An event that is dispatched when the user has finished interacting with the markup. */ "onInteractionEnd"?: (event: VertexViewerMarkupCircleCustomEvent) => void; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale"?: number; /** * The viewer to connect to markups. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMarkupFreeform { /** * The bounds of the freeform. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 10, "height": 10}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a freeform with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "bounds"?: Rectangle.Rectangle; /** * The bounds of the freeform. Can either be an instance of a `Rectangle` or a JSON string representation in the format of `[x, y, width, height]` or `{"x": 0, "y": 0, "width": 0.1, "height": 0.1}`. Bounds are expected to have relative coordinates, with `[x, y]` from `[-0.5, 0.5]` and `[width, height]` from `[0, 1]`, e.g. `[0, 0, 0.25, 0.25]`corresponds to a freeform with a diameter of one fourth the viewport's smallest size in the center of the viewport. */ "boundsJson"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior"?: MarkupCenteringBehavior; /** * A mode that specifies how the markup component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the markup anchors are interactive and the user is able to reposition them. When `create`, anytime the user clicks on the canvas, a new markup will be performed. * @default '' */ "mode"?: ViewerMarkupFreeformMode; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * An event that is dispatched anytime the user begins interacting with the markup. */ "onInteractionBegin"?: (event: VertexViewerMarkupFreeformCustomEvent) => void; /** * An event that is dispatched when the user has finished interacting with the markup. */ "onInteractionEnd"?: (event: VertexViewerMarkupFreeformCustomEvent) => void; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The positions of the various points of this freeform markup. Can either be an array of `Point`s or a JSON string representation in the format of `[[x1, y1], [x2, y2]]` or `[{"x": 0, "y": 0}, {"x": 0, "y": 0}]`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "points"?: Point.Point[]; /** * The positions of the various points of this freeform markup. Can either be an array of `Point`s or a JSON string representation in the format of `[[x1, y1], [x2, y2]]` or `[{"x": 0, "y": 0}, {"x": 0, "y": 0}]`. Points are expected to be relative coordinates from `[-0.5, 0.5]`, e.g. `[0, 0]` corresponds to a point in the center of the viewport. */ "pointsJson"?: string; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale"?: number; /** * The viewer to connect to markups. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMarkupTool { /** * An HTML template that describes the HTML to use for new arrow markup. It's expected that the template contains a ``. */ "arrowTemplateId"?: string; /** * Defines the behavior of the provided markup when the originating viewport is smaller than the current viewport, or is scaled to a size smaller than the current viewport using the `scale` property. Options: - `x-only`: Markup will be centered horizontally, but not vertically. - `y-only`: Markup will be centered vertically, but not horizontally. - `both`: Markup will be centered both horizontally and vertically. - `none`: Markup will not be centered (default). * @default 'none' */ "centeringBehavior"?: MarkupCenteringBehavior; /** * An HTML template that describes the HTML to use for new circle markup. It's expected that the template contains a ``. */ "circleTemplateId"?: string; /** * Disables markups. This property will automatically be set when a child of a `` element. * @default false */ "disabled"?: boolean; /** * The style of the ending anchor. This defaults to 'arrow-triangle.' * @default 'arrow-triangle' */ "endLineAnchorStyle"?: LineAnchorStyle; /** * An HTML template that describes the HTML to use for new freeform markup. It's expected that the template contains a ``. */ "freeformTemplateId"?: string; /** * The current offset of the visible viewport. This value is used to determine where markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all computed coordinates will be offset by this amount. */ "offset"?: Point.Point; /** * An event that is dispatched when a user begins a new markup. */ "onMarkupBegin"?: (event: VertexViewerMarkupToolCustomEvent) => void; /** * An event that is dispatched when a user has finished their markup. */ "onMarkupEnd"?: (event: VertexViewerMarkupToolCustomEvent) => void; /** * The original viewport dimensions where this markup was created. This value is used to determine where the markup should be rendered relative to the current viewport, enabling some markup to appear "off-screen". When provided, all NDC values will be considered relative to this viewport. */ "originatingViewport"?: Dimensions.Dimensions; /** * The scale to render this markup at. This value is used to scale the element's bounds along with any `offset` to determine the final computed coordinates. When provided, all computed coordinates will be scaled by this amount. * @default 1 */ "scale"?: number; /** * The style of the starting anchor. This defaults to none. * @default 'none' */ "startLineAnchorStyle"?: LineAnchorStyle; /** * The type of markup. This property will automatically be set when a child of a `` element. * @default 'arrow' */ "tool"?: ViewerMarkupToolType1; /** * The viewer to connect to markup. This property will automatically be set when a child of a `` or `` element. */ "viewer"?: BasicViewer; } interface VertexViewerMeasurementDetails { /** * An optional formatter that can be used to format the display of an angle. The formatting function is passed a calculated angle in degrees and is expected to return a string. */ "angleFormatter"?: Formatter; /** * The unit of angle-based measurement. * @default 'degrees' */ "angleUnits"?: AngleUnitType; /** * An optional formatter that can be used to format the display of an area. The formatting function is passed a calculated area and is expected to return a string. */ "areaFormatter"?: Formatter; /** * An optional formatter that can be used to format the display of a distance. The formatting function is passed a calculated real-world distance and is expected to return a string. */ "distanceFormatter"?: Formatter; /** * The unit of distance-based measurement. * @default 'millimeters' */ "distanceUnits"?: DistanceUnitType; /** * The number of fraction digits to display. * @default 2 */ "fractionalDigits"?: number; /** * The `MeasurementModel` that should be reflected in these details. If not specified, a new `MeasurementModel` will be created, which can then be used to update the display. */ "measurementModel"?: MeasurementModel; /** * The outcome to display. This property is automatically updated if a measurement model is provided. */ "measurementOutcome"?: MeasurementOutcome; /** * The manager that the component will use to present measurement overlays. */ "measurementOverlays"?: MeasurementOverlayManager; /** * A set of result types to display. If `undefined`, then all results will be displayed. */ "resultTypes"?: MeasurementResult['type'][]; } interface VertexViewerMeasurementDistance { /** * The distance from an anchor to its label. * @default 20 */ "anchorLabelOffset"?: number; /** * The camera used to position the anchors. If `viewer` is defined, then the projection view matrix of the viewer will be used. */ "camera"?: FrameCameraBase1; /** * The distance between `start` and `end` in real world units. Value will be undefined if the start and end positions are undefined, or if the measurement is invalid. */ "distance"?: number; /** * The world position of the ending anchor. */ "end"?: Vector3.Vector3; /** * The world position of the ending anchor, as a JSON string. The JSON string can be an array or object representation in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. */ "endJson"?: string; /** * The number of fraction digits to display. * @default 2 */ "fractionalDigits"?: number; /** * A property that reflects which anchor is currently being interacted with. * @default 'none' */ "interactingAnchor"?: Anchor | 'none'; /** * Indicates if the measurement is invalid. A measurement is invalid if either the start or end position are not on the surface of the model. * @default false */ "invalid"?: boolean; /** * An optional formatter that can be used to format the display of a distance. The formatting function is passed a calculated real-world distance and is expected to return a string. */ "labelFormatter"?: Formatter; /** * The length of the caps at each end of the distance measurement. * @default MEASUREMENT_LINE_CAP_LENGTH */ "lineCapLength"?: number; /** * The measurement model that will be updated when this measurement changes. You can pass this to a component to display measurement outcomes. * @default new MeasurementModel() */ "measurementModel"?: MeasurementModel; /** * A mode that specifies how the measurement component should behave. When unset, the component will not respond to interactions with the handles. When `edit`, the measurement anchors are interactive and the user is able to reposition them. When `replace`, anytime the user clicks on the canvas, a new measurement will be created and replace any existing measurement. After a measurement is created, the measurement will be editable. * @default '' */ "mode"?: ViewerMeasurementDistanceMode; /** * An event that is dispatched anytime the user begins editing the measurement. */ "onEditBegin"?: (event: VertexViewerMeasurementDistanceCustomEvent) => void; /** * An event that is dispatched when the user has finished editing the measurement. */ "onEditEnd"?: (event: VertexViewerMeasurementDistanceCustomEvent) => void; /** * Enables the display of axis reference lines between the start and end point. * @default false */ "showAxisReferenceLines"?: boolean; /** * The distance, in pixels, between the mouse and nearest snappable edge. A value of 0 disables snapping. * @default MEASUREMENT_SNAP_DISTANCE */ "snapDistance"?: number; /** * The world position of the starting anchor. */ "start"?: Vector3.Vector3; /** * The world position of the starting anchor, as a JSON string. The JSON string can be an array or object representation in the format of `[x, y, z]` or `{"x": 0, "y": 0, "z": 0}`. */ "startJson"?: string; /** * The unit of measurement. * @default 'millimeters' */ "units"?: DistanceUnitType; /** * The viewer to connect to this measurement. The measurement will redraw any time the viewer redraws the scene. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerMeasurementLine { /** * A length of the line cap. The line cap is a line at each end of a line. * @default 0 */ "capLength"?: number; /** * A point that specifies the ending point of the line. * @default Point.create() */ "end"?: Point.Point; /** * The type of [SVG pointer events](https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/pointer-events) that the line should respond to. * @default 'none' */ "pointerEvents"?: string; /** * A point that specifies the starting point of the line. * @default Point.create() */ "start"?: Point.Point; } interface VertexViewerMeasurementOverlays { /** * The model that contains the overlays to present. * @default new MeasurementOverlayManager() */ "measurementOverlays"?: MeasurementOverlayManager; /** * The viewer that this component is bound to. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerMeasurementPrecise { /** * An optional configuration to setup network configuration of measurement endpoints. */ "config"?: PartialConfig | string; /** * The environment that will be used to request measurement results. * @default 'platprod' */ "configEnv"?: Environment; /** * The controller that is responsible for performing measurements and updating the model. */ "measurementController"?: MeasurementController; /** * The model that contains the entities and outcomes from performing precise measurements. * @default new MeasurementModel() */ "measurementModel"?: MeasurementModel; /** * The manager that is responsible for measurement overlays to present by this component. * @default new MeasurementOverlayManager() */ "measurementOverlays"?: MeasurementOverlayManager; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerPinGroup { /** * The dimensions of the canvas for the pins */ "elementBounds"?: DOMRect; /** * The local matrix of this element. * @default Matrix4.makeIdentity() */ "matrix"?: Matrix4.Matrix4; /** * The pin to draw for the group */ "pin"?: Pin; /** * The controller that drives behavior for pin operations */ "pinController"?: PinController; /** * The model that contains the entities and outcomes from performing pin operations * @default new PinModel() */ "pinModel"?: PinModel; /** * Projection view matrix used for computing the position of the pin line * @default Matrix4.makeIdentity() */ "projectionViewMatrix"?: Matrix4.Matrix4; /** * Whether the pin is "selected" * @default false */ "selected"?: boolean; } interface VertexViewerPinLabel { /** * The dimensions of the canvas for the pins */ "elementBounds"?: DOMRect; /** * Emitted whenever the label is blurred, with the ID of the associated pin (or undefined if no pin is provided). */ "onLabelBlurred"?: (event: VertexViewerPinLabelCustomEvent) => void; /** * Emitted whenever the label is focused, with the ID of the associated pin (or undefined if no pin is provided). */ "onLabelFocused"?: (event: VertexViewerPinLabelCustomEvent) => void; /** * The pin to draw for the group */ "pin"?: TextPin; /** * The controller that drives behavior for pin operations */ "pinController"?: PinController; /** * The current text value of the component. Value is updated on user interaction. * @default '' */ "value"?: string; } interface VertexViewerPinLabelLine { "labelPoint"?: Point.Point | undefined; "pin"?: Pin | undefined; "pinPoint"?: Point.Point | undefined; } interface VertexViewerPinTool { /** * The accent color for new pins. Setting this will override the accent template color, and will be used for any new pins created with this `vertex-viewer-pin-tool`. This styling applies to some background colors, etc */ "accentColor"?: Color.Color | string | undefined; /** * The mode of the pin tool * @default 'view' */ "mode"?: ViewerPinToolMode; /** * The controller that is responsible for drawing pins and updating the model */ "pinController"?: PinController; /** * The model that contains the entities and outcomes from performing pin annotations * @default new PinModel() */ "pinModel"?: PinModel; /** * The primary color for new pins. Setting this will override the primary template color, and will be used for any new pins created with this `vertex-viewer-pin-tool`. This styling applies to pin anchors, and borders, etc. */ "primaryColor"?: Color.Color | string | undefined; /** * The type of pin. This property will automatically be set. * @default 'pin-icon' */ "tool"?: ViewerPinToolType; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerSpinner { /** * The size of the spinner. Can be `'xs' | 'sm' | 'md' | 'lg' | undefined`. Predefined sizes are set to: * `xm`: 16px * `sm`: 24px * `md`: 32px * `lg`: 64px * @default 'md' */ "size"?: SpinnerSize; } /** * The `` allows for click-based "teleportation" * around a model, which is particularly useful for walking through a model. * This tool is automatically included as part of the . */ interface VertexViewerTeleportTool { /** * The duration of animations, in milliseconds. Defaults to `500`. * @default 500 */ "animationMs"?: number; /** * Indicates whether animations will be used when performing camera operations. Defaults to `false`. * @default false */ "animationsDisabled"?: boolean; "controller"?: WalkModeController; /** * The type of teleportation to perform when clicking. `teleport` - the camera's `position` is moved to the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated to align to the plane represented by the hit result's position and normal. `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `undefined` - no teleportation will occur when clicking. Defaults to `undefined`. */ "mode"?: ViewerTeleportMode; /** * @default new WalkModeModel() */ "model"?: WalkModeModel; /** * Event emitted when the `WalkModeController` associated with this tool changes. */ "onControllerChanged"?: (event: VertexViewerTeleportToolCustomEvent) => void; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexViewerToolbar { /** * @default 'horizontal' */ "direction"?: ViewerToolbarDirection; /** * Specifies where the toolbar is positioned. * @default 'bottom-center' */ "placement"?: ViewerToolbarPlacement; } interface VertexViewerToolbarGroup { /** * @default 'horizontal' */ "direction"?: ViewerToolbarGroupDirection; } interface VertexViewerTransformWidget { /** * **EXPERIMENTAL.** Enables Command+Z and Control+Z keybindings to perform an undo of the previous delta transformation. * @see `EXPERIMENTAL_undo` * @default false */ "EXPERIMENTAL_undoKeybindings"?: boolean; /** * The unit to show for rotation inputs. Defaults to `degrees`. * @see AngleUnitType * @default 'degrees' */ "angleUnit"?: AngleUnitType; /** * The controller that is responsible for performing transforms. */ "controller"?: TransformController; /** * The number of decimal places to show in the input. Defaults to `1`. * @default 1 */ "decimalPlaces"?: number; /** * The unit to show for translation inputs. Defaults to `millimeters`. * @see DistanceUnitType * @default 'millimeters' */ "distanceUnit"?: DistanceUnitType; /** * Specifies the frequency, in milliseconds, to update the transform while interacting with the widget. This delay is used to group events happening in quick succession and results in smoother widget movement. * @default 75 */ "interactionThrottle"?: number; /** * An event that is emitted when the interaction has ended */ "onInteractionEnded"?: (event: VertexViewerTransformWidgetCustomEvent) => void; /** * An event that is emitted an interaction with the widget has started */ "onInteractionStarted"?: (event: VertexViewerTransformWidgetCustomEvent) => void; /** * An event that is emitted when the position of the widget changes. */ "onPositionChanged"?: (event: VertexViewerTransformWidgetCustomEvent) => void; /** * An event that is emitted when the rotation of the widget changes. */ "onRotationChanged"?: (event: VertexViewerTransformWidgetCustomEvent) => void; /** * The starting position of this transform widget. This position will be updated as transforms occur. Setting this value to `undefined` will remove the widget. */ "position"?: Vector3.Vector3; /** * The starting angle for the transform widget. This rotation will be updated as the rotations occur. */ "rotation"?: Euler.Euler; /** * Scalar to increase the size of the rotation handles of this widget. Values above zero and below three will result in the best visual representation of the handles, and values above three may produce unexpected results. Defaults to `1`. * @default 1 */ "rotationHandleScalar"?: number; /** * When defined, the widget will snap to the degree of the nearest multiple of the given number when the user is rotating with the widget and holding the key defined by rotationSnapKey. Defaults to undefined. */ "rotationSnapDegrees"?: number; /** * When rotationSnapDegrees is defined, the widget will snap to the degree of the nearest multiple of the given number when the user is rotating with the widget and holding the key defined here. Defaults to the shift key. * @default 'shift' */ "rotationSnapKey"?: ModifierKey; /** * Whether to show inputs beside the widget handles when they are interacted with. Defaults to `true`. * @default true */ "showInputs"?: boolean; /** * Scalar to increase the size of the translation handles of this widget. Values above zero and below three will result in the best visual representation of the handles, and values above three may produce unexpected results. Defaults to `1`. * @default 1 */ "translationHandleScalar"?: number; /** * The viewer to connect to transforms. If nested within a , this property will be populated automatically. */ "viewer"?: HTMLVertexViewerElement; /** * Determines whether the x-rotation is disabled on the widget * @default false */ "xRotationDisabled"?: boolean; /** * Determines whether the x-translation is disabled on the widget * @default false */ "xTranslationDisabled"?: boolean; /** * Determines whether the xy-translation is disabled on the widget * @default false */ "xyTranslationDisabled"?: boolean; /** * Determines whether the xz-translation is disabled on the widget * @default false */ "xzTranslationDisabled"?: boolean; /** * Determines whether the y-rotation is disabled on the widget * @default false */ "yRotationDisabled"?: boolean; /** * Determines whether the y-translation is disabled on the widget * @default false */ "yTranslationDisabled"?: boolean; /** * Determines whether the yz-translation is disabled on the widget * @default false */ "yzTranslationDisabled"?: boolean; /** * Determines whether the z-rotation is disabled on the widget * @default false */ "zRotationDisabled"?: boolean; /** * Determines whether the z-translation is disabled on the widget * @default false */ "zTranslationDisabled"?: boolean; } interface VertexViewerViewCube { /** * The duration of the animation, in milliseconds, when a user performs a standard view interaction. Set to 0 to disable animations. * @default 500 */ "animationDuration"?: number; /** * Disables interactions for standard views. * @default false */ "standardViewsOff"?: boolean; /** * Disables the display of the triad. * @default false */ "triadOff"?: boolean; /** * Whether to perform a `viewAll` when clicking on the view cube. If this is set to `false`, the current `lookAt` point will be maintained, and the camera's `position` and `up` vectors will be aligned to the standard view. Defaults to `true`. **Note** Setting this value to `false` can result in the camera being placed underneath geometry depending on the current `viewVector` length, resulting in a view that may be unexpected. * @default true */ "viewAll"?: boolean; /** * The viewer element that is connected to the view cube. */ "viewer"?: HTMLVertexViewerElement; /** * The label for the side of the cube on the negative x-axis. * @default 'Left' */ "xNegativeLabel"?: string; /** * The label for the side of the cube on the positive x-axis. * @default 'Right' */ "xPositiveLabel"?: string; /** * The label for the side of the cube on the negative y-axis. * @default 'Bottom' */ "yNegativeLabel"?: string; /** * The label for the side of the cube on the positive y-axis. * @default 'Top' */ "yPositiveLabel"?: string; /** * The label for the side of the cube on the negative z-axis. * @default 'Back' */ "zNegativeLabel"?: string; /** * The label for the side of the cube on the positive z-axis. * @default 'Front' */ "zPositiveLabel"?: string; } /** * The `` allows for additional interactions * intended for walking through a model instead of orbiting a model. */ interface VertexViewerWalkModeTool { /** * The `WalkModeController` responsible for controlling `KeyBinding`s and excluded elements, as well as updating the `WalkModeModel` with various configuration settings. */ "controller"?: WalkModeController; /** * Determines whether the interaction handlers for this tool should respond to events. When set to `true`, the default viewer interaction mode will be overridden to use the `pivot` camera interaction type, keyboard controls for movement will be added, and setting the `teleportMode` will enable the tool. Defaults to `true`. * @default true */ "enabled"?: boolean; /** * The `WalkModeModel` responsible for tracking configuration and emitting events for interaction handlers to respond to. * @default new WalkModeModel() */ "model"?: WalkModeModel; /** * Event emitted when the `WalkModeController` associated with this tool changes. */ "onControllerChanged"?: (event: VertexViewerWalkModeToolCustomEvent) => void; /** * The type of teleportation to perform when clicking. This value is passed through to a ``'s mode attribute. `teleport` - the camera's `position` is moved to the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated to align to the plane represented by the hit result's position and normal. `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the hit result constrained by the plane represented by the camera's current `position` and `up` vectors. `undefined` - no teleportation will occur when clicking. Defaults to `undefined`. */ "teleportMode"?: ViewerTeleportMode; /** * The viewer that this component is bound to. This is automatically assigned if added to the light-dom of a parent viewer element. */ "viewer"?: HTMLVertexViewerElement; } interface VertexSceneTreeAttributes { "overScanCount": number; "viewerSelector": string; "config": PartialConfig | string; "configEnv": Environment; "metadataSearchExactMatch": boolean; "operationAnimationDuration": number; } interface VertexSceneTreeNotificationBannerAttributes { "message": string; "actionLabel": string; } interface VertexSceneTreeSearchAttributes { "debounce": number; "disabled": boolean; "placeholder": string; "value": string; } interface VertexSceneTreeTableCellAttributes { "value": string; "placeholder": string; "alwaysShowIcons": boolean; "expandToggle": boolean; "endItemIndicator": boolean; "visibilityToggle": boolean; "isolateButton": boolean; } interface VertexSceneTreeTableColumnAttributes { "initialWidth": number; "minWidth": number; "maxWidth": number; } interface VertexSceneTreeTableLayoutAttributes { "overScanCount": number; } interface VertexViewerAttributes { "src": string; "clientId": string; "config": PartialConfig | string; "configEnv": Environment; "cameraControls": boolean; "cameraType": FrameCameraType; "keyboardControls": boolean; "rotateAroundTapPoint": boolean; "depthBuffers": FrameType; "noDefaultLights": boolean; "enableTemporalRefinement": boolean; "featureMaps": FrameType; "resizeDebounce": number; "experimentalSkipVisibilityCheck": boolean; } interface VertexViewerAnnotationCalloutAttributes { "iconSize": ViewerIconSize; } interface VertexViewerBoxQueryToolAttributes { "operationType": VolumeIntersectionQueryType; "mode": VolumeIntersectionQueryMode; } interface VertexViewerDefaultToolbarAttributes { "placement": ViewerToolbarPlacement; "direction": ViewerToolbarGroupDirection; "animationsDisabled": boolean; "animationMs": number; } interface VertexViewerDomElementAttributes { "positionJson": string; "rotationJson": string; "quaternionJson": string; "scaleJson": string; "occlusionOff": boolean; "occluded": boolean; "detachedOff": boolean; "detached": boolean; "billboardOff": boolean; "interactionsOff": boolean; } interface VertexViewerDomGroupAttributes { "positionJson": string; "rotationJson": string; "quaternionJson": string; "scaleJson": string; } interface VertexViewerDomRendererAttributes { "drawMode": ViewerDomRendererDrawMode; "propagateEventsToViewer": boolean; } interface VertexViewerIconAttributes { "name": ViewerIconName; "size": ViewerIconSize; } interface VertexViewerLayerAttributes { "stretchOff": boolean; } interface VertexViewerMarkupAttributes { "arrowTemplateId": string; "circleTemplateId": string; "freeformTemplateId": string; "tool": ViewerMarkupToolType; "disabled": boolean; "selectedMarkupId": string; "selectNew": boolean; "startLineAnchorStyle": LineAnchorStyle; "endLineAnchorStyle": LineAnchorStyle; "centeringBehavior": MarkupCenteringBehavior; "scale": number; } interface VertexViewerMarkupArrowAttributes { "startJson": string; "endJson": string; "centeringBehavior": MarkupCenteringBehavior; "scale": number; "startLineAnchorStyle": LineAnchorStyle; "endLineAnchorStyle": LineAnchorStyle; "mode": ViewerMarkupArrowMode; } interface VertexViewerMarkupCircleAttributes { "boundsJson": string; "mode": ViewerMarkupCircleMode; "centeringBehavior": MarkupCenteringBehavior; "scale": number; } interface VertexViewerMarkupFreeformAttributes { "pointsJson": string; "boundsJson": string; "mode": ViewerMarkupFreeformMode; "centeringBehavior": MarkupCenteringBehavior; "scale": number; } interface VertexViewerMarkupToolAttributes { "arrowTemplateId": string; "circleTemplateId": string; "freeformTemplateId": string; "tool": ViewerMarkupToolType; "disabled": boolean; "startLineAnchorStyle": LineAnchorStyle; "endLineAnchorStyle": LineAnchorStyle; "centeringBehavior": MarkupCenteringBehavior; "scale": number; } interface VertexViewerMeasurementDetailsAttributes { "distanceUnits": DistanceUnitType; "angleUnits": AngleUnitType; "fractionalDigits": number; } interface VertexViewerMeasurementDistanceAttributes { "startJson": string; "endJson": string; "distance": number; "showAxisReferenceLines": boolean; "snapDistance": number; "units": DistanceUnitType; "fractionalDigits": number; "anchorLabelOffset": number; "lineCapLength": number; "mode": ViewerMeasurementDistanceMode; "interactingAnchor": Anchor | 'none'; "invalid": boolean; } interface VertexViewerMeasurementLineAttributes { "capLength": number; "pointerEvents": string; } interface VertexViewerMeasurementPreciseAttributes { "configEnv": Environment; "config": PartialConfig | string; } interface VertexViewerPinGroupAttributes { "selected": boolean; } interface VertexViewerPinLabelAttributes { "value": string; } interface VertexViewerPinToolAttributes { "tool": ViewerPinToolType; "mode": ViewerPinToolMode; "primaryColor": Color.Color | string | undefined; "accentColor": Color.Color | string | undefined; } interface VertexViewerSpinnerAttributes { "size": SpinnerSize; } interface VertexViewerTeleportToolAttributes { "mode": ViewerTeleportMode; "animationsDisabled": boolean; "animationMs": number; } interface VertexViewerToolbarAttributes { "placement": ViewerToolbarPlacement; "direction": ViewerToolbarDirection; } interface VertexViewerToolbarGroupAttributes { "direction": ViewerToolbarGroupDirection; } interface VertexViewerTransformWidgetAttributes { "xRotationDisabled": boolean; "yRotationDisabled": boolean; "zRotationDisabled": boolean; "xTranslationDisabled": boolean; "yTranslationDisabled": boolean; "zTranslationDisabled": boolean; "xyTranslationDisabled": boolean; "xzTranslationDisabled": boolean; "yzTranslationDisabled": boolean; "showInputs": boolean; "distanceUnit": DistanceUnitType; "angleUnit": AngleUnitType; "decimalPlaces": number; "rotationSnapDegrees": number; "rotationSnapKey": ModifierKey; "translationHandleScalar": number; "rotationHandleScalar": number; "interactionThrottle": number; "EXPERIMENTAL_undoKeybindings": boolean; } interface VertexViewerViewCubeAttributes { "xPositiveLabel": string; "xNegativeLabel": string; "yPositiveLabel": string; "yNegativeLabel": string; "zPositiveLabel": string; "zNegativeLabel": string; "standardViewsOff": boolean; "viewAll": boolean; "animationDuration": number; "triadOff": boolean; } interface VertexViewerWalkModeToolAttributes { "teleportMode": ViewerTeleportMode; "enabled": boolean; } interface IntrinsicElements { "vertex-scene-tree": Omit & { [K in keyof VertexSceneTree & keyof VertexSceneTreeAttributes]?: VertexSceneTree[K] } & { [K in keyof VertexSceneTree & keyof VertexSceneTreeAttributes as `attr:${K}`]?: VertexSceneTreeAttributes[K] } & { [K in keyof VertexSceneTree & keyof VertexSceneTreeAttributes as `prop:${K}`]?: VertexSceneTree[K] }; "vertex-scene-tree-notification-banner": Omit & { [K in keyof VertexSceneTreeNotificationBanner & keyof VertexSceneTreeNotificationBannerAttributes]?: VertexSceneTreeNotificationBanner[K] } & { [K in keyof VertexSceneTreeNotificationBanner & keyof VertexSceneTreeNotificationBannerAttributes as `attr:${K}`]?: VertexSceneTreeNotificationBannerAttributes[K] } & { [K in keyof VertexSceneTreeNotificationBanner & keyof VertexSceneTreeNotificationBannerAttributes as `prop:${K}`]?: VertexSceneTreeNotificationBanner[K] }; "vertex-scene-tree-search": Omit & { [K in keyof VertexSceneTreeSearch & keyof VertexSceneTreeSearchAttributes]?: VertexSceneTreeSearch[K] } & { [K in keyof VertexSceneTreeSearch & keyof VertexSceneTreeSearchAttributes as `attr:${K}`]?: VertexSceneTreeSearchAttributes[K] } & { [K in keyof VertexSceneTreeSearch & keyof VertexSceneTreeSearchAttributes as `prop:${K}`]?: VertexSceneTreeSearch[K] }; "vertex-scene-tree-table-cell": Omit & { [K in keyof VertexSceneTreeTableCell & keyof VertexSceneTreeTableCellAttributes]?: VertexSceneTreeTableCell[K] } & { [K in keyof VertexSceneTreeTableCell & keyof VertexSceneTreeTableCellAttributes as `attr:${K}`]?: VertexSceneTreeTableCellAttributes[K] } & { [K in keyof VertexSceneTreeTableCell & keyof VertexSceneTreeTableCellAttributes as `prop:${K}`]?: VertexSceneTreeTableCell[K] }; "vertex-scene-tree-table-column": Omit & { [K in keyof VertexSceneTreeTableColumn & keyof VertexSceneTreeTableColumnAttributes]?: VertexSceneTreeTableColumn[K] } & { [K in keyof VertexSceneTreeTableColumn & keyof VertexSceneTreeTableColumnAttributes as `attr:${K}`]?: VertexSceneTreeTableColumnAttributes[K] } & { [K in keyof VertexSceneTreeTableColumn & keyof VertexSceneTreeTableColumnAttributes as `prop:${K}`]?: VertexSceneTreeTableColumn[K] }; "vertex-scene-tree-table-header": VertexSceneTreeTableHeader; "vertex-scene-tree-table-layout": Omit & { [K in keyof VertexSceneTreeTableLayout & keyof VertexSceneTreeTableLayoutAttributes]?: VertexSceneTreeTableLayout[K] } & { [K in keyof VertexSceneTreeTableLayout & keyof VertexSceneTreeTableLayoutAttributes as `attr:${K}`]?: VertexSceneTreeTableLayoutAttributes[K] } & { [K in keyof VertexSceneTreeTableLayout & keyof VertexSceneTreeTableLayoutAttributes as `prop:${K}`]?: VertexSceneTreeTableLayout[K] }; "vertex-scene-tree-table-resize-divider": VertexSceneTreeTableResizeDivider; "vertex-scene-tree-toolbar": VertexSceneTreeToolbar; "vertex-scene-tree-toolbar-group": VertexSceneTreeToolbarGroup; "vertex-viewer": Omit & { [K in keyof VertexViewer & keyof VertexViewerAttributes]?: VertexViewer[K] } & { [K in keyof VertexViewer & keyof VertexViewerAttributes as `attr:${K}`]?: VertexViewerAttributes[K] } & { [K in keyof VertexViewer & keyof VertexViewerAttributes as `prop:${K}`]?: VertexViewer[K] }; "vertex-viewer-annotation-callout": Omit & { [K in keyof VertexViewerAnnotationCallout & keyof VertexViewerAnnotationCalloutAttributes]?: VertexViewerAnnotationCallout[K] } & { [K in keyof VertexViewerAnnotationCallout & keyof VertexViewerAnnotationCalloutAttributes as `attr:${K}`]?: VertexViewerAnnotationCalloutAttributes[K] } & { [K in keyof VertexViewerAnnotationCallout & keyof VertexViewerAnnotationCalloutAttributes as `prop:${K}`]?: VertexViewerAnnotationCallout[K] }; "vertex-viewer-box-query-tool": Omit & { [K in keyof VertexViewerBoxQueryTool & keyof VertexViewerBoxQueryToolAttributes]?: VertexViewerBoxQueryTool[K] } & { [K in keyof VertexViewerBoxQueryTool & keyof VertexViewerBoxQueryToolAttributes as `attr:${K}`]?: VertexViewerBoxQueryToolAttributes[K] } & { [K in keyof VertexViewerBoxQueryTool & keyof VertexViewerBoxQueryToolAttributes as `prop:${K}`]?: VertexViewerBoxQueryTool[K] }; "vertex-viewer-button": VertexViewerButton; "vertex-viewer-default-toolbar": Omit & { [K in keyof VertexViewerDefaultToolbar & keyof VertexViewerDefaultToolbarAttributes]?: VertexViewerDefaultToolbar[K] } & { [K in keyof VertexViewerDefaultToolbar & keyof VertexViewerDefaultToolbarAttributes as `attr:${K}`]?: VertexViewerDefaultToolbarAttributes[K] } & { [K in keyof VertexViewerDefaultToolbar & keyof VertexViewerDefaultToolbarAttributes as `prop:${K}`]?: VertexViewerDefaultToolbar[K] }; "vertex-viewer-dom-element": Omit & { [K in keyof VertexViewerDomElement & keyof VertexViewerDomElementAttributes]?: VertexViewerDomElement[K] } & { [K in keyof VertexViewerDomElement & keyof VertexViewerDomElementAttributes as `attr:${K}`]?: VertexViewerDomElementAttributes[K] } & { [K in keyof VertexViewerDomElement & keyof VertexViewerDomElementAttributes as `prop:${K}`]?: VertexViewerDomElement[K] }; "vertex-viewer-dom-group": Omit & { [K in keyof VertexViewerDomGroup & keyof VertexViewerDomGroupAttributes]?: VertexViewerDomGroup[K] } & { [K in keyof VertexViewerDomGroup & keyof VertexViewerDomGroupAttributes as `attr:${K}`]?: VertexViewerDomGroupAttributes[K] } & { [K in keyof VertexViewerDomGroup & keyof VertexViewerDomGroupAttributes as `prop:${K}`]?: VertexViewerDomGroup[K] }; "vertex-viewer-dom-renderer": Omit & { [K in keyof VertexViewerDomRenderer & keyof VertexViewerDomRendererAttributes]?: VertexViewerDomRenderer[K] } & { [K in keyof VertexViewerDomRenderer & keyof VertexViewerDomRendererAttributes as `attr:${K}`]?: VertexViewerDomRendererAttributes[K] } & { [K in keyof VertexViewerDomRenderer & keyof VertexViewerDomRendererAttributes as `prop:${K}`]?: VertexViewerDomRenderer[K] }; "vertex-viewer-hit-result-indicator": VertexViewerHitResultIndicator; "vertex-viewer-icon": Omit & { [K in keyof VertexViewerIcon & keyof VertexViewerIconAttributes]?: VertexViewerIcon[K] } & { [K in keyof VertexViewerIcon & keyof VertexViewerIconAttributes as `attr:${K}`]?: VertexViewerIconAttributes[K] } & { [K in keyof VertexViewerIcon & keyof VertexViewerIconAttributes as `prop:${K}`]?: VertexViewerIcon[K] }; "vertex-viewer-layer": Omit & { [K in keyof VertexViewerLayer & keyof VertexViewerLayerAttributes]?: VertexViewerLayer[K] } & { [K in keyof VertexViewerLayer & keyof VertexViewerLayerAttributes as `attr:${K}`]?: VertexViewerLayerAttributes[K] } & { [K in keyof VertexViewerLayer & keyof VertexViewerLayerAttributes as `prop:${K}`]?: VertexViewerLayer[K] }; "vertex-viewer-markup": Omit & { [K in keyof VertexViewerMarkup & keyof VertexViewerMarkupAttributes]?: VertexViewerMarkup[K] } & { [K in keyof VertexViewerMarkup & keyof VertexViewerMarkupAttributes as `attr:${K}`]?: VertexViewerMarkupAttributes[K] } & { [K in keyof VertexViewerMarkup & keyof VertexViewerMarkupAttributes as `prop:${K}`]?: VertexViewerMarkup[K] }; "vertex-viewer-markup-arrow": Omit & { [K in keyof VertexViewerMarkupArrow & keyof VertexViewerMarkupArrowAttributes]?: VertexViewerMarkupArrow[K] } & { [K in keyof VertexViewerMarkupArrow & keyof VertexViewerMarkupArrowAttributes as `attr:${K}`]?: VertexViewerMarkupArrowAttributes[K] } & { [K in keyof VertexViewerMarkupArrow & keyof VertexViewerMarkupArrowAttributes as `prop:${K}`]?: VertexViewerMarkupArrow[K] }; "vertex-viewer-markup-circle": Omit & { [K in keyof VertexViewerMarkupCircle & keyof VertexViewerMarkupCircleAttributes]?: VertexViewerMarkupCircle[K] } & { [K in keyof VertexViewerMarkupCircle & keyof VertexViewerMarkupCircleAttributes as `attr:${K}`]?: VertexViewerMarkupCircleAttributes[K] } & { [K in keyof VertexViewerMarkupCircle & keyof VertexViewerMarkupCircleAttributes as `prop:${K}`]?: VertexViewerMarkupCircle[K] }; "vertex-viewer-markup-freeform": Omit & { [K in keyof VertexViewerMarkupFreeform & keyof VertexViewerMarkupFreeformAttributes]?: VertexViewerMarkupFreeform[K] } & { [K in keyof VertexViewerMarkupFreeform & keyof VertexViewerMarkupFreeformAttributes as `attr:${K}`]?: VertexViewerMarkupFreeformAttributes[K] } & { [K in keyof VertexViewerMarkupFreeform & keyof VertexViewerMarkupFreeformAttributes as `prop:${K}`]?: VertexViewerMarkupFreeform[K] }; "vertex-viewer-markup-tool": Omit & { [K in keyof VertexViewerMarkupTool & keyof VertexViewerMarkupToolAttributes]?: VertexViewerMarkupTool[K] } & { [K in keyof VertexViewerMarkupTool & keyof VertexViewerMarkupToolAttributes as `attr:${K}`]?: VertexViewerMarkupToolAttributes[K] } & { [K in keyof VertexViewerMarkupTool & keyof VertexViewerMarkupToolAttributes as `prop:${K}`]?: VertexViewerMarkupTool[K] }; "vertex-viewer-measurement-details": Omit & { [K in keyof VertexViewerMeasurementDetails & keyof VertexViewerMeasurementDetailsAttributes]?: VertexViewerMeasurementDetails[K] } & { [K in keyof VertexViewerMeasurementDetails & keyof VertexViewerMeasurementDetailsAttributes as `attr:${K}`]?: VertexViewerMeasurementDetailsAttributes[K] } & { [K in keyof VertexViewerMeasurementDetails & keyof VertexViewerMeasurementDetailsAttributes as `prop:${K}`]?: VertexViewerMeasurementDetails[K] }; "vertex-viewer-measurement-distance": Omit & { [K in keyof VertexViewerMeasurementDistance & keyof VertexViewerMeasurementDistanceAttributes]?: VertexViewerMeasurementDistance[K] } & { [K in keyof VertexViewerMeasurementDistance & keyof VertexViewerMeasurementDistanceAttributes as `attr:${K}`]?: VertexViewerMeasurementDistanceAttributes[K] } & { [K in keyof VertexViewerMeasurementDistance & keyof VertexViewerMeasurementDistanceAttributes as `prop:${K}`]?: VertexViewerMeasurementDistance[K] }; "vertex-viewer-measurement-line": Omit & { [K in keyof VertexViewerMeasurementLine & keyof VertexViewerMeasurementLineAttributes]?: VertexViewerMeasurementLine[K] } & { [K in keyof VertexViewerMeasurementLine & keyof VertexViewerMeasurementLineAttributes as `attr:${K}`]?: VertexViewerMeasurementLineAttributes[K] } & { [K in keyof VertexViewerMeasurementLine & keyof VertexViewerMeasurementLineAttributes as `prop:${K}`]?: VertexViewerMeasurementLine[K] }; "vertex-viewer-measurement-overlays": VertexViewerMeasurementOverlays; "vertex-viewer-measurement-precise": Omit & { [K in keyof VertexViewerMeasurementPrecise & keyof VertexViewerMeasurementPreciseAttributes]?: VertexViewerMeasurementPrecise[K] } & { [K in keyof VertexViewerMeasurementPrecise & keyof VertexViewerMeasurementPreciseAttributes as `attr:${K}`]?: VertexViewerMeasurementPreciseAttributes[K] } & { [K in keyof VertexViewerMeasurementPrecise & keyof VertexViewerMeasurementPreciseAttributes as `prop:${K}`]?: VertexViewerMeasurementPrecise[K] }; "vertex-viewer-pin-group": Omit & { [K in keyof VertexViewerPinGroup & keyof VertexViewerPinGroupAttributes]?: VertexViewerPinGroup[K] } & { [K in keyof VertexViewerPinGroup & keyof VertexViewerPinGroupAttributes as `attr:${K}`]?: VertexViewerPinGroupAttributes[K] } & { [K in keyof VertexViewerPinGroup & keyof VertexViewerPinGroupAttributes as `prop:${K}`]?: VertexViewerPinGroup[K] }; "vertex-viewer-pin-label": Omit & { [K in keyof VertexViewerPinLabel & keyof VertexViewerPinLabelAttributes]?: VertexViewerPinLabel[K] } & { [K in keyof VertexViewerPinLabel & keyof VertexViewerPinLabelAttributes as `attr:${K}`]?: VertexViewerPinLabelAttributes[K] } & { [K in keyof VertexViewerPinLabel & keyof VertexViewerPinLabelAttributes as `prop:${K}`]?: VertexViewerPinLabel[K] }; "vertex-viewer-pin-label-line": VertexViewerPinLabelLine; "vertex-viewer-pin-tool": Omit & { [K in keyof VertexViewerPinTool & keyof VertexViewerPinToolAttributes]?: VertexViewerPinTool[K] } & { [K in keyof VertexViewerPinTool & keyof VertexViewerPinToolAttributes as `attr:${K}`]?: VertexViewerPinToolAttributes[K] } & { [K in keyof VertexViewerPinTool & keyof VertexViewerPinToolAttributes as `prop:${K}`]?: VertexViewerPinTool[K] }; "vertex-viewer-spinner": Omit & { [K in keyof VertexViewerSpinner & keyof VertexViewerSpinnerAttributes]?: VertexViewerSpinner[K] } & { [K in keyof VertexViewerSpinner & keyof VertexViewerSpinnerAttributes as `attr:${K}`]?: VertexViewerSpinnerAttributes[K] } & { [K in keyof VertexViewerSpinner & keyof VertexViewerSpinnerAttributes as `prop:${K}`]?: VertexViewerSpinner[K] }; "vertex-viewer-teleport-tool": Omit & { [K in keyof VertexViewerTeleportTool & keyof VertexViewerTeleportToolAttributes]?: VertexViewerTeleportTool[K] } & { [K in keyof VertexViewerTeleportTool & keyof VertexViewerTeleportToolAttributes as `attr:${K}`]?: VertexViewerTeleportToolAttributes[K] } & { [K in keyof VertexViewerTeleportTool & keyof VertexViewerTeleportToolAttributes as `prop:${K}`]?: VertexViewerTeleportTool[K] }; "vertex-viewer-toolbar": Omit & { [K in keyof VertexViewerToolbar & keyof VertexViewerToolbarAttributes]?: VertexViewerToolbar[K] } & { [K in keyof VertexViewerToolbar & keyof VertexViewerToolbarAttributes as `attr:${K}`]?: VertexViewerToolbarAttributes[K] } & { [K in keyof VertexViewerToolbar & keyof VertexViewerToolbarAttributes as `prop:${K}`]?: VertexViewerToolbar[K] }; "vertex-viewer-toolbar-group": Omit & { [K in keyof VertexViewerToolbarGroup & keyof VertexViewerToolbarGroupAttributes]?: VertexViewerToolbarGroup[K] } & { [K in keyof VertexViewerToolbarGroup & keyof VertexViewerToolbarGroupAttributes as `attr:${K}`]?: VertexViewerToolbarGroupAttributes[K] } & { [K in keyof VertexViewerToolbarGroup & keyof VertexViewerToolbarGroupAttributes as `prop:${K}`]?: VertexViewerToolbarGroup[K] }; "vertex-viewer-transform-widget": Omit & { [K in keyof VertexViewerTransformWidget & keyof VertexViewerTransformWidgetAttributes]?: VertexViewerTransformWidget[K] } & { [K in keyof VertexViewerTransformWidget & keyof VertexViewerTransformWidgetAttributes as `attr:${K}`]?: VertexViewerTransformWidgetAttributes[K] } & { [K in keyof VertexViewerTransformWidget & keyof VertexViewerTransformWidgetAttributes as `prop:${K}`]?: VertexViewerTransformWidget[K] }; "vertex-viewer-view-cube": Omit & { [K in keyof VertexViewerViewCube & keyof VertexViewerViewCubeAttributes]?: VertexViewerViewCube[K] } & { [K in keyof VertexViewerViewCube & keyof VertexViewerViewCubeAttributes as `attr:${K}`]?: VertexViewerViewCubeAttributes[K] } & { [K in keyof VertexViewerViewCube & keyof VertexViewerViewCubeAttributes as `prop:${K}`]?: VertexViewerViewCube[K] }; "vertex-viewer-walk-mode-tool": Omit & { [K in keyof VertexViewerWalkModeTool & keyof VertexViewerWalkModeToolAttributes]?: VertexViewerWalkModeTool[K] } & { [K in keyof VertexViewerWalkModeTool & keyof VertexViewerWalkModeToolAttributes as `attr:${K}`]?: VertexViewerWalkModeToolAttributes[K] } & { [K in keyof VertexViewerWalkModeTool & keyof VertexViewerWalkModeToolAttributes as `prop:${K}`]?: VertexViewerWalkModeTool[K] }; } } export { LocalJSX as JSX }; declare module "@stencil/core" { export namespace JSX { interface IntrinsicElements { "vertex-scene-tree": LocalJSX.IntrinsicElements["vertex-scene-tree"] & JSXBase.HTMLAttributes; /** * A notification banner that displays a message and an action button. */ "vertex-scene-tree-notification-banner": LocalJSX.IntrinsicElements["vertex-scene-tree-notification-banner"] & JSXBase.HTMLAttributes; "vertex-scene-tree-search": LocalJSX.IntrinsicElements["vertex-scene-tree-search"] & JSXBase.HTMLAttributes; "vertex-scene-tree-table-cell": LocalJSX.IntrinsicElements["vertex-scene-tree-table-cell"] & JSXBase.HTMLAttributes; "vertex-scene-tree-table-column": LocalJSX.IntrinsicElements["vertex-scene-tree-table-column"] & JSXBase.HTMLAttributes; "vertex-scene-tree-table-header": LocalJSX.IntrinsicElements["vertex-scene-tree-table-header"] & JSXBase.HTMLAttributes; "vertex-scene-tree-table-layout": LocalJSX.IntrinsicElements["vertex-scene-tree-table-layout"] & JSXBase.HTMLAttributes; "vertex-scene-tree-table-resize-divider": LocalJSX.IntrinsicElements["vertex-scene-tree-table-resize-divider"] & JSXBase.HTMLAttributes; "vertex-scene-tree-toolbar": LocalJSX.IntrinsicElements["vertex-scene-tree-toolbar"] & JSXBase.HTMLAttributes; "vertex-scene-tree-toolbar-group": LocalJSX.IntrinsicElements["vertex-scene-tree-toolbar-group"] & JSXBase.HTMLAttributes; "vertex-viewer": LocalJSX.IntrinsicElements["vertex-viewer"] & JSXBase.HTMLAttributes; "vertex-viewer-annotation-callout": LocalJSX.IntrinsicElements["vertex-viewer-annotation-callout"] & JSXBase.HTMLAttributes; /** * The `ViewerBoxQueryTool` allows for the drawing of a "box" on screen to represent * a query for items in a specific area of the viewer. This tool then allows for an * operation to be performed on the items contained (exclusive) by the box or both * contained by and intersecting with (inclusive) the box. */ "vertex-viewer-box-query-tool": LocalJSX.IntrinsicElements["vertex-viewer-box-query-tool"] & JSXBase.HTMLAttributes; "vertex-viewer-button": LocalJSX.IntrinsicElements["vertex-viewer-button"] & JSXBase.HTMLAttributes; "vertex-viewer-default-toolbar": LocalJSX.IntrinsicElements["vertex-viewer-default-toolbar"] & JSXBase.HTMLAttributes; /** * The `ViewerDomElement` is responsible for managing a * `` element. These elements are intended to be * added as children to a `` and represent an * individual DOM element within a local 3D scene. */ "vertex-viewer-dom-element": LocalJSX.IntrinsicElements["vertex-viewer-dom-element"] & JSXBase.HTMLAttributes; "vertex-viewer-dom-group": LocalJSX.IntrinsicElements["vertex-viewer-dom-group"] & JSXBase.HTMLAttributes; /** * The `ViewerDomRenderer` is responsible for managing a * `` element. This element supports drawing DOM * objects in a local 3D scene that is synced with a remote rendered scene. */ "vertex-viewer-dom-renderer": LocalJSX.IntrinsicElements["vertex-viewer-dom-renderer"] & JSXBase.HTMLAttributes; "vertex-viewer-hit-result-indicator": LocalJSX.IntrinsicElements["vertex-viewer-hit-result-indicator"] & JSXBase.HTMLAttributes; "vertex-viewer-icon": LocalJSX.IntrinsicElements["vertex-viewer-icon"] & JSXBase.HTMLAttributes; "vertex-viewer-layer": LocalJSX.IntrinsicElements["vertex-viewer-layer"] & JSXBase.HTMLAttributes; "vertex-viewer-markup": LocalJSX.IntrinsicElements["vertex-viewer-markup"] & JSXBase.HTMLAttributes; "vertex-viewer-markup-arrow": LocalJSX.IntrinsicElements["vertex-viewer-markup-arrow"] & JSXBase.HTMLAttributes; "vertex-viewer-markup-circle": LocalJSX.IntrinsicElements["vertex-viewer-markup-circle"] & JSXBase.HTMLAttributes; "vertex-viewer-markup-freeform": LocalJSX.IntrinsicElements["vertex-viewer-markup-freeform"] & JSXBase.HTMLAttributes; "vertex-viewer-markup-tool": LocalJSX.IntrinsicElements["vertex-viewer-markup-tool"] & JSXBase.HTMLAttributes; "vertex-viewer-measurement-details": LocalJSX.IntrinsicElements["vertex-viewer-measurement-details"] & JSXBase.HTMLAttributes; "vertex-viewer-measurement-distance": LocalJSX.IntrinsicElements["vertex-viewer-measurement-distance"] & JSXBase.HTMLAttributes; "vertex-viewer-measurement-line": LocalJSX.IntrinsicElements["vertex-viewer-measurement-line"] & JSXBase.HTMLAttributes; "vertex-viewer-measurement-overlays": LocalJSX.IntrinsicElements["vertex-viewer-measurement-overlays"] & JSXBase.HTMLAttributes; "vertex-viewer-measurement-precise": LocalJSX.IntrinsicElements["vertex-viewer-measurement-precise"] & JSXBase.HTMLAttributes; "vertex-viewer-pin-group": LocalJSX.IntrinsicElements["vertex-viewer-pin-group"] & JSXBase.HTMLAttributes; "vertex-viewer-pin-label": LocalJSX.IntrinsicElements["vertex-viewer-pin-label"] & JSXBase.HTMLAttributes; "vertex-viewer-pin-label-line": LocalJSX.IntrinsicElements["vertex-viewer-pin-label-line"] & JSXBase.HTMLAttributes; "vertex-viewer-pin-tool": LocalJSX.IntrinsicElements["vertex-viewer-pin-tool"] & JSXBase.HTMLAttributes; "vertex-viewer-spinner": LocalJSX.IntrinsicElements["vertex-viewer-spinner"] & JSXBase.HTMLAttributes; /** * The `` allows for click-based "teleportation" * around a model, which is particularly useful for walking through a model. * This tool is automatically included as part of the . */ "vertex-viewer-teleport-tool": LocalJSX.IntrinsicElements["vertex-viewer-teleport-tool"] & JSXBase.HTMLAttributes; "vertex-viewer-toolbar": LocalJSX.IntrinsicElements["vertex-viewer-toolbar"] & JSXBase.HTMLAttributes; "vertex-viewer-toolbar-group": LocalJSX.IntrinsicElements["vertex-viewer-toolbar-group"] & JSXBase.HTMLAttributes; "vertex-viewer-transform-widget": LocalJSX.IntrinsicElements["vertex-viewer-transform-widget"] & JSXBase.HTMLAttributes; "vertex-viewer-view-cube": LocalJSX.IntrinsicElements["vertex-viewer-view-cube"] & JSXBase.HTMLAttributes; /** * The `` allows for additional interactions * intended for walking through a model instead of orbiting a model. */ "vertex-viewer-walk-mode-tool": LocalJSX.IntrinsicElements["vertex-viewer-walk-mode-tool"] & JSXBase.HTMLAttributes; } } }