@vertexvis/viewer 0.13.0-canary.7 → 0.13.0-powerbi

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 (99) hide show
  1. package/dist/cjs/{config-90ee43d5.js → config-5861ff09.js} +1 -1
  2. package/dist/cjs/constants-be2deb55.js +17 -0
  3. package/dist/cjs/{entities-aa59890e.js → entities-f788438b.js} +2 -2
  4. package/dist/cjs/index.cjs.js +4 -4
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/{mapper-f6e6cafe.js → mapper-4817021f.js} +1 -1
  7. package/dist/cjs/{png-decoder-27d25eed.js → png-decoder-720a2567.js} +0 -0
  8. package/dist/cjs/{scene-f4040800.js → scene-1c6754ed.js} +32 -6
  9. package/dist/cjs/{streamAttributes-d6236448.js → streamAttributes-7d28ea13.js} +1 -1
  10. package/dist/cjs/{utils-235cd490.js → utils-545b1865.js} +5 -21
  11. package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
  12. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +1 -1
  13. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +1 -1
  14. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +52 -31
  15. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +13 -14
  16. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +8 -5
  17. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +4 -3
  18. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +6 -5
  19. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  20. package/dist/cjs/vertex-viewer.cjs.entry.js +81 -19
  21. package/dist/cjs/viewer.cjs.js +1 -1
  22. package/dist/collection/components/viewer/viewer.js +72 -17
  23. package/dist/collection/components/viewer-measurement-distance/interactions.js +26 -20
  24. package/dist/collection/components/viewer-measurement-distance/utils.js +6 -10
  25. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +24 -10
  26. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays-components.js +12 -13
  27. package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +6 -3
  28. package/dist/collection/lib/rendering/canvas.js +28 -2
  29. package/dist/collection/lib/scenes/mapper.js +10 -2
  30. package/dist/collection/lib/scenes/queries.js +15 -1
  31. package/dist/collection/lib/scenes/scene.js +9 -5
  32. package/dist/collection/testing/resizeObserver.js +2 -2
  33. package/dist/collection/testing/viewer.js +6 -1
  34. package/dist/custom-elements/index.js +174 -69
  35. package/dist/esm/{config-604c644e.js → config-e2bc09e4.js} +1 -1
  36. package/dist/esm/constants-8582656b.js +14 -0
  37. package/dist/esm/{entities-759d97cd.js → entities-32237bc4.js} +2 -2
  38. package/dist/esm/index.js +4 -4
  39. package/dist/esm/index.mjs +4 -4
  40. package/dist/esm/loader.js +1 -1
  41. package/dist/esm/loader.mjs +1 -1
  42. package/dist/esm/{mapper-4b815e31.js → mapper-d107ffef.js} +1 -1
  43. package/dist/esm/{png-decoder-3f1fa486.js → png-decoder-cd28c3f1.js} +0 -0
  44. package/dist/esm/polyfills/core-js.js +0 -0
  45. package/dist/esm/polyfills/dom.js +0 -0
  46. package/dist/esm/polyfills/es5-html-element.js +0 -0
  47. package/dist/esm/polyfills/index.js +0 -0
  48. package/dist/esm/polyfills/system.js +0 -0
  49. package/dist/esm/{scene-9ac8a484.js → scene-8b218ef9.js} +32 -6
  50. package/dist/esm/{streamAttributes-d623bb60.js → streamAttributes-59601d8a.js} +1 -1
  51. package/dist/esm/{utils-01e4f587.js → utils-83a19677.js} +6 -20
  52. package/dist/esm/vertex-scene-tree.entry.js +2 -2
  53. package/dist/esm/vertex-viewer-dom-element_3.entry.js +1 -1
  54. package/dist/esm/vertex-viewer-measurement-details.entry.js +1 -1
  55. package/dist/esm/vertex-viewer-measurement-distance.entry.js +50 -29
  56. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +13 -14
  57. package/dist/esm/vertex-viewer-measurement-precise.entry.js +8 -5
  58. package/dist/esm/vertex-viewer-measurement-tool.entry.js +3 -2
  59. package/dist/esm/vertex-viewer-measurements.entry.js +5 -4
  60. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  61. package/dist/esm/vertex-viewer.entry.js +81 -19
  62. package/dist/esm/viewer.js +1 -1
  63. package/dist/types/components/viewer/viewer.d.ts +9 -0
  64. package/dist/types/components/viewer-measurement-distance/interactions.d.ts +1 -1
  65. package/dist/types/components/viewer-measurement-distance/utils.d.ts +1 -3
  66. package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +4 -0
  67. package/dist/types/components.d.ts +8 -0
  68. package/dist/types/lib/rendering/canvas.d.ts +4 -1
  69. package/dist/types/lib/scenes/mapper.d.ts +5 -1
  70. package/dist/types/lib/scenes/queries.d.ts +12 -1
  71. package/dist/types/lib/scenes/scene.d.ts +4 -2
  72. package/dist/types/testing/viewer.d.ts +2 -0
  73. package/dist/viewer/index.esm.js +1 -1
  74. package/dist/viewer/{p-f7cb7e59.js → p-212b2b60.js} +1 -1
  75. package/dist/viewer/p-240c5024.entry.js +4 -0
  76. package/dist/viewer/p-2cefb1b0.js +4 -0
  77. package/dist/viewer/p-4c829eee.entry.js +4 -0
  78. package/dist/viewer/{p-fe11d694.js → p-564a980b.js} +1 -1
  79. package/dist/viewer/p-849bd025.js +4 -0
  80. package/dist/viewer/{p-d90f2f6d.entry.js → p-9aee21b2.entry.js} +1 -1
  81. package/dist/viewer/{p-3f6ac74f.js → p-9b1ba7ea.js} +0 -0
  82. package/dist/viewer/{p-353cfc7a.entry.js → p-acdda5d4.entry.js} +1 -1
  83. package/dist/viewer/{p-915d95ad.entry.js → p-b091fd4e.entry.js} +1 -1
  84. package/dist/viewer/{p-acf22d3e.js → p-b5af3382.js} +1 -1
  85. package/dist/viewer/p-b97ae3db.entry.js +4 -0
  86. package/dist/viewer/{p-ebb35eb7.entry.js → p-c627b6bd.entry.js} +1 -1
  87. package/dist/viewer/{p-364ce21c.js → p-e0ab281d.js} +1 -1
  88. package/dist/viewer/{p-b0ab66a9.entry.js → p-f4ad2ddf.entry.js} +1 -1
  89. package/dist/viewer/{p-25eaab00.entry.js → p-f58279a8.entry.js} +1 -1
  90. package/dist/viewer/{p-a0df0e0c.js → p-fa38a12c.js} +1 -1
  91. package/dist/viewer/p-ffa32d65.entry.js +4 -0
  92. package/dist/viewer/viewer.esm.js +1 -1
  93. package/package.json +7 -8
  94. package/readme.md +4 -4
  95. package/dist/viewer/p-0aeab3fc.js +0 -4
  96. package/dist/viewer/p-6370098c.entry.js +0 -4
  97. package/dist/viewer/p-6f3eff0b.entry.js +0 -4
  98. package/dist/viewer/p-7006fd4e.entry.js +0 -4
  99. package/dist/viewer/p-8e913c0b.entry.js +0 -4
@@ -4,7 +4,7 @@
4
4
  'use strict';
5
5
 
6
6
  const browser_esm = require('./browser.esm-31b03292.js');
7
- require('./streamAttributes-d6236448.js');
7
+ require('./streamAttributes-7d28ea13.js');
8
8
 
9
9
  const DEFAULT_ANIMATION_DURATION = 500;
10
10
  const defaultAnimationConfig = {
@@ -0,0 +1,17 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ 'use strict';
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
+ exports.MEASUREMENT_LINE_CAP_LENGTH = MEASUREMENT_LINE_CAP_LENGTH;
17
+ exports.MEASUREMENT_SNAP_DISTANCE = MEASUREMENT_SNAP_DISTANCE;
@@ -3,9 +3,9 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const mapper = require('./mapper-f6e6cafe.js');
6
+ const mapper = require('./mapper-4817021f.js');
7
7
  const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
8
- const streamAttributes = require('./streamAttributes-d6236448.js');
8
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
9
9
  const browser_esm = require('./browser.esm-31b03292.js');
10
10
 
11
11
  function requestUnary(caller) {
@@ -5,18 +5,18 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const scene = require('./scene-f4040800.js');
8
+ const scene = require('./scene-1c6754ed.js');
9
9
  const cursors = require('./cursors-ad2fd395.js');
10
- const entities = require('./entities-aa59890e.js');
10
+ const entities = require('./entities-f788438b.js');
11
11
  const model = require('./model-4ec0c36e.js');
12
12
  const overlays = require('./overlays-40c6cbc7.js');
13
13
  const results = require('./results-bc325974.js');
14
- const streamAttributes = require('./streamAttributes-d6236448.js');
14
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
15
15
  const markup = require('./markup-fb1553b1.js');
16
16
  const viewport = require('./viewport-8c39089f.js');
17
17
  require('./browser.esm-31b03292.js');
18
18
  require('./bundle.esm-dc0a8361.js');
19
- require('./mapper-f6e6cafe.js');
19
+ require('./mapper-4817021f.js');
20
20
  require('./_commonjsHelpers-537d719a.js');
21
21
  require('./grpc-web-client.umd-60a79aae.js');
22
22
 
@@ -20,7 +20,7 @@ const defineCustomElements = (win, options) => {
20
20
  if (typeof window === 'undefined') return Promise.resolve();
21
21
  return patchEsm().then(() => {
22
22
  appGlobals.globalScripts();
23
- return index.bootstrapLazy([["vertex-viewer-default-toolbar.cjs",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header.cjs",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider.cjs",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group.cjs",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3.cjs",[[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.cjs",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer.cjs",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3.cjs",[[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.cjs",[[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);
23
+ return index.bootstrapLazy([["vertex-viewer-default-toolbar.cjs",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header.cjs",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider.cjs",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group.cjs",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[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.cjs",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3.cjs",[[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.cjs",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer.cjs",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3.cjs",[[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.cjs",[[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);
24
24
  });
25
25
  };
26
26
 
@@ -6,7 +6,7 @@
6
6
  const _commonjsHelpers = require('./_commonjsHelpers-537d719a.js');
7
7
  const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
8
8
  const browser_esm = require('./browser.esm-31b03292.js');
9
- const streamAttributes = require('./streamAttributes-d6236448.js');
9
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
10
10
 
11
11
  var uuid_pb = _commonjsHelpers.createCommonjsModule(function (module, exports) {
12
12
  /**
@@ -5,7 +5,7 @@
5
5
 
6
6
  const browser_esm = require('./browser.esm-31b03292.js');
7
7
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
8
- const streamAttributes = require('./streamAttributes-d6236448.js');
8
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
9
9
 
10
10
  const defaultColor = {
11
11
  opacity: 100,
@@ -361,7 +361,7 @@ class CameraRenderResult {
361
361
  }
362
362
  }
363
363
 
364
- function buildSceneOperation(query, operations) {
364
+ function buildSceneOperation(query, operations, context) {
365
365
  const operationTypes = buildOperationTypes(operations);
366
366
  switch (query.type) {
367
367
  case 'and':
@@ -410,6 +410,14 @@ function buildSceneOperation(query, operations) {
410
410
  },
411
411
  operationTypes,
412
412
  };
413
+ case 'point':
414
+ return {
415
+ point: {
416
+ point: query.point,
417
+ viewport: context.dimensions,
418
+ },
419
+ operationTypes,
420
+ };
413
421
  default:
414
422
  return {};
415
423
  }
@@ -931,6 +939,9 @@ class RootQuery {
931
939
  withSelected() {
932
940
  return new AllSelectedQuery();
933
941
  }
942
+ withPoint(point) {
943
+ return new PointQuery(point);
944
+ }
934
945
  }
935
946
  class AllQuery {
936
947
  build() {
@@ -968,6 +979,17 @@ class AllSelectedQuery {
968
979
  };
969
980
  }
970
981
  }
982
+ class PointQuery {
983
+ constructor(point) {
984
+ this.point = point;
985
+ }
986
+ build() {
987
+ return {
988
+ type: 'point',
989
+ point: this.point,
990
+ };
991
+ }
992
+ }
971
993
  class BulkQuery {
972
994
  constructor(ids, type) {
973
995
  this.ids = ids;
@@ -1133,13 +1155,16 @@ class SceneItemOperationsBuilder {
1133
1155
  }
1134
1156
  }
1135
1157
  class ItemsOperationExecutor {
1136
- constructor(sceneViewId, stream, queryOperations) {
1158
+ constructor(sceneViewId, stream, dimensions, queryOperations) {
1137
1159
  this.sceneViewId = sceneViewId;
1138
1160
  this.stream = stream;
1161
+ this.dimensions = dimensions;
1139
1162
  this.queryOperations = queryOperations;
1140
1163
  }
1141
1164
  async execute(executionOptions) {
1142
- const pbOperations = this.queryOperations.map((op) => buildSceneOperation(op.query, op.operations));
1165
+ const pbOperations = this.queryOperations.map((op) => buildSceneOperation(op.query, op.operations, {
1166
+ dimensions: this.dimensions,
1167
+ }));
1143
1168
  const request = {
1144
1169
  sceneViewId: {
1145
1170
  hex: this.sceneViewId,
@@ -1161,11 +1186,12 @@ class ItemsOperationExecutor {
1161
1186
  * the scene.
1162
1187
  */
1163
1188
  class Scene {
1164
- constructor(stream, frame, decodeFrame, imageScaleProvider, sceneViewId, defaultSelectionMaterial) {
1189
+ constructor(stream, frame, decodeFrame, imageScaleProvider, dimensions, sceneViewId, defaultSelectionMaterial) {
1165
1190
  this.stream = stream;
1166
1191
  this.frame = frame;
1167
1192
  this.decodeFrame = decodeFrame;
1168
1193
  this.imageScaleProvider = imageScaleProvider;
1194
+ this.dimensions = dimensions;
1169
1195
  this.sceneViewId = sceneViewId;
1170
1196
  this.defaultSelectionMaterial = defaultSelectionMaterial;
1171
1197
  }
@@ -1202,7 +1228,7 @@ class Scene {
1202
1228
  ? sceneOperations
1203
1229
  : [sceneOperations];
1204
1230
  const operationList = ops.reduce((acc, builder) => acc.concat(builder.build()), []);
1205
- return new ItemsOperationExecutor(this.sceneViewId, this.stream, operationList);
1231
+ return new ItemsOperationExecutor(this.sceneViewId, this.stream, this.dimensions, operationList);
1206
1232
  }
1207
1233
  /**
1208
1234
  * An instance of the current camera of the scene.
@@ -36113,7 +36113,7 @@ class FeatureMap {
36113
36113
  }
36114
36114
 
36115
36115
  async function loadWorker() {
36116
- return Promise.resolve().then(function () { return require('./png-decoder-27d25eed.js'); });
36116
+ return Promise.resolve().then(function () { return require('./png-decoder-720a2567.js'); });
36117
36117
  }
36118
36118
 
36119
36119
  let workerLoader;
@@ -5,22 +5,8 @@
5
5
 
6
6
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
7
7
 
8
- /**
9
- * The default distance, in pixels, between the mouse position and a snappable
10
- * measurement feature.
11
- */
12
- const MEASUREMENT_SNAP_DISTANCE = 16;
13
- /**
14
- * The default length, in pixels, for the measurement line cap.
15
- */
16
- const MEASUREMENT_LINE_CAP_LENGTH = 10;
17
-
18
- function translateWorldPtToViewport(pt, projectionViewMatrix, viewport) {
19
- const ndc = bundle_esm.vector3.transformMatrix(pt, projectionViewMatrix);
20
- return viewport.transformVectorToViewport(ndc);
21
- }
22
8
  function translateWorldLineToViewport(line, params) {
23
- const { camera, projectionViewMatrix, viewport } = params;
9
+ const { camera, viewport } = params;
24
10
  const isStartBehindCamera = camera.isPointBehindNear(line.start);
25
11
  const isEndBehindCamera = camera.isPointBehindNear(line.end);
26
12
  // If either the start or end of the line is behind the camera, then we need
@@ -32,7 +18,7 @@ function translateWorldLineToViewport(line, params) {
32
18
  start: isStartBehindCamera && pt != null ? pt : line.start,
33
19
  end: isEndBehindCamera && pt != null ? pt : line.end,
34
20
  });
35
- const ndc = bundle_esm.line3.transformMatrix(newLine, projectionViewMatrix);
21
+ const ndc = bundle_esm.line3.transformMatrix(newLine, camera.projectionViewMatrix);
36
22
  return {
37
23
  start: viewport.transformVectorToViewport(ndc.start),
38
24
  end: viewport.transformVectorToViewport(ndc.end),
@@ -41,7 +27,7 @@ function translateWorldLineToViewport(line, params) {
41
27
  };
42
28
  }
43
29
  else {
44
- const ndc = bundle_esm.line3.transformMatrix(line, projectionViewMatrix);
30
+ const ndc = bundle_esm.line3.transformMatrix(line, camera.projectionViewMatrix);
45
31
  return {
46
32
  start: viewport.transformVectorToViewport(ndc.start),
47
33
  end: viewport.transformVectorToViewport(ndc.end),
@@ -63,11 +49,9 @@ function isVertexViewerDistanceMeasurement(el) {
63
49
  el.nodeName === 'VERTEX-VIEWER-MEASUREMENT-DISTANCE');
64
50
  }
65
51
  function getIndicatorPtForAnchor(line, anchor, params) {
66
- return translateWorldPtToViewport(anchor === 'start' ? line.start : line.end, params.projectionViewMatrix, params.viewport);
52
+ return params.viewport.transformWorldToViewport(anchor === 'start' ? line.start : line.end, params.camera.projectionViewMatrix);
67
53
  }
68
54
 
69
- exports.MEASUREMENT_LINE_CAP_LENGTH = MEASUREMENT_LINE_CAP_LENGTH;
70
- exports.MEASUREMENT_SNAP_DISTANCE = MEASUREMENT_SNAP_DISTANCE;
71
55
  exports.getViewingElementPositions = getViewingElementPositions;
72
56
  exports.isVertexViewerDistanceMeasurement = isVertexViewerDistanceMeasurement;
73
- exports.translateWorldPtToViewport = translateWorldPtToViewport;
57
+ exports.translateWorldLineToViewport = translateWorldLineToViewport;
@@ -9,10 +9,10 @@ const index = require('./index-e100709a.js');
9
9
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
10
10
  const _commonjsHelpers = require('./_commonjsHelpers-537d719a.js');
11
11
  const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
12
- const config = require('./config-90ee43d5.js');
12
+ const config = require('./config-5861ff09.js');
13
13
  const browser_esm = require('./browser.esm-31b03292.js');
14
14
  const dom = require('./dom-d162f898.js');
15
- require('./streamAttributes-d6236448.js');
15
+ require('./streamAttributes-7d28ea13.js');
16
16
 
17
17
  window.requestIdleCallback =
18
18
  window.requestIdleCallback ||
@@ -7,7 +7,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
9
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
10
- require('./streamAttributes-d6236448.js');
10
+ require('./streamAttributes-7d28ea13.js');
11
11
  const viewport = require('./viewport-8c39089f.js');
12
12
  require('./browser.esm-31b03292.js');
13
13
  require('./_commonjsHelpers-537d719a.js');
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
- const streamAttributes = require('./streamAttributes-d6236448.js');
9
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
10
10
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
11
11
  const index$1 = require('./index-3bc6bac0.js');
12
12
  require('./browser.esm-31b03292.js');
@@ -7,17 +7,18 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
9
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
10
- const utils = require('./utils-235cd490.js');
10
+ const constants = require('./constants-be2deb55.js');
11
11
  const cursors = require('./cursors-ad2fd395.js');
12
12
  const dom = require('./dom-dd265f48.js');
13
- require('./mapper-f6e6cafe.js');
13
+ require('./mapper-4817021f.js');
14
14
  require('./grpc-web-client.umd-60a79aae.js');
15
- const streamAttributes = require('./streamAttributes-d6236448.js');
15
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
16
16
  const model = require('./model-4ec0c36e.js');
17
17
  const overlays = require('./overlays-40c6cbc7.js');
18
18
  const results = require('./results-bc325974.js');
19
19
  const viewport = require('./viewport-8c39089f.js');
20
20
  const browser_esm = require('./browser.esm-31b03292.js');
21
+ const utils = require('./utils-545b1865.js');
21
22
  const index$1 = require('./index-3bc6bac0.js');
22
23
  require('./_commonjsHelpers-537d719a.js');
23
24
 
@@ -223,6 +224,8 @@ class NewMeasurementInteraction {
223
224
  this.world = world;
224
225
  this.model = model;
225
226
  this.hitWorldValid = true;
227
+ // Prevents any updates of the interaction while finish is completing.
228
+ this.preventUpdate = false;
226
229
  }
227
230
  fetchStartIfMissing(hits) {
228
231
  if (this.pendingStart == null) {
@@ -246,33 +249,37 @@ class NewMeasurementInteraction {
246
249
  }
247
250
  update(pt, hits) {
248
251
  var _a;
249
- this.fetchStartIfMissing(hits);
250
- const end = hits
251
- .hitTester()
252
- .transformPointToWorld(pt, { ignoreHitTest: true });
253
- const isHit = hits.hitTester().hitTest(pt);
254
- const start = (_a = this.hitWorld) !== null && _a !== void 0 ? _a : this.world;
255
- if (end == null) {
256
- throw new Error('Cannot update new measurement interaction. End point is empty.');
257
- }
258
- else if (!this.hitWorldValid || !isHit) {
259
- this.model.setIndicator(end);
260
- return this.setMeasurement(invalidMeasurement(start, end));
261
- }
262
- else {
263
- this.model.setIndicator(end);
264
- return this.setMeasurement(validMeasurement(start, end));
252
+ if (!this.preventUpdate) {
253
+ this.fetchStartIfMissing(hits);
254
+ const end = hits
255
+ .hitTester()
256
+ .transformPointToWorld(pt, { ignoreHitTest: true });
257
+ const isHit = hits.hitTester().hitTest(pt);
258
+ const start = (_a = this.hitWorld) !== null && _a !== void 0 ? _a : this.world;
259
+ if (end == null) {
260
+ throw new Error('Cannot update new measurement interaction. End point is empty.');
261
+ }
262
+ else if (!this.hitWorldValid || !isHit) {
263
+ this.model.setIndicator(end);
264
+ this.setMeasurement(invalidMeasurement(start, end));
265
+ }
266
+ else {
267
+ this.model.setIndicator(end);
268
+ this.setMeasurement(validMeasurement(start, end));
269
+ }
265
270
  }
266
271
  }
267
272
  async finish(pt, hits) {
268
273
  var _a;
274
+ this.preventUpdate = true;
269
275
  // Wait for the hit for the starting point.
270
276
  this.fetchStartIfMissing(hits);
271
277
  await this.pendingStart;
278
+ this.model.setIndicator(undefined);
272
279
  const raycaster = await hits.raycaster();
273
280
  const hitPt = await getHit(raycaster, pt);
274
281
  const start = (_a = this.hitWorld) !== null && _a !== void 0 ? _a : this.world;
275
- this.model.setIndicator(undefined);
282
+ this.preventUpdate = false;
276
283
  if (hitPt == null) {
277
284
  const end = hits
278
285
  .hitTester()
@@ -315,11 +322,11 @@ class EditAnchorInteraction {
315
322
  }
316
323
  else if (!isHit) {
317
324
  this.model.setIndicator(world);
318
- return this.setMeasurement(this.getInvalidMeasurement(world));
325
+ this.setMeasurement(this.getInvalidMeasurement(world));
319
326
  }
320
327
  else {
321
328
  this.model.setIndicator(world);
322
- return this.setMeasurement(this.getValidMeasurement(world));
329
+ this.setMeasurement(this.getValidMeasurement(world));
323
330
  }
324
331
  }
325
332
  async finish(pt, hits) {
@@ -421,6 +428,7 @@ const DistanceMeasurementRenderer = ({ startPt, endPt, centerPt, indicatorPt, di
421
428
 
422
429
  const viewerMeasurementDistanceCss = ":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}";
423
430
 
431
+ const INTERACTION_THRESHOLD = 3;
424
432
  let ViewerMeasurementDistance = class {
425
433
  constructor(hostRef) {
426
434
  index.registerInstance(this, hostRef);
@@ -435,7 +443,7 @@ let ViewerMeasurementDistance = class {
435
443
  * The distance, in pixels, between the mouse and nearest snappable edge. A
436
444
  * value of 0 disables snapping.
437
445
  */
438
- this.snapDistance = utils.MEASUREMENT_SNAP_DISTANCE;
446
+ this.snapDistance = constants.MEASUREMENT_SNAP_DISTANCE;
439
447
  /**
440
448
  * The unit of measurement.
441
449
  */
@@ -451,7 +459,7 @@ let ViewerMeasurementDistance = class {
451
459
  /**
452
460
  * The length of the caps at each end of the distance measurement.
453
461
  */
454
- this.lineCapLength = utils.MEASUREMENT_LINE_CAP_LENGTH;
462
+ this.lineCapLength = constants.MEASUREMENT_LINE_CAP_LENGTH;
455
463
  /**
456
464
  * A mode that specifies how the measurement component should behave. When
457
465
  * unset, the component will not respond to interactions with the handles.
@@ -522,13 +530,20 @@ let ViewerMeasurementDistance = class {
522
530
  // interacting with the model. If so, we temporarily disable measurement
523
531
  // updates until the user finishes.
524
532
  const pointerDownAndMove = (callback) => {
525
- const pointerMove = () => callback();
533
+ let downPt = bundle_esm.point.create(0, 0);
534
+ const pointerMove = (event) => {
535
+ const dist = bundle_esm.point.distance(downPt, dom.getMouseClientPosition(event));
536
+ if (dist >= INTERACTION_THRESHOLD) {
537
+ callback();
538
+ }
539
+ };
526
540
  const dispose = () => {
527
541
  window.removeEventListener('pointermove', pointerMove);
528
542
  window.removeEventListener('pointerup', pointerUp);
529
543
  };
530
544
  const pointerUp = () => dispose();
531
- const pointerDown = () => {
545
+ const pointerDown = (event) => {
546
+ downPt = dom.getMouseClientPosition(event);
532
547
  window.addEventListener('pointermove', pointerMove);
533
548
  window.addEventListener('pointerup', pointerUp);
534
549
  };
@@ -606,6 +621,13 @@ let ViewerMeasurementDistance = class {
606
621
  return undefined;
607
622
  }
608
623
  }
624
+ /**
625
+ * @ignore
626
+ */
627
+ disconnectedCallback() {
628
+ var _a;
629
+ (_a = this.stateMap.hoverCursor) === null || _a === void 0 ? void 0 : _a.dispose();
630
+ }
609
631
  /**
610
632
  * @ignore
611
633
  */
@@ -739,7 +761,7 @@ let ViewerMeasurementDistance = class {
739
761
  computeEditOrViewElementPositions() {
740
762
  const measurement = this.model.getMeasurement();
741
763
  if (this.internalCamera != null && measurement != null) {
742
- return this.computeLineElementPositions(this.internalCamera.projectionViewMatrix, bundle_esm.line3.create(measurement));
764
+ return this.computeLineElementPositions(bundle_esm.line3.create(measurement));
743
765
  }
744
766
  else {
745
767
  return {};
@@ -749,11 +771,11 @@ let ViewerMeasurementDistance = class {
749
771
  if (this.internalCamera != null) {
750
772
  const measurement = this.model.getMeasurement();
751
773
  const line = measurement != null
752
- ? this.computeLineElementPositions(this.internalCamera.projectionViewMatrix, bundle_esm.line3.create(measurement))
774
+ ? this.computeLineElementPositions(bundle_esm.line3.create(measurement))
753
775
  : {};
754
776
  const indicator = this.indicatorPt != null
755
777
  ? {
756
- indicatorPt: utils.translateWorldPtToViewport(this.indicatorPt, this.internalCamera.projectionViewMatrix, this.viewport),
778
+ indicatorPt: this.viewport.transformWorldToViewport(this.indicatorPt, this.internalCamera.projectionViewMatrix),
757
779
  }
758
780
  : {};
759
781
  return Object.assign(Object.assign({}, line), indicator);
@@ -762,10 +784,9 @@ let ViewerMeasurementDistance = class {
762
784
  return {};
763
785
  }
764
786
  }
765
- computeLineElementPositions(matrix, line) {
787
+ computeLineElementPositions(line) {
766
788
  if (this.internalCamera != null) {
767
789
  return utils.getViewingElementPositions(line, this.interactingAnchor, {
768
- projectionViewMatrix: matrix,
769
790
  viewport: this.viewport,
770
791
  camera: this.internalCamera,
771
792
  });
@@ -7,10 +7,11 @@ Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
9
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
10
- require('./mapper-f6e6cafe.js');
10
+ require('./mapper-4817021f.js');
11
11
  require('./grpc-web-client.umd-60a79aae.js');
12
- require('./streamAttributes-d6236448.js');
12
+ require('./streamAttributes-7d28ea13.js');
13
13
  const overlays = require('./overlays-40c6cbc7.js');
14
+ const utils = require('./utils-545b1865.js');
14
15
  require('./_commonjsHelpers-537d719a.js');
15
16
  require('./browser.esm-31b03292.js');
16
17
 
@@ -71,20 +72,18 @@ const MeasurementOverlayView = ({ overlay, viewport, camera }) => {
71
72
  return (index.h(DistanceVectorOverlayView, { overlay: overlay, viewport: viewport, camera: camera }));
72
73
  }
73
74
  };
74
- const LineOverlayView = ({ overlay: { start, end }, camera, viewport }) => {
75
- const m = camera.projectionViewMatrix;
76
- const sw = viewport.transformWorldToViewport(start, m);
77
- const ew = viewport.transformWorldToViewport(end, m);
78
- return (index.h("vertex-viewer-measurement-line", { class: "measurement-line", start: sw, end: ew }));
75
+ const LineOverlayView = ({ overlay, camera, viewport }) => {
76
+ const { start, end } = utils.translateWorldLineToViewport(overlay, {
77
+ camera,
78
+ viewport,
79
+ });
80
+ return (index.h("vertex-viewer-measurement-line", { class: "measurement-line", start: start, end: end }));
79
81
  };
80
82
  const DistanceVectorOverlayView = ({ overlay: { x, y, z }, camera, viewport }) => {
81
- const m = camera.projectionViewMatrix;
82
- const xs = viewport.transformWorldToViewport(x.start, m);
83
- const xe = viewport.transformWorldToViewport(x.end, m);
84
- const ys = viewport.transformWorldToViewport(y.start, m);
85
- const ye = viewport.transformWorldToViewport(y.end, m);
86
- const zs = viewport.transformWorldToViewport(z.start, m);
87
- const ze = viewport.transformWorldToViewport(z.end, m);
83
+ const params = { camera, viewport };
84
+ const { start: xs, end: xe } = utils.translateWorldLineToViewport(x, params);
85
+ const { start: ys, end: ye } = utils.translateWorldLineToViewport(y, params);
86
+ const { start: zs, end: ze } = utils.translateWorldLineToViewport(z, params);
88
87
  return (index.h(index.Fragment, null,
89
88
  index.h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-x", start: xs, end: xe }),
90
89
  index.h("vertex-viewer-measurement-line", { class: "measurement-line distance-vector-y", start: ys, end: ye }),
@@ -6,11 +6,11 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
- const mapper = require('./mapper-f6e6cafe.js');
9
+ const mapper = require('./mapper-4817021f.js');
10
10
  const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
11
- const config = require('./config-90ee43d5.js');
12
- const entities = require('./entities-aa59890e.js');
13
- const streamAttributes = require('./streamAttributes-d6236448.js');
11
+ const config = require('./config-5861ff09.js');
12
+ const entities = require('./entities-f788438b.js');
13
+ const streamAttributes = require('./streamAttributes-7d28ea13.js');
14
14
  const model = require('./model-4ec0c36e.js');
15
15
  const overlays = require('./overlays-40c6cbc7.js');
16
16
  const bundle_esm = require('./bundle.esm-dc0a8361.js');
@@ -257,7 +257,10 @@ let ViewerMeasurementPrecise = class {
257
257
  * An internal property that can be used to opt-in to performing measurements
258
258
  * on other types of entities.
259
259
  */
260
- this.measurableEntityTypes = [streamAttributes.EntityType.PRECISE_SURFACE];
260
+ this.measurableEntityTypes = [
261
+ streamAttributes.EntityType.PRECISE_SURFACE,
262
+ streamAttributes.EntityType.IMPRECISE_SURFACE,
263
+ ];
261
264
  /**
262
265
  * The environment that will be used to request measurement results.
263
266
  */