@vertexvis/viewer 0.13.0 → 0.13.1-canary.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/cjs/constants-be2deb55.js +17 -0
  2. package/dist/cjs/loader.cjs.js +1 -1
  3. package/dist/cjs/{utils-235cd490.js → utils-545b1865.js} +5 -21
  4. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +8 -8
  5. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +11 -12
  6. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -1
  7. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +3 -2
  8. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +4 -3
  9. package/dist/cjs/vertex-viewer.cjs.entry.js +16 -3
  10. package/dist/cjs/viewer.cjs.js +1 -1
  11. package/dist/collection/components/viewer/viewer.js +35 -4
  12. package/dist/collection/components/viewer-measurement-distance/utils.js +6 -10
  13. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +6 -7
  14. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays-components.js +12 -13
  15. package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +6 -3
  16. package/dist/custom-elements/index.js +39 -30
  17. package/dist/esm/constants-8582656b.js +14 -0
  18. package/dist/esm/loader.js +1 -1
  19. package/dist/esm/loader.mjs +1 -1
  20. package/dist/esm/{utils-01e4f587.js → utils-83a19677.js} +6 -20
  21. package/dist/esm/vertex-viewer-measurement-distance.entry.js +6 -6
  22. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +11 -12
  23. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -1
  24. package/dist/esm/vertex-viewer-measurement-tool.entry.js +2 -1
  25. package/dist/esm/vertex-viewer-measurements.entry.js +3 -2
  26. package/dist/esm/vertex-viewer.entry.js +16 -3
  27. package/dist/esm/viewer.js +1 -1
  28. package/dist/types/components/viewer/viewer.d.ts +6 -0
  29. package/dist/types/components/viewer-measurement-distance/utils.d.ts +1 -3
  30. package/dist/types/components.d.ts +8 -0
  31. package/dist/viewer/p-204a25a5.entry.js +4 -0
  32. package/dist/viewer/p-2cefb1b0.js +4 -0
  33. package/dist/viewer/{p-b0ab66a9.entry.js → p-4ff48700.entry.js} +1 -1
  34. package/dist/viewer/p-671c113c.entry.js +4 -0
  35. package/dist/viewer/{p-ebb35eb7.entry.js → p-6e80f8b0.entry.js} +1 -1
  36. package/dist/viewer/p-849bd025.js +4 -0
  37. package/dist/viewer/p-c62cb926.entry.js +4 -0
  38. package/dist/viewer/p-f8d01b8a.entry.js +4 -0
  39. package/dist/viewer/viewer.esm.js +1 -1
  40. package/package.json +7 -7
  41. package/dist/viewer/p-0aeab3fc.js +0 -4
  42. package/dist/viewer/p-6370098c.entry.js +0 -4
  43. package/dist/viewer/p-6f3eff0b.entry.js +0 -4
  44. package/dist/viewer/p-7006fd4e.entry.js +0 -4
  45. package/dist/viewer/p-8e913c0b.entry.js +0 -4
@@ -16,7 +16,7 @@ const defineCustomElements = (win, options) => {
16
16
  if (typeof window === 'undefined') return Promise.resolve();
17
17
  return patchEsm().then(() => {
18
18
  globalScripts();
19
- return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-measurement-tool",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-measurements",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-viewer-view-cube",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-table-column",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-measurement-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["vertex-viewer-measurement-line_2",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]], options);
19
+ return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-measurement-tool",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-measurements",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-viewer-view-cube",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-table-column",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-measurement-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["vertex-viewer-measurement-line_2",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]], options);
20
20
  });
21
21
  };
22
22
 
@@ -1,24 +1,10 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { v as vector3, p as point, l as line3 } from './bundle.esm-d899b2d5.js';
4
+ import { p as point, l as line3 } from './bundle.esm-d899b2d5.js';
5
5
 
6
- /**
7
- * The default distance, in pixels, between the mouse position and a snappable
8
- * measurement feature.
9
- */
10
- const MEASUREMENT_SNAP_DISTANCE = 16;
11
- /**
12
- * The default length, in pixels, for the measurement line cap.
13
- */
14
- const MEASUREMENT_LINE_CAP_LENGTH = 10;
15
-
16
- function translateWorldPtToViewport(pt, projectionViewMatrix, viewport) {
17
- const ndc = vector3.transformMatrix(pt, projectionViewMatrix);
18
- return viewport.transformVectorToViewport(ndc);
19
- }
20
6
  function translateWorldLineToViewport(line, params) {
21
- const { camera, projectionViewMatrix, viewport } = params;
7
+ const { camera, viewport } = params;
22
8
  const isStartBehindCamera = camera.isPointBehindNear(line.start);
23
9
  const isEndBehindCamera = camera.isPointBehindNear(line.end);
24
10
  // If either the start or end of the line is behind the camera, then we need
@@ -30,7 +16,7 @@ function translateWorldLineToViewport(line, params) {
30
16
  start: isStartBehindCamera && pt != null ? pt : line.start,
31
17
  end: isEndBehindCamera && pt != null ? pt : line.end,
32
18
  });
33
- const ndc = line3.transformMatrix(newLine, projectionViewMatrix);
19
+ const ndc = line3.transformMatrix(newLine, camera.projectionViewMatrix);
34
20
  return {
35
21
  start: viewport.transformVectorToViewport(ndc.start),
36
22
  end: viewport.transformVectorToViewport(ndc.end),
@@ -39,7 +25,7 @@ function translateWorldLineToViewport(line, params) {
39
25
  };
40
26
  }
41
27
  else {
42
- const ndc = line3.transformMatrix(line, projectionViewMatrix);
28
+ const ndc = line3.transformMatrix(line, camera.projectionViewMatrix);
43
29
  return {
44
30
  start: viewport.transformVectorToViewport(ndc.start),
45
31
  end: viewport.transformVectorToViewport(ndc.end),
@@ -61,7 +47,7 @@ function isVertexViewerDistanceMeasurement(el) {
61
47
  el.nodeName === 'VERTEX-VIEWER-MEASUREMENT-DISTANCE');
62
48
  }
63
49
  function getIndicatorPtForAnchor(line, anchor, params) {
64
- return translateWorldPtToViewport(anchor === 'start' ? line.start : line.end, params.projectionViewMatrix, params.viewport);
50
+ return params.viewport.transformWorldToViewport(anchor === 'start' ? line.start : line.end, params.camera.projectionViewMatrix);
65
51
  }
66
52
 
67
- export { MEASUREMENT_SNAP_DISTANCE as M, MEASUREMENT_LINE_CAP_LENGTH as a, getViewingElementPositions as g, isVertexViewerDistanceMeasurement as i, translateWorldPtToViewport as t };
53
+ export { getViewingElementPositions as g, isVertexViewerDistanceMeasurement as i, translateWorldLineToViewport as t };
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-10c1495a.js';
5
5
  import { v as vector3, i as angle, p as point, l as line3 } from './bundle.esm-d899b2d5.js';
6
- import { M as MEASUREMENT_SNAP_DISTANCE, a as MEASUREMENT_LINE_CAP_LENGTH, t as translateWorldPtToViewport, g as getViewingElementPositions } from './utils-01e4f587.js';
6
+ import { M as MEASUREMENT_SNAP_DISTANCE, a as MEASUREMENT_LINE_CAP_LENGTH } from './constants-8582656b.js';
7
7
  import { m as measurementCursor } from './cursors-a7ec4adb.js';
8
8
  import { a as cssTransformCenterAt, g as getMouseClientPosition } from './dom-780d25be.js';
9
9
  import './mapper-4b815e31.js';
@@ -14,6 +14,7 @@ import { M as MeasurementOverlayManager } from './overlays-1919b192.js';
14
14
  import { m as makeMinimumDistanceResult } from './results-994bdb50.js';
15
15
  import { V as Viewport } from './viewport-01c886ea.js';
16
16
  import { E as EventDispatcher, m as mapper } from './browser.esm-59e914f6.js';
17
+ import { g as getViewingElementPositions } from './utils-83a19677.js';
17
18
  import { c as classnames } from './index-455380d0.js';
18
19
  import './_commonjsHelpers-9943807e.js';
19
20
 
@@ -735,7 +736,7 @@ let ViewerMeasurementDistance = class {
735
736
  computeEditOrViewElementPositions() {
736
737
  const measurement = this.model.getMeasurement();
737
738
  if (this.internalCamera != null && measurement != null) {
738
- return this.computeLineElementPositions(this.internalCamera.projectionViewMatrix, line3.create(measurement));
739
+ return this.computeLineElementPositions(line3.create(measurement));
739
740
  }
740
741
  else {
741
742
  return {};
@@ -745,11 +746,11 @@ let ViewerMeasurementDistance = class {
745
746
  if (this.internalCamera != null) {
746
747
  const measurement = this.model.getMeasurement();
747
748
  const line = measurement != null
748
- ? this.computeLineElementPositions(this.internalCamera.projectionViewMatrix, line3.create(measurement))
749
+ ? this.computeLineElementPositions(line3.create(measurement))
749
750
  : {};
750
751
  const indicator = this.indicatorPt != null
751
752
  ? {
752
- indicatorPt: translateWorldPtToViewport(this.indicatorPt, this.internalCamera.projectionViewMatrix, this.viewport),
753
+ indicatorPt: this.viewport.transformWorldToViewport(this.indicatorPt, this.internalCamera.projectionViewMatrix),
753
754
  }
754
755
  : {};
755
756
  return Object.assign(Object.assign({}, line), indicator);
@@ -758,10 +759,9 @@ let ViewerMeasurementDistance = class {
758
759
  return {};
759
760
  }
760
761
  }
761
- computeLineElementPositions(matrix, line) {
762
+ computeLineElementPositions(line) {
762
763
  if (this.internalCamera != null) {
763
764
  return getViewingElementPositions(line, this.interactingAnchor, {
764
- projectionViewMatrix: matrix,
765
765
  viewport: this.viewport,
766
766
  camera: this.internalCamera,
767
767
  });
@@ -7,6 +7,7 @@ import './mapper-4b815e31.js';
7
7
  import './grpc-web-client.umd-5982b7b0.js';
8
8
  import './streamAttributes-d623bb60.js';
9
9
  import { M as MeasurementOverlayManager } from './overlays-1919b192.js';
10
+ import { t as translateWorldLineToViewport } from './utils-83a19677.js';
10
11
  import './_commonjsHelpers-9943807e.js';
11
12
  import './browser.esm-59e914f6.js';
12
13
 
@@ -67,20 +68,18 @@ const MeasurementOverlayView = ({ overlay, viewport, camera }) => {
67
68
  return (h(DistanceVectorOverlayView, { overlay: overlay, viewport: viewport, camera: camera }));
68
69
  }
69
70
  };
70
- const LineOverlayView = ({ overlay: { start, end }, camera, viewport }) => {
71
- const m = camera.projectionViewMatrix;
72
- const sw = viewport.transformWorldToViewport(start, m);
73
- const ew = viewport.transformWorldToViewport(end, m);
74
- return (h("vertex-viewer-measurement-line", { class: "measurement-line", start: sw, end: ew }));
71
+ const LineOverlayView = ({ overlay, camera, viewport }) => {
72
+ const { start, end } = translateWorldLineToViewport(overlay, {
73
+ camera,
74
+ viewport,
75
+ });
76
+ return (h("vertex-viewer-measurement-line", { class: "measurement-line", start: start, end: end }));
75
77
  };
76
78
  const DistanceVectorOverlayView = ({ overlay: { x, y, z }, camera, viewport }) => {
77
- const m = camera.projectionViewMatrix;
78
- const xs = viewport.transformWorldToViewport(x.start, m);
79
- const xe = viewport.transformWorldToViewport(x.end, m);
80
- const ys = viewport.transformWorldToViewport(y.start, m);
81
- const ye = viewport.transformWorldToViewport(y.end, m);
82
- const zs = viewport.transformWorldToViewport(z.start, m);
83
- const ze = viewport.transformWorldToViewport(z.end, m);
79
+ const params = { camera, viewport };
80
+ const { start: xs, end: xe } = translateWorldLineToViewport(x, params);
81
+ const { start: ys, end: ye } = translateWorldLineToViewport(y, params);
82
+ const { start: zs, end: ze } = translateWorldLineToViewport(z, params);
84
83
  return (h(Fragment, null,
85
84
  h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-x", start: xs, end: xe }),
86
85
  h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-y", start: ys, end: ye }),
@@ -253,7 +253,10 @@ let ViewerMeasurementPrecise = class {
253
253
  * An internal property that can be used to opt-in to performing measurements
254
254
  * on other types of entities.
255
255
  */
256
- this.measurableEntityTypes = [EntityType.PRECISE_SURFACE];
256
+ this.measurableEntityTypes = [
257
+ EntityType.PRECISE_SURFACE,
258
+ EntityType.IMPRECISE_SURFACE,
259
+ ];
257
260
  /**
258
261
  * The environment that will be used to request measurement results.
259
262
  */
@@ -2,10 +2,11 @@
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-10c1495a.js';
5
- import { M as MEASUREMENT_SNAP_DISTANCE, i as isVertexViewerDistanceMeasurement } from './utils-01e4f587.js';
5
+ import { M as MEASUREMENT_SNAP_DISTANCE } from './constants-8582656b.js';
6
6
  import { s as stampTemplateWithId } from './templates-022199c1.js';
7
7
  import './streamAttributes-d623bb60.js';
8
8
  import { D as DistanceMeasurement } from './measurement-12cdbf5c.js';
9
+ import { i as isVertexViewerDistanceMeasurement } from './utils-83a19677.js';
9
10
  import './bundle.esm-d899b2d5.js';
10
11
  import './browser.esm-59e914f6.js';
11
12
  import './_commonjsHelpers-9943807e.js';
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-10c1495a.js';
5
- import { M as MEASUREMENT_SNAP_DISTANCE, i as isVertexViewerDistanceMeasurement } from './utils-01e4f587.js';
5
+ import { M as MEASUREMENT_SNAP_DISTANCE } from './constants-8582656b.js';
6
6
  import './mapper-4b815e31.js';
7
7
  import './grpc-web-client.umd-5982b7b0.js';
8
8
  import './streamAttributes-d623bb60.js';
@@ -10,9 +10,10 @@ import { M as MeasurementModel } from './model-e5a4f00f.js';
10
10
  import { m as makeMinimumDistanceResult } from './results-994bdb50.js';
11
11
  import { s as stampTemplateWithId } from './templates-022199c1.js';
12
12
  import { D as DistanceMeasurement } from './measurement-12cdbf5c.js';
13
- import './bundle.esm-d899b2d5.js';
13
+ import { i as isVertexViewerDistanceMeasurement } from './utils-83a19677.js';
14
14
  import './_commonjsHelpers-9943807e.js';
15
15
  import './browser.esm-59e914f6.js';
16
+ import './bundle.esm-d899b2d5.js';
16
17
 
17
18
  const viewerMeasurementsCss = ":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}::slotted(.viewer-measurements__measurement[mode='']){cursor:pointer}::slotted(.viewer-measurements__measurement[mode='edit']){z-index:1}::slotted(.viewer-measurements__measurement[interacting-anchor='start']),::slotted(.viewer-measurements__measurement[interacting-anchor='end']),::slotted(vertex-viewer-measurement-tool[is-measuring]){z-index:2}";
18
19
 
@@ -2266,6 +2266,11 @@ let Viewer = class {
2266
2266
  * The default hex color or material to use when selecting items.
2267
2267
  */
2268
2268
  this.selectionMaterial = defaultSelectionMaterial;
2269
+ /**
2270
+ * An optional value that will debounce frame updates when resizing
2271
+ * this viewer element.
2272
+ */
2273
+ this.resizeDebounce = 0;
2269
2274
  /**
2270
2275
  * @internal
2271
2276
  */
@@ -2639,9 +2644,17 @@ let Viewer = class {
2639
2644
  const dimensionsHaveChanged = entries.length >= 0 &&
2640
2645
  this.dimensions != null &&
2641
2646
  !dimensions.isEqual(entries[0].contentRect, this.dimensions);
2642
- if (dimensionsHaveChanged && !this.isResizing) {
2643
- this.isResizing = true;
2644
- window.requestAnimationFrame(() => this.recalculateComponentDimensions());
2647
+ if (dimensionsHaveChanged) {
2648
+ if (this.resizeTimer != null) {
2649
+ clearTimeout(this.resizeTimer);
2650
+ this.resizeTimer = undefined;
2651
+ }
2652
+ if (!this.isResizing) {
2653
+ this.resizeTimer = setTimeout(() => {
2654
+ this.isResizing = true;
2655
+ this.recalculateComponentDimensions();
2656
+ }, this.resizeDebounce);
2657
+ }
2645
2658
  }
2646
2659
  }
2647
2660
  registerSlotChangeListeners() {
@@ -72,5 +72,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
72
72
 
73
73
  patchBrowser().then(options => {
74
74
  globalScripts();
75
- return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-measurement-tool",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-measurements",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-viewer-view-cube",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-table-column",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-measurement-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["vertex-viewer-measurement-line_2",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]], options);
75
+ return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-measurement-tool",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-measurements",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-viewer-view-cube",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-table-column",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-measurement-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["vertex-viewer-measurement-line_2",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]], options);
76
76
  });
@@ -135,6 +135,11 @@ export declare class Viewer {
135
135
  * The default hex color or material to use when selecting items.
136
136
  */
137
137
  selectionMaterial: string | ColorMaterial;
138
+ /**
139
+ * An optional value that will debounce frame updates when resizing
140
+ * this viewer element.
141
+ */
142
+ resizeDebounce: number;
138
143
  /**
139
144
  * The last frame that was received, which can be used to inspect the scene
140
145
  * and camera information.
@@ -233,6 +238,7 @@ export declare class Viewer {
233
238
  private mutationObserver?;
234
239
  private resizeObserver?;
235
240
  private isResizing?;
241
+ private resizeTimer?;
236
242
  private interactionHandlers;
237
243
  private interactionApi;
238
244
  private tapKeyInteractions;
@@ -1,4 +1,4 @@
1
- import { Line3, Matrix4, Point, Vector3 } from '@vertexvis/geometry';
1
+ import { Line3, Point } from '@vertexvis/geometry';
2
2
  import { FramePerspectiveCamera, Viewport } from '../../lib/types';
3
3
  export declare type Anchor = 'start' | 'end';
4
4
  export interface MeasurementElementPositions {
@@ -10,11 +10,9 @@ export interface MeasurementElementPositions {
10
10
  hideEnd?: boolean;
11
11
  }
12
12
  export interface RenderParams {
13
- projectionViewMatrix: Matrix4.Matrix4;
14
13
  viewport: Viewport;
15
14
  camera: FramePerspectiveCamera;
16
15
  }
17
- export declare function translateWorldPtToViewport(pt: Vector3.Vector3, projectionViewMatrix: Matrix4.Matrix4, viewport: Viewport): Point.Point;
18
16
  export declare function translateWorldLineToViewport(line: Line3.Line3, params: RenderParams): {
19
17
  start: Point.Point;
20
18
  end: Point.Point;
@@ -385,6 +385,10 @@ export namespace Components {
385
385
  * @param keyInteraction - The `KeyInteraction` to register.
386
386
  */
387
387
  "registerTapKeyInteraction": (keyInteraction: KeyInteraction<TapEventDetails>) => Promise<void>;
388
+ /**
389
+ * An optional value that will debounce frame updates when resizing this viewer element.
390
+ */
391
+ "resizeDebounce": number;
388
392
  "resolvedConfig"?: Config;
389
393
  /**
390
394
  * Enables or disables the default rotation interaction being changed to rotate around the pointer down location.
@@ -1535,6 +1539,10 @@ declare namespace LocalJSX {
1535
1539
  * 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.
1536
1540
  */
1537
1541
  "onTokenExpired"?: (event: CustomEvent<void>) => void;
1542
+ /**
1543
+ * An optional value that will debounce frame updates when resizing this viewer element.
1544
+ */
1545
+ "resizeDebounce"?: number;
1538
1546
  /**
1539
1547
  * Enables or disables the default rotation interaction being changed to rotate around the pointer down location.
1540
1548
  */
@@ -0,0 +1,4 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import{h as t,r as e,c as i,H as n,g as s}from"./p-cafa57a6.js";import{v as r,i as a,p as o,l as h}from"./p-0aba71fd.js";import{M as l,a as d}from"./p-849bd025.js";import{m as c}from"./p-d00e9203.js";import{a as u,g as m}from"./p-439220c6.js";import"./p-f7cb7e59.js";import"./p-3a20a038.js";import{e as v,D as p}from"./p-fe11d694.js";import{M as w}from"./p-da2f4a56.js";import{M as f}from"./p-3810c24d.js";import{m as b}from"./p-67446e35.js";import{V as g}from"./p-4985fad5.js";import{E as y,m as P}from"./p-301660cf.js";import{g as E}from"./p-2cefb1b0.js";import{c as M}from"./p-f482325b.js";import"./p-112455b1.js";class C{constructor(t,e,i){this.stencil=t,this.depthBuffer=e,this.viewport=i}hitTest(t){const e=this.viewport.transformPointToFrame(t,this.depthBuffer);if(null!=this.stencil){const i=this.viewport.transformPointToFrame(t,this.stencil);return this.stencil.hitTest(i)||this.depthBuffer.hitTest(e)}return this.depthBuffer.hitTest(e)}snapToNearestPixel(t,e){if(null!=this.stencil){const i=this.viewport.transformPointToFrame(t,this.stencil),n=this.stencil.snapToNearestPixel(i,e);return this.viewport.transformPointToViewport(n,this.stencil)}return t}transformPointToWorld(t,{ignoreHitTest:e=!1}={}){const i=this.pickDepthBuffer(t);return null!=i?this.viewport.transformPointToWorldSpace(t,i):e?this.viewport.transformPointToWorldSpace(t,this.depthBuffer):void 0}pickDepthBuffer(t){if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil);if(this.stencil.hitTest(e))return this.stencil.depthBuffer}const e=this.viewport.transformPointToFrame(t,this.depthBuffer);return this.depthBuffer.hitTest(e)?this.depthBuffer:void 0}}class x{constructor(t){this.model=t}newMeasurement(t,e){const i=e.hitTester().transformPointToWorld(t);return null!=i?new I(t,i,this.model):void 0}editMeasurement(t){const e=this.model.getMeasurement();if(null==e)throw new Error("Cannot edit measurement. Measurement is empty.");return"start"===t?new D(e,this.model):new k(e,this.model)}clearIndicator(){this.model.setIndicator(void 0)}moveIndicator(t,e){const i=e.hitTester().transformPointToWorld(t);return this.model.setIndicator(i),null!=i}}class j{constructor(){this.measurementChanged=new y,this.indicatorChanged=new y}static empty(){return new j}getMeasurement(){return this.measurement}setMeasurement(t){this.measurement!==t&&(this.measurement=t,this.measurementChanged.emit(t))}setMeasurementFromValues(t,e,i){if(null!=t&&null!=e){const n=i?L(t,e):T(t,e);this.setMeasurement(n)}else this.setMeasurement(void 0)}onMeasurementChanged(t){return this.measurementChanged.on(t)}getIndicator(){return this.indicator}setIndicator(t){this.indicator!==t&&(this.indicator=t,this.indicatorChanged.emit(t))}onIndicatorChanged(t){return this.indicatorChanged.on(t)}}class I{constructor(t,e,i){this.pt=t,this.world=e,this.model=i,this.hitWorldValid=!0}fetchStartIfMissing(t){null==this.pendingStart&&(this.pendingStart=this.fetchStart(t))}async fetchStart(t){const e=await t.raycaster(),i=await S(e,this.pt);if(null==i){const e=t.hitTester().transformPointToWorld(this.pt);this.hitWorld=e,this.hitWorldValid=!1}else this.hitWorld=i,this.hitWorldValid=!0}update(t,e){var i;this.fetchStartIfMissing(e);const n=e.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),s=e.hitTester().hitTest(t),r=null!==(i=this.hitWorld)&&void 0!==i?i:this.world;if(null==n)throw new Error("Cannot update new measurement interaction. End point is empty.");return this.hitWorldValid&&s?(this.model.setIndicator(n),this.setMeasurement(L(r,n))):(this.model.setIndicator(n),this.setMeasurement(T(r,n)))}async finish(t,e){var i;this.fetchStartIfMissing(e),await this.pendingStart;const n=await e.raycaster(),s=await S(n,t),r=null!==(i=this.hitWorld)&&void 0!==i?i:this.world;if(this.model.setIndicator(void 0),null==s){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==i)throw new Error("Cannot complete new measurement interaction. End point is empty.");return this.setMeasurement(T(r,i))}return this.setMeasurement(this.hitWorldValid?L(r,s):T(r,s))}setMeasurement(t){return this.model.setMeasurement(t),t}}class A{constructor(t,e){this.measurement=t,this.model=e}update(t,e){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),n=e.hitTester().hitTest(t);if(null==i)throw new Error("Cannot update new measurement interaction. End point is empty.");return n?(this.model.setIndicator(i),this.setMeasurement(this.getValidMeasurement(i))):(this.model.setIndicator(i),this.setMeasurement(this.getInvalidMeasurement(i)))}async finish(t,e){const i=await e.raycaster(),n=await S(i,t);if(this.model.setIndicator(void 0),null==n){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==i)throw new Error("Cannot complete edit measurement interaction. End point is empty.");return this.setMeasurement(this.getInvalidMeasurement(i))}return this.setMeasurement(this.getValidMeasurement(n))}setMeasurement(t){return this.model.setMeasurement(t),t}}class D extends A{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return T(t,this.measurement.end)}getValidMeasurement(t){return L(t,this.measurement.end)}}class k extends A{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return T(this.measurement.start,t)}getValidMeasurement(t){return L(this.measurement.start,t)}}async function S(t,e){var i;const n=await t.hitItems(e),[s]=null!==(i=null==n?void 0:n.hits)&&void 0!==i?i:[];if(null!=(null==s?void 0:s.hitPoint)){const t=v(s.hitPoint);if(P.isInvalid(t))throw new Error(`Invalid hit response [${t.errors.join(",")}]`);return t}}function L(t,e){return{start:t,end:e,distance:r.distance(t,e),valid:!0}}function T(t,e){return{start:t,end:e,valid:!1}}const H=({startPt:e,endPt:i,centerPt:n,indicatorPt:s,distance:r,anchorLabelOffset:h,lineCapLength:l,linePointerEvents:d,hideStartAnchor:c,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=null!=e&&null!=i?a.fromPoints(e,i):void 0,f=null!=w&&null!=e&&null!=h?o.add(e,o.polar(-h,w)):void 0,b=null!=w&&null!=i&&null!=h?o.add(i,o.polar(h,w)):void 0;return t("div",null,null!=e&&null!=i&&t("vertex-viewer-measurement-line",{class:M("line",{"hide-start-line-cap":c,"hide-end-line-cap":m}),start:e,end:i,capLength:l,pointerEvents:d}),!c&&null!=e&&t("div",{id:"start-anchor",class:"anchor anchor-start",style:{transform:u(e)},onPointerDown:v},t("slot",{name:"start-anchor"},t("div",{class:"anchor-placeholder"}))),!c&&f&&t("div",{class:"anchor-label anchor-label-start",style:{transform:u(f)}},t("slot",{name:"start-label"})),!m&&null!=i&&t("div",{id:"end-anchor",class:"anchor anchor-end",style:{transform:u(i)},onPointerDown:p},t("slot",{name:"end-anchor"},t("div",{class:"anchor-placeholder"}))),!m&&b&&t("div",{class:"anchor-label anchor-label-end",style:{transform:u(b)}},t("slot",{name:"end-label"})),null!=n&&t("div",{id:"label",class:"distance-label",style:{transform:u(n)}},r),null!=s&&t("div",{class:"indicator",style:{transform:u(s)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))};let O=class{constructor(t){e(this,t),this.editBegin=i(this,"editBegin",7),this.editEnd=i(this,"editEnd",7),this.showAxisReferenceLines=!1,this.snapDistance=l,this.units="millimeters",this.fractionalDigits=2,this.anchorLabelOffset=20,this.lineCapLength=d,this.mode="",this.interactingAnchor="none",this.invalid=!1,this.measurementModel=new w,this.viewport=new g(0,0),this.interactionCount=0,this.invalidateStateCounter=0,this.stateMap={},this.measurementUnits=new p(this.units),this.model=j.empty(),this.controller=new x(this.model),this.overlays=new f,this.isUserInteractingWithModel=!1,this.handleFrameDrawn=()=>{this.invalidateState()},this.clearIndicator=()=>{this.controller.clearIndicator()},this.updateStartAnchor=async t=>{if(this.getStencilBuffer(),0===this.interactionCount){const e=m(t,this.elementBounds),i=this.snapPoint(e,t);this.updateIndicator(i)}},this.newMeasurement=t=>{if(0===this.interactionCount&&0===t.button){const e=t=>{const e=()=>{window.removeEventListener("pointerup",i),window.removeEventListener("pointermove",n)},i=async()=>{e(),t()},n=t=>{t.buttons>0&&e()};window.addEventListener("pointermove",n),window.addEventListener("pointerup",i)},i=t=>{const e=()=>t(),i=()=>(window.removeEventListener("pointermove",e),void window.removeEventListener("pointerup",i)),n=()=>{window.addEventListener("pointermove",e),window.addEventListener("pointerup",i)};return window.addEventListener("pointerdown",n),{dispose:()=>window.removeEventListener("pointerdown",n)}},n=()=>{const t=i((()=>{var t;this.isUserInteractingWithModel=!0,null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose()})),e=this.createInteractionMoveHandler(),n=async i=>{var s;if(0===i.button)if(this.isUserInteractingWithModel)this.isUserInteractingWithModel=!1;else{const r=this.getHitProvider();if(null!=r){const a=m(i,this.elementBounds),o=this.snapPoint(a,i);await(null===(s=this.interaction)||void 0===s?void 0:s.finish(o,r)),window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",n),t.dispose(),this.updateMeasurementPropsFromModel(),this.endEditing()}}};this.beginEditing("replace","end"),window.addEventListener("pointermove",e),window.addEventListener("pointerup",n)},s=this.getHitProvider();if(null!=s){const i=m(t,this.elementBounds),r=this.snapPoint(i,t);this.interaction=this.controller.newMeasurement(r,s),null!=this.interaction&&e(n)}}}}async computeElementMetrics(){var t,e,i;const n=null===(t=this.hostEl.shadowRoot)||void 0===t?void 0:t.getElementById("start-anchor"),s=null===(e=this.hostEl.shadowRoot)||void 0===e?void 0:e.getElementById("end-anchor"),r=null===(i=this.hostEl.shadowRoot)||void 0===i?void 0:i.getElementById("label");return null!=n&&null!=s&&null!=r?{startAnchor:n.getBoundingClientRect(),endAnchor:s.getBoundingClientRect(),label:r.getBoundingClientRect()}:void 0}componentWillLoad(){this.updatePropsFromJson(),this.model.setMeasurementFromValues(this.start,this.end,!this.invalid),this.getStencilBuffer(),this.updateViewport(),this.handleViewerChanged(this.viewer),this.handleModeChanged(),this.computePropsAndState(),this.model.onIndicatorChanged((t=>{this.indicatorPt=t}))}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}componentWillUpdate(){this.computePropsAndState()}render(){return t(n,null,this.showAxisReferenceLines&&t("vertex-viewer-measurement-overlays",{measurementOverlays:this.overlays,viewer:this.viewer}),this.renderMeasurement())}renderMeasurement(){const e=this.computeElementPositions(),{startPt:i,endPt:n,labelPt:s,indicatorPt:r,hideStart:a,hideEnd:o}=e,h=this.formatDistance(this.distance);return t(H,"edit"===this.mode||"replace"===this.mode?{startPt:i,endPt:n,centerPt:s,indicatorPt:r,distance:h,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,hideStartAnchor:a,hideEndAnchor:o,onStartAnchorPointerDown:this.handleEditAnchor("start"),onEndAnchorPointerDown:this.handleEditAnchor("end")}:{startPt:i,endPt:n,centerPt:s,indicatorPt:this.indicatorPt,distance:h,hideStartAnchor:a,hideEndAnchor:o,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,linePointerEvents:"painted"})}handleViewerChanged(t,e){null!=e&&(e.removeEventListener("frameDrawn",this.handleFrameDrawn),this.removeInteractionListeners(e)),null!=t&&(t.addEventListener("frameDrawn",this.handleFrameDrawn),this.addInteractionListeners(t))}handleUnitsChanged(){this.measurementUnits=new p(this.units)}handleCameraChanged(){this.updateCamera()}handleModeChanged(){this.warnIfDepthBuffersDisabled(),null!=this.viewer&&(this.removeInteractionListeners(this.viewer),this.addInteractionListeners(this.viewer))}handleStartChanged(){this.updateInteractionModel()}handleEndChanged(){this.updateInteractionModel()}handleInvalidChanged(){this.updateInteractionModel()}computePropsAndState(){this.updateCamera(),this.updateDepthBuffer(),this.updateMeasurementPropsFromModel(),this.updateOverlays()}updateOverlays(){var t;null===(t=this.overlay)||void 0===t||t.dispose(),this.showAxisReferenceLines&&0===this.interactionCount&&!this.invalid&&null!=this.start&&null!=this.end&&(this.overlay=this.overlays.addDistanceVector(this.start,this.end))}async setCursor(t){var e,i;null===(e=this.stateMap.hoverCursor)||void 0===e||e.dispose(),this.isUserInteractingWithModel||(this.stateMap.hoverCursor=await(null===(i=this.viewer)||void 0===i?void 0:i.addCursor(t)))}computeElementPositions(){return"replace"===this.mode?this.computeReplaceElementPositions():this.computeEditOrViewElementPositions()}computeEditOrViewElementPositions(){const t=this.model.getMeasurement();return null!=this.internalCamera&&null!=t?this.computeLineElementPositions(h.create(t)):{}}computeReplaceElementPositions(){if(null!=this.internalCamera){const t=this.model.getMeasurement(),e=null!=t?this.computeLineElementPositions(h.create(t)):{},i=null!=this.indicatorPt?{indicatorPt:this.viewport.transformWorldToViewport(this.indicatorPt,this.internalCamera.projectionViewMatrix)}:{};return Object.assign(Object.assign({},e),i)}return{}}computeLineElementPositions(t){return null!=this.internalCamera?E(t,this.interactingAnchor,{viewport:this.viewport,camera:this.internalCamera}):{}}updateCamera(){var t,e;this.internalCamera=this.camera||(null===(e=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===e?void 0:e.scene.camera)}async updateDepthBuffer(){var t,e;this.stateMap.depthBuffer=await(null===(e=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===e?void 0:e.depthBuffer())}updateViewport(){const t=this.hostEl.getBoundingClientRect();this.viewport=new g(t.width,t.height),this.elementBounds=t}updatePropsFromJson(){var t,e;this.start=V(null!==(t=this.startJson)&&void 0!==t?t:this.start),this.end=V(null!==(e=this.endJson)&&void 0!==e?e:this.end)}updateInteractionModel(){this.model.setMeasurementFromValues(this.start,this.end,!this.invalid)}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}async addInteractionListeners(t){const e=await t.getInteractionTarget();"replace"===this.mode&&(e.addEventListener("pointermove",this.updateStartAnchor),e.addEventListener("pointerdown",this.newMeasurement),e.addEventListener("pointerleave",this.clearIndicator))}async removeInteractionListeners(t){const e=await t.getInteractionTarget();e.removeEventListener("pointermove",this.updateStartAnchor),e.removeEventListener("pointerdown",this.newMeasurement),e.removeEventListener("pointerleave",this.clearIndicator)}handleEditAnchor(t){if("edit"===this.mode||"replace"===this.mode){const e=this.createInteractionMoveHandler(),i=async t=>{var n;const s=this.getHitProvider();if(null!=s){window.removeEventListener("pointermove",e),window.removeEventListener("pointerup",i);const r=m(t,this.elementBounds),a=this.snapPoint(r,t);await(null===(n=this.interaction)||void 0===n?void 0:n.finish(a,s)),this.updateMeasurementPropsFromModel(),this.endEditing()}};return n=>{this.getStencilBuffer(),0===n.button&&(this.beginEditing("edit",t),this.interaction=this.controller.editMeasurement(t),window.addEventListener("pointermove",e),window.addEventListener("pointerup",i))}}}createInteractionMoveHandler(){return t=>{var e;const i=this.getHitProvider();if(null!=this.elementBounds&&null!=i){t.preventDefault(),this.getStencilBuffer();const n=m(t,this.elementBounds),s=this.snapPoint(n,t);null===(e=this.interaction)||void 0===e||e.update(s,i),this.updateMeasurementPropsFromModel()}}}async getStencilBuffer(){var t;const e=await(null===(t=this.viewer)||void 0===t?void 0:t.stencilBuffer.latestAfterInteraction());this.stateMap.stencil=e}snapPoint(t,e){const i=this.getHitProvider();if(null!=i&&!e.shiftKey){const e=Math.max(0,this.snapDistance);return i.hitTester().snapToNearestPixel(t,e)}return t}formatDistance(t){const e=null!=t?this.measurementUnits.convertWorldValueToReal(t):void 0;if(null!=this.labelFormatter)return this.labelFormatter(e);{const t=this.measurementUnits.unit.abbreviatedName;return null==e?"---":`~${e.toFixed(this.fractionalDigits)} ${t}`}}beginEditing(t,e){0===this.interactionCount&&(this.interactingAnchor=e,this.editBegin.emit({type:t,anchor:e})),this.interactionCount=this.interactionCount+1}endEditing(){if(1===this.interactionCount){const t=this.model.getMeasurement();this.interactingAnchor="none",this.updateMeasurementModel(),null!=t&&this.editEnd.emit(t)}this.interactionCount=this.interactionCount-1}updateMeasurementModel(){this.measurementModel.clearOutcome(),this.invalid||null==this.start||null==this.end||this.measurementModel.setOutcome({isApproximate:!0,results:[b(this.start,this.end)]})}getHitProvider(){if(null!=this.hitProvider)return this.hitProvider;{const t=this.getHitTester(),e=this.viewer;if(null!=e&&null!=t)return{hitTester:()=>t,raycaster:async()=>(await e.scene()).raycaster()}}}getHitTester(){const{stencil:t,depthBuffer:e}=this.stateMap;if(null!=e)return new C(t,e,this.viewport)}updateMeasurementPropsFromModel(){const t=this.model.getMeasurement();this.start=null==t?void 0:t.start,this.end=null==t?void 0:t.end,this.distance=null==t?void 0:t.distance,this.invalid=null!=t&&!t.valid}updateIndicator(t){var e;const i=this.getHitProvider();null!=i&&this.controller.moveIndicator(t,i)?this.setCursor(c):null===(e=this.stateMap.hoverCursor)||void 0===e||e.dispose()}warnIfDepthBuffersDisabled(){null!=this.viewer&&null==this.viewer.depthBuffers&&console.warn("Measurement editing is disabled. <vertex-viewer> must have its `depth-buffers` attribute set.")}get hostEl(){return s(this)}static get watchers(){return{viewer:["handleViewerChanged"],units:["handleUnitsChanged"],camera:["handleCameraChanged"],mode:["handleModeChanged"],start:["handleStartChanged"],end:["handleEndChanged"],invalid:["handleInvalidChanged"]}}};function V(t){return"string"==typeof t?r.fromJson(t):t}O.style=":host{--viewer-measurement-distance-accent-color:var(--neutral-900);--viewer-measurement-distance-contrast-color:var(--white);--viewer-measurement-distance-invalid-accent-color:var(--red-600);--viewer-measurement-distance-invalid-contrast-color:var(--white);--viewer-measurement-distance-line-stroke-width:1.25px;--viewer-measurement-distance-line-fill-width:2px;--viewer-measurement-distance-distance-border:1px solid\n var(--viewer-measurement-distance-accent-color);--viewer-measurement-distance-distance-border-radius:0.25rem;--viewer-measurement-distance-distance-padding:0.375rem 0.5rem;color:var(--viewer-measurement-distance-accent-color);font-size:0.75rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}:host([invalid]:not([invalid='false'])){--viewer-measurement-distance-accent-color:var(\n --viewer-measurement-distance-invalid-accent-color\n ) !important;--viewer-measurement-distance-contrast-color:var(\n --viewer-measurement-distance-invalid-contrast-color\n ) !important}.line{--viewer-measurement-line-stroke:var(\n --viewer-measurement-distance-contrast-color\n );--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:var(\n --viewer-measurement-distance-line-stroke-width\n );--viewer-measurement-line-fill:var(\n --viewer-measurement-distance-accent-color\n );--viewer-measurement-line-fill-width:var(\n --viewer-measurement-distance-line-fill-width\n );position:absolute;width:100%;height:100%}.anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host([interacting-anchor='start']) .anchor-start,:host([interacting-anchor='start']) .anchor-label-start{visibility:hidden}.hide-start-line-cap,:host([interacting-anchor='start']) .line{--viewer-measurement-line-start-cap-visibility:hidden}:host([interacting-anchor='end']) .anchor-end,:host([interacting-anchor='end']) .anchor-label-end{visibility:hidden}.hide-end-line-cap,:host([interacting-anchor='end']) .line{--viewer-measurement-line-end-cap-visibility:hidden}.anchor-label{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host(:not([mode=''])){cursor:inherit}:host(:not([mode=''])) .anchor{cursor:move}:host([mode='']) .anchor{visibility:hidden}.anchor-placeholder{background:var(--viewer-measurement-distance-contrast-color);width:12px;height:12px;border-radius:50%;box-sizing:border-box}:host(:not([mode=''])) .anchor-placeholder{border:2px solid var(--viewer-measurement-distance-accent-color);background:var(--viewer-measurement-distance-contrast-color)}:host([mode='']) .distance-label{color:var(--viewer-measurement-distance-contrast-color);background:var(--viewer-measurement-distance-accent-color)}.distance-label{position:absolute;background:var(--viewer-measurement-distance-contrast-color);border:var(--viewer-measurement-distance-distance-border);border-radius:var(--viewer-measurement-distance-distance-border-radius);padding:var(--viewer-measurement-distance-distance-padding);pointer-events:auto}.indicator{position:absolute}.indicator-placeholder{background:var(--viewer-measurement-distance-accent-color);border:1px solid var(--viewer-measurement-distance-contrast-color);width:6px;height:6px;border-radius:50%;box-sizing:border-box}";export{O as vertex_viewer_measurement_distance}
@@ -0,0 +1,4 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import{p as t,l as n}from"./p-0aba71fd.js";function e(t,e){const{camera:r,viewport:a}=e,d=r.isPointBehindNear(t.start),i=r.isPointBehindNear(t.end);if(d||i){const e=r.intersectLineWithNear(t),s=n.create({start:d&&null!=e?e:t.start,end:i&&null!=e?e:t.end}),o=n.transformMatrix(s,r.projectionViewMatrix);return{start:a.transformVectorToViewport(o.start),end:a.transformVectorToViewport(o.end),hideStart:d,hideEnd:i}}{const e=n.transformMatrix(t,r.projectionViewMatrix);return{start:a.transformVectorToViewport(e.start),end:a.transformVectorToViewport(e.end),hideStart:!1,hideEnd:!1}}}function r(n,r,a){const{start:d,end:i,hideStart:s,hideEnd:o}=e(n,a);return{startPt:d,endPt:i,labelPt:t.lerp(d,i,.5),indicatorPt:"none"!==r?function(t,n,e){return e.viewport.transformWorldToViewport("start"===n?t.start:t.end,e.camera.projectionViewMatrix)}(n,r,a):void 0,hideStart:s,hideEnd:o}}function a(t){return t instanceof HTMLElement&&"VERTEX-VIEWER-MEASUREMENT-DISTANCE"===t.nodeName}export{r as g,a as i,e as t}