@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
@@ -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;
@@ -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
 
@@ -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;
@@ -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
- 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
13
  require('./mapper-f6e6cafe.js');
@@ -18,6 +18,7 @@ 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
 
@@ -435,7 +436,7 @@ let ViewerMeasurementDistance = class {
435
436
  * The distance, in pixels, between the mouse and nearest snappable edge. A
436
437
  * value of 0 disables snapping.
437
438
  */
438
- this.snapDistance = utils.MEASUREMENT_SNAP_DISTANCE;
439
+ this.snapDistance = constants.MEASUREMENT_SNAP_DISTANCE;
439
440
  /**
440
441
  * The unit of measurement.
441
442
  */
@@ -451,7 +452,7 @@ let ViewerMeasurementDistance = class {
451
452
  /**
452
453
  * The length of the caps at each end of the distance measurement.
453
454
  */
454
- this.lineCapLength = utils.MEASUREMENT_LINE_CAP_LENGTH;
455
+ this.lineCapLength = constants.MEASUREMENT_LINE_CAP_LENGTH;
455
456
  /**
456
457
  * A mode that specifies how the measurement component should behave. When
457
458
  * unset, the component will not respond to interactions with the handles.
@@ -739,7 +740,7 @@ let ViewerMeasurementDistance = class {
739
740
  computeEditOrViewElementPositions() {
740
741
  const measurement = this.model.getMeasurement();
741
742
  if (this.internalCamera != null && measurement != null) {
742
- return this.computeLineElementPositions(this.internalCamera.projectionViewMatrix, bundle_esm.line3.create(measurement));
743
+ return this.computeLineElementPositions(bundle_esm.line3.create(measurement));
743
744
  }
744
745
  else {
745
746
  return {};
@@ -749,11 +750,11 @@ let ViewerMeasurementDistance = class {
749
750
  if (this.internalCamera != null) {
750
751
  const measurement = this.model.getMeasurement();
751
752
  const line = measurement != null
752
- ? this.computeLineElementPositions(this.internalCamera.projectionViewMatrix, bundle_esm.line3.create(measurement))
753
+ ? this.computeLineElementPositions(bundle_esm.line3.create(measurement))
753
754
  : {};
754
755
  const indicator = this.indicatorPt != null
755
756
  ? {
756
- indicatorPt: utils.translateWorldPtToViewport(this.indicatorPt, this.internalCamera.projectionViewMatrix, this.viewport),
757
+ indicatorPt: this.viewport.transformWorldToViewport(this.indicatorPt, this.internalCamera.projectionViewMatrix),
757
758
  }
758
759
  : {};
759
760
  return Object.assign(Object.assign({}, line), indicator);
@@ -762,10 +763,9 @@ let ViewerMeasurementDistance = class {
762
763
  return {};
763
764
  }
764
765
  }
765
- computeLineElementPositions(matrix, line) {
766
+ computeLineElementPositions(line) {
766
767
  if (this.internalCamera != null) {
767
768
  return utils.getViewingElementPositions(line, this.interactingAnchor, {
768
- projectionViewMatrix: matrix,
769
769
  viewport: this.viewport,
770
770
  camera: this.internalCamera,
771
771
  });
@@ -11,6 +11,7 @@ require('./mapper-f6e6cafe.js');
11
11
  require('./grpc-web-client.umd-60a79aae.js');
12
12
  require('./streamAttributes-d6236448.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 }),
@@ -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
  */
@@ -6,10 +6,11 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
- const utils = require('./utils-235cd490.js');
9
+ const constants = require('./constants-be2deb55.js');
10
10
  const templates = require('./templates-e57b3741.js');
11
11
  require('./streamAttributes-d6236448.js');
12
12
  const measurement = require('./measurement-aba1e0e8.js');
13
+ const utils = require('./utils-545b1865.js');
13
14
  require('./bundle.esm-dc0a8361.js');
14
15
  require('./browser.esm-31b03292.js');
15
16
  require('./_commonjsHelpers-537d719a.js');
@@ -51,7 +52,7 @@ let ViewerMeasurementTool = class {
51
52
  * The distance, in pixels, between the mouse and nearest snappable edge. A
52
53
  * value of 0 disables snapping.
53
54
  */
54
- this.snapDistance = utils.MEASUREMENT_SNAP_DISTANCE;
55
+ this.snapDistance = constants.MEASUREMENT_SNAP_DISTANCE;
55
56
  /**
56
57
  * Captures internal state that you want to preserve across dev refreshes, but
57
58
  * don't want to trigger a render when the state changes.
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
8
  const index = require('./index-e100709a.js');
9
- const utils = require('./utils-235cd490.js');
9
+ const constants = require('./constants-be2deb55.js');
10
10
  require('./mapper-f6e6cafe.js');
11
11
  require('./grpc-web-client.umd-60a79aae.js');
12
12
  require('./streamAttributes-d6236448.js');
@@ -14,9 +14,10 @@ const model = require('./model-4ec0c36e.js');
14
14
  const results = require('./results-bc325974.js');
15
15
  const templates = require('./templates-e57b3741.js');
16
16
  const measurement = require('./measurement-aba1e0e8.js');
17
- require('./bundle.esm-dc0a8361.js');
17
+ const utils = require('./utils-545b1865.js');
18
18
  require('./_commonjsHelpers-537d719a.js');
19
19
  require('./browser.esm-31b03292.js');
20
+ require('./bundle.esm-dc0a8361.js');
20
21
 
21
22
  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}";
22
23
 
@@ -46,7 +47,7 @@ let ViewerMeasurements = class {
46
47
  * The distance, in pixels, between the mouse and nearest snappable edge. A
47
48
  * value of 0 disables snapping.
48
49
  */
49
- this.snapDistance = utils.MEASUREMENT_SNAP_DISTANCE;
50
+ this.snapDistance = constants.MEASUREMENT_SNAP_DISTANCE;
50
51
  /**
51
52
  * Enables the display of axis reference lines between the start and end
52
53
  * point of selected measurements.
@@ -2270,6 +2270,11 @@ let Viewer = class {
2270
2270
  * The default hex color or material to use when selecting items.
2271
2271
  */
2272
2272
  this.selectionMaterial = scene.defaultSelectionMaterial;
2273
+ /**
2274
+ * An optional value that will debounce frame updates when resizing
2275
+ * this viewer element.
2276
+ */
2277
+ this.resizeDebounce = 0;
2273
2278
  /**
2274
2279
  * @internal
2275
2280
  */
@@ -2643,9 +2648,17 @@ let Viewer = class {
2643
2648
  const dimensionsHaveChanged = entries.length >= 0 &&
2644
2649
  this.dimensions != null &&
2645
2650
  !bundle_esm.dimensions.isEqual(entries[0].contentRect, this.dimensions);
2646
- if (dimensionsHaveChanged && !this.isResizing) {
2647
- this.isResizing = true;
2648
- window.requestAnimationFrame(() => this.recalculateComponentDimensions());
2651
+ if (dimensionsHaveChanged) {
2652
+ if (this.resizeTimer != null) {
2653
+ clearTimeout(this.resizeTimer);
2654
+ this.resizeTimer = undefined;
2655
+ }
2656
+ if (!this.isResizing) {
2657
+ this.resizeTimer = setTimeout(() => {
2658
+ this.isResizing = true;
2659
+ this.recalculateComponentDimensions();
2660
+ }, this.resizeDebounce);
2661
+ }
2649
2662
  }
2650
2663
  }
2651
2664
  registerSlotChangeListeners() {
@@ -74,5 +74,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
74
74
 
75
75
  patchBrowser().then(options => {
76
76
  appGlobals.globalScripts();
77
- 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);
77
+ 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);
78
78
  });
@@ -63,6 +63,11 @@ export class Viewer {
63
63
  * The default hex color or material to use when selecting items.
64
64
  */
65
65
  this.selectionMaterial = defaultSelectionMaterial;
66
+ /**
67
+ * An optional value that will debounce frame updates when resizing
68
+ * this viewer element.
69
+ */
70
+ this.resizeDebounce = 0;
66
71
  /**
67
72
  * @internal
68
73
  */
@@ -447,9 +452,17 @@ export class Viewer {
447
452
  const dimensionsHaveChanged = entries.length >= 0 &&
448
453
  this.dimensions != null &&
449
454
  !Dimensions.isEqual(entries[0].contentRect, this.dimensions);
450
- if (dimensionsHaveChanged && !this.isResizing) {
451
- this.isResizing = true;
452
- window.requestAnimationFrame(() => this.recalculateComponentDimensions());
455
+ if (dimensionsHaveChanged) {
456
+ if (this.resizeTimer != null) {
457
+ clearTimeout(this.resizeTimer);
458
+ this.resizeTimer = undefined;
459
+ }
460
+ if (!this.isResizing) {
461
+ this.resizeTimer = setTimeout(() => {
462
+ this.isResizing = true;
463
+ this.recalculateComponentDimensions();
464
+ }, this.resizeDebounce);
465
+ }
453
466
  }
454
467
  }
455
468
  registerSlotChangeListeners() {
@@ -1017,6 +1030,24 @@ export class Viewer {
1017
1030
  "reflect": false,
1018
1031
  "defaultValue": "defaultSelectionMaterial"
1019
1032
  },
1033
+ "resizeDebounce": {
1034
+ "type": "number",
1035
+ "mutable": false,
1036
+ "complexType": {
1037
+ "original": "number",
1038
+ "resolved": "number",
1039
+ "references": {}
1040
+ },
1041
+ "required": false,
1042
+ "optional": false,
1043
+ "docs": {
1044
+ "tags": [],
1045
+ "text": "An optional value that will debounce frame updates when resizing\nthis viewer element."
1046
+ },
1047
+ "attribute": "resize-debounce",
1048
+ "reflect": false,
1049
+ "defaultValue": "0"
1050
+ },
1020
1051
  "frame": {
1021
1052
  "type": "unknown",
1022
1053
  "mutable": true,
@@ -1703,4 +1734,4 @@ function getRequiredProp(errorMsg, getter) {
1703
1734
  else
1704
1735
  throw new Error(errorMsg);
1705
1736
  }
1706
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyL3ZpZXdlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLFVBQVUsTUFBTSxZQUFZLENBQUM7QUFRcEMsT0FBTyxFQUFVLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2Qix5QkFBeUIsR0FDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdkcsT0FBTyxFQUFF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Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBQ0Y7QUFFRCxTQUFTLGVBQWUsQ0FBSSxRQUFnQixFQUFFLE1BQTJCO0VBQ3ZFLE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO0VBQ3ZCLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtJQUNqQixPQUFPLEtBQUssQ0FBQztHQUNkOztJQUFNLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDbkMsQ0FBQyJ9
1737
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld2VyL3ZpZXdlci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxPQUFPLEVBQ1AsS0FBSyxFQUVMLENBQUMsRUFDRCxJQUFJLEVBQ0osTUFBTSxFQUNOLE1BQU0sRUFDTixJQUFJLEVBQ0osS0FBSyxFQUNMLEtBQUssR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RSxPQUFPLEVBQXFCLGVBQWUsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLFVBQVUsTUFBTSxZQUFZLENBQUM7QUFRcEMsT0FBTyxFQUFVLFdBQVcsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3ZELE9BQU8sRUFBVSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFDLE9BQU8sRUFDTCw0QkFBNEIsRUFDNUIsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUN2Qix5QkFBeUIsR0FDMUIsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUN6RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFHdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDekYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDdkcsT0FBTyxFQUFF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O1FBQzlCLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxTQUFTLEVBQUU7VUFDeEMsQ0FBQyxXQUFXLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUM3QixDQUFDLENBQUM7T0FDSjtLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0VBQ3ZCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQUNGO0FBRUQsU0FBUyxlQUFlLENBQUksUUFBZ0IsRUFBRSxNQUEyQjtFQUN2RSxNQUFNLEtBQUssR0FBRyxNQUFNLEVBQUUsQ0FBQztFQUN2QixJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUU7SUFDakIsT0FBTyxLQUFLLENBQUM7R0FDZDs7SUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBQ25DLENBQUMifQ==