@vertexvis/viewer 1.0.2-canary.7 → 1.0.2-testing.0

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 (145) hide show
  1. package/dist/cjs/{config-BsqvZSt9.js → config-20ozv4y8.js} +3 -3
  2. package/dist/cjs/{config-BsqvZSt9.js.map → config-20ozv4y8.js.map} +1 -1
  3. package/dist/cjs/{entities-ByDO45G0.js → entities-D6kgGria.js} +4 -4
  4. package/dist/cjs/{entities-ByDO45G0.js.map → entities-D6kgGria.js.map} +1 -1
  5. package/dist/cjs/{geometry_pb-CuOYGIHT.js → geometry_pb-BTko2Wi0.js} +3 -3
  6. package/dist/cjs/{geometry_pb-CuOYGIHT.js.map → geometry_pb-BTko2Wi0.js.map} +1 -1
  7. package/dist/cjs/index.cjs.js +5 -5
  8. package/dist/cjs/{png-decoder-3NSToOjc.js → png-decoder-CJbE7UJh.js} +112 -112
  9. package/dist/cjs/png-decoder-CJbE7UJh.js.map +1 -0
  10. package/dist/cjs/{queries-CwDJxlsL.js → queries-Da9I-xMf.js} +4 -4
  11. package/dist/cjs/{queries-CwDJxlsL.js.map → queries-Da9I-xMf.js.map} +1 -1
  12. package/dist/cjs/{regl-component-DTvmpYVa.js → regl-component-HhKCyGQ3.js} +3 -3
  13. package/dist/cjs/{regl-component-DTvmpYVa.js.map → regl-component-HhKCyGQ3.js.map} +1 -1
  14. package/dist/cjs/{representation_pb-BU8a5Ico.js → representation_pb-CrCGjlyP.js} +3 -3
  15. package/dist/cjs/{representation_pb-BU8a5Ico.js.map → representation_pb-CrCGjlyP.js.map} +1 -1
  16. package/dist/cjs/{streamAttributes-BVp1vEp3.js → streamAttributes-D_J-W8-2.js} +3 -3
  17. package/dist/cjs/{streamAttributes-BVp1vEp3.js.map → streamAttributes-D_J-W8-2.js.map} +1 -1
  18. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  19. package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
  20. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  21. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +2 -2
  22. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +2 -2
  23. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
  24. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
  25. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
  26. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +3 -3
  27. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +2 -2
  28. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  29. package/dist/cjs/vertex-viewer.cjs.entry.js +4 -4
  30. package/dist/components/index.js +1 -1
  31. package/dist/components/{p-BfAW7IWG.js → p-B9R0QWr4.js} +2 -2
  32. package/dist/components/{p-CmtoXwYo.js → p-BCOD9yfw.js} +2 -2
  33. package/dist/components/{p-ux26QLbe.js → p-BOJJZ1cN.js} +2 -2
  34. package/dist/components/{p-C7GhKZ4q.js → p-CAugdB_8.js} +2 -2
  35. package/dist/components/{p-C9y2eVBq.js → p-CZCXdo3t.js} +2 -2
  36. package/dist/components/p-CycTYKAk.js +5 -0
  37. package/dist/components/{p-BnIeyVZl.js.map → p-CycTYKAk.js.map} +1 -1
  38. package/dist/components/{p-DTDKqbV2.js → p-D12q-fpW.js} +2 -2
  39. package/dist/components/{p-kVbpvDF1.js → p-DF4kEsJU.js} +2 -2
  40. package/dist/components/{p-D9oqIZ3P.js → p-DRnMrHWY.js} +2 -2
  41. package/dist/components/{p-B6mpmA2-.js → p-abSJ29r7.js} +2 -2
  42. package/dist/components/{p-CCPuHP2m.js → p-ahjMltGJ.js} +2 -2
  43. package/dist/components/vertex-scene-tree-table-cell.js +1 -1
  44. package/dist/components/vertex-scene-tree.js +1 -1
  45. package/dist/components/vertex-viewer-dom-renderer.js +1 -1
  46. package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
  47. package/dist/components/vertex-viewer-measurement-details.js +1 -1
  48. package/dist/components/vertex-viewer-measurement-distance.js +1 -1
  49. package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
  50. package/dist/components/vertex-viewer-measurement-precise.js +1 -1
  51. package/dist/components/vertex-viewer-pin-group.js +1 -1
  52. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  53. package/dist/components/vertex-viewer-transform-widget.js +1 -1
  54. package/dist/components/vertex-viewer-view-cube.js +1 -1
  55. package/dist/components/vertex-viewer.js +1 -1
  56. package/dist/esm/{config-SMudJna8.js → config-lglER3mU.js} +3 -3
  57. package/dist/esm/{config-SMudJna8.js.map → config-lglER3mU.js.map} +1 -1
  58. package/dist/esm/{entities-uAlr5vlE.js → entities-zRken6VS.js} +4 -4
  59. package/dist/esm/{entities-uAlr5vlE.js.map → entities-zRken6VS.js.map} +1 -1
  60. package/dist/esm/{geometry_pb-CMlgBITt.js → geometry_pb-BiZRfctN.js} +3 -3
  61. package/dist/esm/{geometry_pb-CMlgBITt.js.map → geometry_pb-BiZRfctN.js.map} +1 -1
  62. package/dist/esm/index.js +5 -5
  63. package/dist/esm/index.mjs +5 -5
  64. package/dist/esm/{png-decoder-Bjioht9N.js → png-decoder-CiunTuhu.js} +112 -112
  65. package/dist/esm/png-decoder-CiunTuhu.js.map +1 -0
  66. package/dist/esm/{queries-CgeSF7hf.js → queries-DEzCmbTD.js} +4 -4
  67. package/dist/esm/{queries-CgeSF7hf.js.map → queries-DEzCmbTD.js.map} +1 -1
  68. package/dist/esm/{regl-component-WqWCp9d-.js → regl-component-DmkowWhg.js} +3 -3
  69. package/dist/esm/{regl-component-WqWCp9d-.js.map → regl-component-DmkowWhg.js.map} +1 -1
  70. package/dist/esm/{representation_pb-BXvH1L33.js → representation_pb-g4f0WC4k.js} +3 -3
  71. package/dist/esm/{representation_pb-BXvH1L33.js.map → representation_pb-g4f0WC4k.js.map} +1 -1
  72. package/dist/esm/{streamAttributes-6asiWDkT.js → streamAttributes-Cp8PEH9A.js} +3 -3
  73. package/dist/esm/{streamAttributes-6asiWDkT.js.map → streamAttributes-Cp8PEH9A.js.map} +1 -1
  74. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  75. package/dist/esm/vertex-scene-tree.entry.js +2 -2
  76. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  77. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +2 -2
  78. package/dist/esm/vertex-viewer-measurement-details.entry.js +2 -2
  79. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  80. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  81. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
  82. package/dist/esm/vertex-viewer-pin-group.entry.js +3 -3
  83. package/dist/esm/vertex-viewer-transform-widget.entry.js +2 -2
  84. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  85. package/dist/esm/vertex-viewer.entry.js +4 -4
  86. package/dist/viewer/index.esm.js +1 -1
  87. package/dist/viewer/p-051b5154.entry.js +5 -0
  88. package/dist/viewer/{p-a5ed36cd.entry.js.map → p-051b5154.entry.js.map} +1 -1
  89. package/dist/viewer/{p-4dbad46f.entry.js → p-11cf755a.entry.js} +2 -2
  90. package/dist/viewer/{p-833d698b.entry.js → p-16775f7d.entry.js} +2 -2
  91. package/dist/viewer/{p-a866cbdb.entry.js → p-1eb636f8.entry.js} +2 -2
  92. package/dist/viewer/{p-bb18c218.entry.js → p-33f44cc1.entry.js} +2 -2
  93. package/dist/viewer/{p-9556c963.entry.js → p-35601c85.entry.js} +2 -2
  94. package/dist/viewer/{p-40dba623.entry.js → p-8c369777.entry.js} +2 -2
  95. package/dist/viewer/{p-Dx_kRMQd.js → p-BDvACHun.js} +2 -2
  96. package/dist/viewer/{p-Dx_kRMQd.js.map → p-BDvACHun.js.map} +1 -1
  97. package/dist/viewer/p-CZXGNc0T.js +5 -0
  98. package/dist/viewer/p-CZXGNc0T.js.map +1 -0
  99. package/dist/viewer/{p-B7IxKAst.js → p-ChqXy0cG.js} +2 -2
  100. package/dist/viewer/{p-B7IxKAst.js.map → p-ChqXy0cG.js.map} +1 -1
  101. package/dist/viewer/{p-BYm9621A.js → p-CyGlYje2.js} +2 -2
  102. package/dist/viewer/{p-BYm9621A.js.map → p-CyGlYje2.js.map} +1 -1
  103. package/dist/viewer/{p-DNam7E02.js → p-D6eJC1q4.js} +2 -2
  104. package/dist/viewer/{p-DNam7E02.js.map → p-D6eJC1q4.js.map} +1 -1
  105. package/dist/viewer/{p-BJm7oO2_.js → p-Dp56p_jX.js} +2 -2
  106. package/dist/viewer/{p-BJm7oO2_.js.map → p-Dp56p_jX.js.map} +1 -1
  107. package/dist/viewer/{p-Chfn1uMz.js → p-F8e15or2.js} +2 -2
  108. package/dist/viewer/{p-Chfn1uMz.js.map → p-F8e15or2.js.map} +1 -1
  109. package/dist/viewer/{p-CvVOQvMo.js → p-WPRMWirY.js} +2 -2
  110. package/dist/viewer/{p-CvVOQvMo.js.map → p-WPRMWirY.js.map} +1 -1
  111. package/dist/viewer/{p-04ebf937.entry.js → p-a8a81cba.entry.js} +2 -2
  112. package/dist/viewer/{p-4d5c68b4.entry.js → p-c7e62d66.entry.js} +2 -2
  113. package/dist/viewer/{p-578409b2.entry.js → p-e9b83dae.entry.js} +2 -2
  114. package/dist/viewer/{p-69aeb12a.entry.js → p-f271dc4a.entry.js} +2 -2
  115. package/dist/viewer/{p-9161d8c7.entry.js → p-f65c0769.entry.js} +2 -2
  116. package/dist/viewer/viewer.esm.js +1 -1
  117. package/package.json +10 -10
  118. package/dist/cjs/png-decoder-3NSToOjc.js.map +0 -1
  119. package/dist/components/p-BnIeyVZl.js +0 -5
  120. package/dist/esm/png-decoder-Bjioht9N.js.map +0 -1
  121. package/dist/types/web-workers.d.ts +0 -1
  122. package/dist/viewer/p-CmW2ZNHt.js +0 -5
  123. package/dist/viewer/p-CmW2ZNHt.js.map +0 -1
  124. package/dist/viewer/p-a5ed36cd.entry.js +0 -5
  125. /package/dist/components/{p-BfAW7IWG.js.map → p-B9R0QWr4.js.map} +0 -0
  126. /package/dist/components/{p-CmtoXwYo.js.map → p-BCOD9yfw.js.map} +0 -0
  127. /package/dist/components/{p-ux26QLbe.js.map → p-BOJJZ1cN.js.map} +0 -0
  128. /package/dist/components/{p-C7GhKZ4q.js.map → p-CAugdB_8.js.map} +0 -0
  129. /package/dist/components/{p-C9y2eVBq.js.map → p-CZCXdo3t.js.map} +0 -0
  130. /package/dist/components/{p-DTDKqbV2.js.map → p-D12q-fpW.js.map} +0 -0
  131. /package/dist/components/{p-kVbpvDF1.js.map → p-DF4kEsJU.js.map} +0 -0
  132. /package/dist/components/{p-D9oqIZ3P.js.map → p-DRnMrHWY.js.map} +0 -0
  133. /package/dist/components/{p-B6mpmA2-.js.map → p-abSJ29r7.js.map} +0 -0
  134. /package/dist/components/{p-CCPuHP2m.js.map → p-ahjMltGJ.js.map} +0 -0
  135. /package/dist/viewer/{p-4dbad46f.entry.js.map → p-11cf755a.entry.js.map} +0 -0
  136. /package/dist/viewer/{p-833d698b.entry.js.map → p-16775f7d.entry.js.map} +0 -0
  137. /package/dist/viewer/{p-a866cbdb.entry.js.map → p-1eb636f8.entry.js.map} +0 -0
  138. /package/dist/viewer/{p-bb18c218.entry.js.map → p-33f44cc1.entry.js.map} +0 -0
  139. /package/dist/viewer/{p-9556c963.entry.js.map → p-35601c85.entry.js.map} +0 -0
  140. /package/dist/viewer/{p-40dba623.entry.js.map → p-8c369777.entry.js.map} +0 -0
  141. /package/dist/viewer/{p-04ebf937.entry.js.map → p-a8a81cba.entry.js.map} +0 -0
  142. /package/dist/viewer/{p-4d5c68b4.entry.js.map → p-c7e62d66.entry.js.map} +0 -0
  143. /package/dist/viewer/{p-578409b2.entry.js.map → p-e9b83dae.entry.js.map} +0 -0
  144. /package/dist/viewer/{p-69aeb12a.entry.js.map → p-f271dc4a.entry.js.map} +0 -0
  145. /package/dist/viewer/{p-9161d8c7.entry.js.map → p-f65c0769.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{o as e}from"./p-CHdoymO5.js";import{d as t}from"./p-CPk-nchx.js";import"./p-BfAW7IWG.js";const s=500;const r={durationMs:s};const n={throttleFrameDelivery:true,adaptiveRendering:true,logWsMessages:false,logFrameRate:false,letterboxFrames:false,grpcUseStreamingWebSocketTransport:true};const o={finePointerThreshold:1,coarsePointerThreshold:3,interactionDelay:75,useMinimumPerspectiveZoomDistance:true,mouseWheelInteractionEndDebounce:400,reverseMouseWheelDirection:false};const i={network:{apiHost:"https://platform.platprod.vertexvis.io",renderingHost:"wss://stream.platprod.vertexvis.io",sceneTreeHost:"https://scene-trees.platprod.vertexvis.io",sceneViewHost:"https://scenes.platprod.vertexvis.io"},flags:n,events:t,animation:r,interactions:o,EXPERIMENTAL_frameDelivery:{},EXPERIMENTAL_adaptiveRendering:{},EXPERIMENTAL_qualityOfService:{},EXPERIMENTAL_annotationPollingIntervalInMs:undefined};const a={...i,network:{apiHost:"https://platform.platdev.vertexvis.io",renderingHost:"wss://stream.platdev.vertexvis.io",sceneTreeHost:"https://scene-trees.platdev.vertexvis.io",sceneViewHost:"https://scenes.platdev.vertexvis.io"}};const p={...i,network:{apiHost:"https://platform.platstaging.vertexvis.io",renderingHost:"wss://stream.platstaging.vertexvis.io",sceneTreeHost:"https://scene-trees.platstaging.vertexvis.io",sceneViewHost:"https://scenes.platstaging.vertexvis.io"}};function c(e){switch(e){case"platdev":return a;case"platstaging":return p;default:return i}}function l(e="platprod",t){const s=v(e,t);return u(d(s))}function v(t="platprod",s){if(typeof s==="string"){s=JSON.parse(s)}const r=c(t);if(s==null){return r}else{return e.defaults({...s},r)}}function d(e){const t=e.network.apiHost.trim();const s=e.network.renderingHost.trim();const r=e.network.sceneTreeHost.trim();const n=e.network.sceneViewHost.trim();return{...e,network:{...e.network,apiHost:t,renderingHost:s,sceneTreeHost:r,sceneViewHost:n}}}function u(e){f(e.network,"apiHost","https://");f(e.network,"renderingHost","wss://");f(e.network,"sceneTreeHost","https://");f(e.network,"sceneViewHost","https://");return e}function f(e,t,s){if(!e[t].startsWith(s)){throw new Error(`Invalid ${t} "${e[t]}" specified. The URL must start with the ${s} scheme.`)}}export{l as p};
5
- //# sourceMappingURL=p-CCPuHP2m.js.map
4
+ import{o as e}from"./p-CHdoymO5.js";import{d as t}from"./p-CPk-nchx.js";import"./p-B9R0QWr4.js";const s=500;const r={durationMs:s};const n={throttleFrameDelivery:true,adaptiveRendering:true,logWsMessages:false,logFrameRate:false,letterboxFrames:false,grpcUseStreamingWebSocketTransport:true};const o={finePointerThreshold:1,coarsePointerThreshold:3,interactionDelay:75,useMinimumPerspectiveZoomDistance:true,mouseWheelInteractionEndDebounce:400,reverseMouseWheelDirection:false};const i={network:{apiHost:"https://platform.platprod.vertexvis.io",renderingHost:"wss://stream.platprod.vertexvis.io",sceneTreeHost:"https://scene-trees.platprod.vertexvis.io",sceneViewHost:"https://scenes.platprod.vertexvis.io"},flags:n,events:t,animation:r,interactions:o,EXPERIMENTAL_frameDelivery:{},EXPERIMENTAL_adaptiveRendering:{},EXPERIMENTAL_qualityOfService:{},EXPERIMENTAL_annotationPollingIntervalInMs:undefined};const a={...i,network:{apiHost:"https://platform.platdev.vertexvis.io",renderingHost:"wss://stream.platdev.vertexvis.io",sceneTreeHost:"https://scene-trees.platdev.vertexvis.io",sceneViewHost:"https://scenes.platdev.vertexvis.io"}};const p={...i,network:{apiHost:"https://platform.platstaging.vertexvis.io",renderingHost:"wss://stream.platstaging.vertexvis.io",sceneTreeHost:"https://scene-trees.platstaging.vertexvis.io",sceneViewHost:"https://scenes.platstaging.vertexvis.io"}};function c(e){switch(e){case"platdev":return a;case"platstaging":return p;default:return i}}function l(e="platprod",t){const s=v(e,t);return u(d(s))}function v(t="platprod",s){if(typeof s==="string"){s=JSON.parse(s)}const r=c(t);if(s==null){return r}else{return e.defaults({...s},r)}}function d(e){const t=e.network.apiHost.trim();const s=e.network.renderingHost.trim();const r=e.network.sceneTreeHost.trim();const n=e.network.sceneViewHost.trim();return{...e,network:{...e.network,apiHost:t,renderingHost:s,sceneTreeHost:r,sceneViewHost:n}}}function u(e){f(e.network,"apiHost","https://");f(e.network,"renderingHost","wss://");f(e.network,"sceneTreeHost","https://");f(e.network,"sceneViewHost","https://");return e}function f(e,t,s){if(!e[t].startsWith(s)){throw new Error(`Invalid ${t} "${e[t]}" specified. The URL must start with the ${s} scheme.`)}}export{l as p};
5
+ //# sourceMappingURL=p-ahjMltGJ.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{t as e,p as i,H as t,d as s,h as n,e as o}from"./p-Bb32XUUS.js";import{d as l}from"./p-CPk-nchx.js";import"./p-BfAW7IWG.js";import{b as d}from"./p-DC86ZXai.js";import{d as r}from"./p-Bkm6H5uq.js";const a=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{display:flex;align-items:center;box-sizing:border-box;--scene-tree-cell-background-hover:var(--blue-200);--scene-tree-cell-background-selected:var(--blue-300);--scene-tree-cell-text-positioning:left;--scene-tree-cell-padding:0.25rem 0;font-size:var(--scene-tree-default-font-size, unset);font-family:var(--scene-tree-default-font-family, unset);color:var(--scene-tree-default-font-color, #444444)}:host([is-hovered]){background:var(--scene-tree-cell-background-hover)}:host([is-selected]){background:var(--scene-tree-cell-background-selected)}.wrapper{display:flex;align-items:center;box-sizing:border-box;width:100%;height:100%;padding:var(--scene-tree-cell-padding)}.content{width:100%;text-align:var(--scene-tree-cell-text-positioning);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.column-spacer{width:var(--scene-tree-table-column-gap)}.expand-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host([is-leaf]) .expand-btn,:host([is-end-item]) .expand-btn{visibility:hidden;cursor:default}.no-shrink{flex-shrink:0}.end-item-btn{cursor:default;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host(:not([is-end-item])) .end-item-btn{visibility:hidden;cursor:default}.end-item-icon{width:14px;height:14px;fill:var(--scene-tree-secondary-font-color, var(--neutral-600))}.visibility-btn,.isolate-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.icon{width:14px;height:14px;fill:var(--scene-tree-default-font-color, currentColor)}`;const h=i(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.expandToggled=s(this,"expandToggled");this.visibilityToggled=s(this,"visibilityToggled");this.selectionToggled=s(this,"selectionToggled");this.isolatePressed=s(this,"isolatePressed");this.cellLoaded=s(this,"cellLoaded");this.placeholder="--";this.alwaysShowIcons=false;this.hovered=false;this.displayValue=()=>{const e=this.value==null||this.value.trim()===""?this.placeholder:this.value;return e};this.handleCellPointerEnter=()=>{var e,i,t;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)};this.handleCellPointerLeave=()=>{var e;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered(undefined)};this.handleCellPointerUp=e=>{if(!this.isScrolling&&this.node!=null&&this.tree!=null&&this.longPressTimer!=null){if(this.selectionHandler!=null){this.selectionHandler(e,this.node,this.tree)}else{this.performDefaultSelectionOperation(e)}this.selectionToggled.emit({node:this.node,originalEvent:e})}this.clearLongPressTimer()};this.handleCellPointerDown=e=>{this.restartLongPressTimer()};this.createActionPointerUpHandler=e=>i=>{i.preventDefault();i.stopPropagation();d(this.hostEl);e(i)};this.toggleExpansion=async e=>{if(this.tree!=null&&this.node!=null){if(this.expansionHandler!=null){this.expansionHandler(e,this.node,this.tree)}else{await this.performDefaultExpansionOperation(this.node,this.tree)}this.expandToggled.emit({node:this.node,originalEvent:e})}};this.toggleVisibility=async e=>{if(this.tree!=null&&this.node!=null){if(this.visibilityHandler!=null){this.visibilityHandler(e,this.node,this.tree)}else{await this.performDefaultVisibilityOperation(this.node,this.tree)}this.visibilityToggled.emit({node:this.node,originalEvent:e})}};this.isolate=async e=>{if(this.tree!=null&&this.node!=null){if(this.isolateHandler!=null){this.isolateHandler(e,this.node,this.tree)}else{await this.performDefaultIsolateOperation(this.node,this.tree)}this.isolatePressed.emit({node:this.node,originalEvent:e})}};this.performDefaultSelectionOperation=e=>{var i,t,s,n,o,l;if(!e.defaultPrevented&&e.button===0){if((e.ctrlKey||e.metaKey)&&((i=this.node)===null||i===void 0?void 0:i.selected)){(t=this.tree)===null||t===void 0?void 0:t.deselectItem(this.node)}else if((s=this.node)===null||s===void 0?void 0:s.selected){(n=this.tree)===null||n===void 0?void 0:n.selectItem(this.node,{recurseParent:true})}else if(!((o=this.node)===null||o===void 0?void 0:o.selected)){(l=this.tree)===null||l===void 0?void 0:l.selectItem(this.node,{append:e.ctrlKey||e.metaKey,range:e.shiftKey})}}};this.performDefaultVisibilityOperation=async(e,i)=>{await i.toggleItemVisibility(e)};this.performDefaultIsolateOperation=async(e,i)=>{await i.isolateItem(e)};this.performDefaultExpansionOperation=async(e,i)=>{await i.toggleExpandItem(e)}}componentDidLoad(){var e;this.hoverListener=(e=this.hoverController)===null||e===void 0?void 0:e.stateChanged((e=>{var i,t;this.hovered=e===((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)}));this.cellLoaded.emit();this.clearLongPressTimer()}disconnectedCallback(){var e;(e=this.hoverListener)===null||e===void 0?void 0:e.dispose();this.clearLongPressTimer()}componentWillRender(){var e,i,t,s,n,o;this.toggleAttribute("is-hovered",this.hovered);this.toggleAttribute("is-hidden",!((e=this.node)===null||e===void 0?void 0:e.visible));this.toggleAttribute("is-selected",!!((i=this.node)===null||i===void 0?void 0:i.selected));this.toggleAttribute("is-partial",!!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible));this.toggleAttribute("is-leaf",!!((s=this.node)===null||s===void 0?void 0:s.isLeaf));this.toggleAttribute("is-end-item",!!((n=this.node)===null||n===void 0?void 0:n.endItem));this.toggleAttribute("is-filter-hit",!!((o=this.node)===null||o===void 0?void 0:o.filterHit))}render(){var e,i,t,s;const l=this.node==null?{visibility:"hidden"}:undefined;const d=this.getBackgroundColorStyle();const r=this.getEndItemIcon();const a=this.getExpansionIcon();const h=this.getIsolateIcon();const c=this.getVisibilityIcon();const v=this.expandToggle&&!r;const u=r&&!v;return n(o,{key:"703090cacf3d026e220ead0a051d70b186fa056e",onPointerEnter:this.handleCellPointerEnter,onPointerLeave:this.handleCellPointerLeave,onPointerUp:this.handleCellPointerUp,onPointerDown:this.handleCellPointerDown,style:{...l,"background-color":d}},n("div",{key:"25a45f3cebed75a1d0e469cce01e1cabec5450c4",class:"wrapper"},n("div",{key:"7ba2f3c1b9a5551287f6683f87de841f0717e87b",class:"no-shrink"},n("slot",{key:"04bd203d0e034aa4fce3a0b64d24718ab0ba50af",name:"left-gutter"})),v&&n("button",{key:"9dfa16123e24eeb90e208aa0d5936b9bacd9d8f4",class:"expand-btn no-shrink","data-testid":"expand-"+((e=this.node)===null||e===void 0?void 0:e.name),onPointerUp:this.createActionPointerUpHandler(this.toggleExpansion)},a&&n("vertex-viewer-icon",{key:"dd3c2a86b90d627b3234b76075dafef393418945",class:"icon",name:a,size:"sm"})),u&&n("button",{key:"d486186bcae525c9b520cc0cd07848389f9ffd87",class:"end-item-btn no-shrink","data-testid":"end-item-"+((i=this.node)===null||i===void 0?void 0:i.name)},r&&n("vertex-viewer-icon",{key:"70449bce2c41f6d07bd316a6f607b17c2484d4a0",class:"end-item-icon",name:r,size:"sm"})),n("div",{key:"a693f0db50d607f4f8c427f86ce99a6813b2d691",class:"content"},this.value!=null&&this.value.trim()!==""?n("slot",null,this.displayValue()):n("slot",{name:"placeholder"},this.placeholder)),this.isolateButton&&n("button",{key:"6d981678a7307f45e7f4636085676bd091187de4",class:"isolate-btn no-shrink","data-testid":"isolate-btn-"+((t=this.node)===null||t===void 0?void 0:t.name),onPointerUp:this.createActionPointerUpHandler(this.isolate)},h&&n("vertex-viewer-icon",{key:"9fee42c3d4a82445781fc99c31c5980778d94440",class:"icon",name:"locate",size:"sm"})),this.visibilityToggle&&n("button",{key:"ae999f4eadf1214f9583a503ccc49cfceee60e44",class:"visibility-btn no-shrink","data-testid":"visibility-btn-"+((s=this.node)===null||s===void 0?void 0:s.name),onPointerUp:this.createActionPointerUpHandler(this.toggleVisibility)},c&&n("vertex-viewer-icon",{key:"af24355ad0af2b8cb4fe66a5d25f9bf85796e460",class:"icon",name:c,size:"sm"})),n("div",{key:"1000b80cc334bc103563af29aea0a0629d3229c3",class:"no-shrink"},n("slot",{key:"788690a3c64964d744d8effc3898fefb19d1ae5a",name:"right-gutter"})),!this.visibilityToggle&&!this.isolateButton&&n("div",{key:"6012bc2d3b2fef8533597d92233db11b6b5982a1",class:"column-spacer"})))}toggleAttribute(e,i){if(i){this.hostEl.setAttribute(e,"")}else{this.hostEl.removeAttribute(e)}}clearLongPressTimer(){if(this.longPressTimer!=null){window.clearTimeout(this.longPressTimer)}this.longPressTimer=undefined}restartLongPressTimer(){this.clearLongPressTimer();this.longPressTimer=window.setTimeout((()=>{this.clearLongPressTimer()}),l.longPressThreshold)}getBackgroundColorStyle(){var e,i;const t=this.getCssVariableWithFallbacks(`--scene-tree-row-background-color-depth-${(e=this.node)===null||e===void 0?void 0:e.depth}`,"--scene-tree-row-background-color");const s=this.getCssVariableWithFallbacks("--scene-tree-selected-row-background-color","--scene-tree-cell-background-selected");const n=this.getCssVariableWithFallbacks("--scene-tree-hovered-row-background-color","--scene-tree-cell-background-hover");if(!!((i=this.node)===null||i===void 0?void 0:i.selected)){return s}else if(this.hovered){return n}return t}getCssVariableWithFallbacks(e,...i){const t=[...i].reverse();return[...t,e].reduce(((e,i)=>`var(${i}, ${e})`),"unset")}getIsolateIcon(){if(this.hovered||this.alwaysShowIcons){return"locate"}return undefined}getExpansionIcon(){var e,i,t;if(!((e=this.node)===null||e===void 0?void 0:e.isLeaf)&&!((i=this.node)===null||i===void 0?void 0:i.endItem)){return((t=this.node)===null||t===void 0?void 0:t.expanded)?"chevron-down":"chevron-right"}return undefined}getEndItemIcon(){var e,i,t;if(this.endItemIndicator&&((e=this.node)===null||e===void 0?void 0:e.endItem)&&(!((i=this.node)===null||i===void 0?void 0:i.isLeaf)||((t=this.node)===null||t===void 0?void 0:t.filterHit))){return"lock"}return undefined}getVisibilityIcon(){var e,i,t,s,n;if((this.hovered||this.alwaysShowIcons)&&!((e=this.node)===null||e===void 0?void 0:e.partiallyVisible)&&((i=this.node)===null||i===void 0?void 0:i.visible)){return"eye-open"}else if(!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible)&&!((s=this.node)===null||s===void 0?void 0:s.visible)){return"eye-half"}else if((n=this.node)===null||n===void 0?void 0:n.partiallyVisible){return"eye-half-dotted"}return undefined}get hostEl(){return this}static get style(){return a()}},[257,"vertex-scene-tree-table-cell",{node:[16],tree:[16],value:[1],placeholder:[1],alwaysShowIcons:[4,"always-show-icons"],hovered:[1028],isScrolling:[4,"is-scrolling"],expandToggle:[4,"expand-toggle"],endItemIndicator:[4,"end-item-indicator"],visibilityToggle:[4,"visibility-toggle"],isolateButton:[4,"isolate-button"],selectionHandler:[16],visibilityHandler:[16],expansionHandler:[16],isolateHandler:[16],hoverController:[16]}]);function c(){if(typeof customElements==="undefined"){return}const i=["vertex-scene-tree-table-cell","vertex-viewer-icon"];i.forEach((i=>{switch(i){case"vertex-scene-tree-table-cell":if(!customElements.get(e(i))){customElements.define(e(i),h)}break;case"vertex-viewer-icon":if(!customElements.get(e(i))){r()}break}}))}c();const v=h;const u=c;export{v as VertexSceneTreeTableCell,u as defineCustomElement};
4
+ import{t as e,p as i,H as t,d as s,h as n,e as o}from"./p-Bb32XUUS.js";import{d as l}from"./p-CPk-nchx.js";import"./p-B9R0QWr4.js";import{b as d}from"./p-DC86ZXai.js";import{d as r}from"./p-Bkm6H5uq.js";const a=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{display:flex;align-items:center;box-sizing:border-box;--scene-tree-cell-background-hover:var(--blue-200);--scene-tree-cell-background-selected:var(--blue-300);--scene-tree-cell-text-positioning:left;--scene-tree-cell-padding:0.25rem 0;font-size:var(--scene-tree-default-font-size, unset);font-family:var(--scene-tree-default-font-family, unset);color:var(--scene-tree-default-font-color, #444444)}:host([is-hovered]){background:var(--scene-tree-cell-background-hover)}:host([is-selected]){background:var(--scene-tree-cell-background-selected)}.wrapper{display:flex;align-items:center;box-sizing:border-box;width:100%;height:100%;padding:var(--scene-tree-cell-padding)}.content{width:100%;text-align:var(--scene-tree-cell-text-positioning);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.column-spacer{width:var(--scene-tree-table-column-gap)}.expand-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host([is-leaf]) .expand-btn,:host([is-end-item]) .expand-btn{visibility:hidden;cursor:default}.no-shrink{flex-shrink:0}.end-item-btn{cursor:default;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}:host(:not([is-end-item])) .end-item-btn{visibility:hidden;cursor:default}.end-item-icon{width:14px;height:14px;fill:var(--scene-tree-secondary-font-color, var(--neutral-600))}.visibility-btn,.isolate-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;width:20px;height:20px}.icon{width:14px;height:14px;fill:var(--scene-tree-default-font-color, currentColor)}`;const h=i(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.expandToggled=s(this,"expandToggled");this.visibilityToggled=s(this,"visibilityToggled");this.selectionToggled=s(this,"selectionToggled");this.isolatePressed=s(this,"isolatePressed");this.cellLoaded=s(this,"cellLoaded");this.placeholder="--";this.alwaysShowIcons=false;this.hovered=false;this.displayValue=()=>{const e=this.value==null||this.value.trim()===""?this.placeholder:this.value;return e};this.handleCellPointerEnter=()=>{var e,i,t;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)};this.handleCellPointerLeave=()=>{var e;(e=this.hoverController)===null||e===void 0?void 0:e.setHovered(undefined)};this.handleCellPointerUp=e=>{if(!this.isScrolling&&this.node!=null&&this.tree!=null&&this.longPressTimer!=null){if(this.selectionHandler!=null){this.selectionHandler(e,this.node,this.tree)}else{this.performDefaultSelectionOperation(e)}this.selectionToggled.emit({node:this.node,originalEvent:e})}this.clearLongPressTimer()};this.handleCellPointerDown=e=>{this.restartLongPressTimer()};this.createActionPointerUpHandler=e=>i=>{i.preventDefault();i.stopPropagation();d(this.hostEl);e(i)};this.toggleExpansion=async e=>{if(this.tree!=null&&this.node!=null){if(this.expansionHandler!=null){this.expansionHandler(e,this.node,this.tree)}else{await this.performDefaultExpansionOperation(this.node,this.tree)}this.expandToggled.emit({node:this.node,originalEvent:e})}};this.toggleVisibility=async e=>{if(this.tree!=null&&this.node!=null){if(this.visibilityHandler!=null){this.visibilityHandler(e,this.node,this.tree)}else{await this.performDefaultVisibilityOperation(this.node,this.tree)}this.visibilityToggled.emit({node:this.node,originalEvent:e})}};this.isolate=async e=>{if(this.tree!=null&&this.node!=null){if(this.isolateHandler!=null){this.isolateHandler(e,this.node,this.tree)}else{await this.performDefaultIsolateOperation(this.node,this.tree)}this.isolatePressed.emit({node:this.node,originalEvent:e})}};this.performDefaultSelectionOperation=e=>{var i,t,s,n,o,l;if(!e.defaultPrevented&&e.button===0){if((e.ctrlKey||e.metaKey)&&((i=this.node)===null||i===void 0?void 0:i.selected)){(t=this.tree)===null||t===void 0?void 0:t.deselectItem(this.node)}else if((s=this.node)===null||s===void 0?void 0:s.selected){(n=this.tree)===null||n===void 0?void 0:n.selectItem(this.node,{recurseParent:true})}else if(!((o=this.node)===null||o===void 0?void 0:o.selected)){(l=this.tree)===null||l===void 0?void 0:l.selectItem(this.node,{append:e.ctrlKey||e.metaKey,range:e.shiftKey})}}};this.performDefaultVisibilityOperation=async(e,i)=>{await i.toggleItemVisibility(e)};this.performDefaultIsolateOperation=async(e,i)=>{await i.isolateItem(e)};this.performDefaultExpansionOperation=async(e,i)=>{await i.toggleExpandItem(e)}}componentDidLoad(){var e;this.hoverListener=(e=this.hoverController)===null||e===void 0?void 0:e.stateChanged((e=>{var i,t;this.hovered=e===((t=(i=this.node)===null||i===void 0?void 0:i.id)===null||t===void 0?void 0:t.hex)}));this.cellLoaded.emit();this.clearLongPressTimer()}disconnectedCallback(){var e;(e=this.hoverListener)===null||e===void 0?void 0:e.dispose();this.clearLongPressTimer()}componentWillRender(){var e,i,t,s,n,o;this.toggleAttribute("is-hovered",this.hovered);this.toggleAttribute("is-hidden",!((e=this.node)===null||e===void 0?void 0:e.visible));this.toggleAttribute("is-selected",!!((i=this.node)===null||i===void 0?void 0:i.selected));this.toggleAttribute("is-partial",!!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible));this.toggleAttribute("is-leaf",!!((s=this.node)===null||s===void 0?void 0:s.isLeaf));this.toggleAttribute("is-end-item",!!((n=this.node)===null||n===void 0?void 0:n.endItem));this.toggleAttribute("is-filter-hit",!!((o=this.node)===null||o===void 0?void 0:o.filterHit))}render(){var e,i,t,s;const l=this.node==null?{visibility:"hidden"}:undefined;const d=this.getBackgroundColorStyle();const r=this.getEndItemIcon();const a=this.getExpansionIcon();const h=this.getIsolateIcon();const c=this.getVisibilityIcon();const v=this.expandToggle&&!r;const u=r&&!v;return n(o,{key:"703090cacf3d026e220ead0a051d70b186fa056e",onPointerEnter:this.handleCellPointerEnter,onPointerLeave:this.handleCellPointerLeave,onPointerUp:this.handleCellPointerUp,onPointerDown:this.handleCellPointerDown,style:{...l,"background-color":d}},n("div",{key:"25a45f3cebed75a1d0e469cce01e1cabec5450c4",class:"wrapper"},n("div",{key:"7ba2f3c1b9a5551287f6683f87de841f0717e87b",class:"no-shrink"},n("slot",{key:"04bd203d0e034aa4fce3a0b64d24718ab0ba50af",name:"left-gutter"})),v&&n("button",{key:"9dfa16123e24eeb90e208aa0d5936b9bacd9d8f4",class:"expand-btn no-shrink","data-testid":"expand-"+((e=this.node)===null||e===void 0?void 0:e.name),onPointerUp:this.createActionPointerUpHandler(this.toggleExpansion)},a&&n("vertex-viewer-icon",{key:"dd3c2a86b90d627b3234b76075dafef393418945",class:"icon",name:a,size:"sm"})),u&&n("button",{key:"d486186bcae525c9b520cc0cd07848389f9ffd87",class:"end-item-btn no-shrink","data-testid":"end-item-"+((i=this.node)===null||i===void 0?void 0:i.name)},r&&n("vertex-viewer-icon",{key:"70449bce2c41f6d07bd316a6f607b17c2484d4a0",class:"end-item-icon",name:r,size:"sm"})),n("div",{key:"a693f0db50d607f4f8c427f86ce99a6813b2d691",class:"content"},this.value!=null&&this.value.trim()!==""?n("slot",null,this.displayValue()):n("slot",{name:"placeholder"},this.placeholder)),this.isolateButton&&n("button",{key:"6d981678a7307f45e7f4636085676bd091187de4",class:"isolate-btn no-shrink","data-testid":"isolate-btn-"+((t=this.node)===null||t===void 0?void 0:t.name),onPointerUp:this.createActionPointerUpHandler(this.isolate)},h&&n("vertex-viewer-icon",{key:"9fee42c3d4a82445781fc99c31c5980778d94440",class:"icon",name:"locate",size:"sm"})),this.visibilityToggle&&n("button",{key:"ae999f4eadf1214f9583a503ccc49cfceee60e44",class:"visibility-btn no-shrink","data-testid":"visibility-btn-"+((s=this.node)===null||s===void 0?void 0:s.name),onPointerUp:this.createActionPointerUpHandler(this.toggleVisibility)},c&&n("vertex-viewer-icon",{key:"af24355ad0af2b8cb4fe66a5d25f9bf85796e460",class:"icon",name:c,size:"sm"})),n("div",{key:"1000b80cc334bc103563af29aea0a0629d3229c3",class:"no-shrink"},n("slot",{key:"788690a3c64964d744d8effc3898fefb19d1ae5a",name:"right-gutter"})),!this.visibilityToggle&&!this.isolateButton&&n("div",{key:"6012bc2d3b2fef8533597d92233db11b6b5982a1",class:"column-spacer"})))}toggleAttribute(e,i){if(i){this.hostEl.setAttribute(e,"")}else{this.hostEl.removeAttribute(e)}}clearLongPressTimer(){if(this.longPressTimer!=null){window.clearTimeout(this.longPressTimer)}this.longPressTimer=undefined}restartLongPressTimer(){this.clearLongPressTimer();this.longPressTimer=window.setTimeout((()=>{this.clearLongPressTimer()}),l.longPressThreshold)}getBackgroundColorStyle(){var e,i;const t=this.getCssVariableWithFallbacks(`--scene-tree-row-background-color-depth-${(e=this.node)===null||e===void 0?void 0:e.depth}`,"--scene-tree-row-background-color");const s=this.getCssVariableWithFallbacks("--scene-tree-selected-row-background-color","--scene-tree-cell-background-selected");const n=this.getCssVariableWithFallbacks("--scene-tree-hovered-row-background-color","--scene-tree-cell-background-hover");if(!!((i=this.node)===null||i===void 0?void 0:i.selected)){return s}else if(this.hovered){return n}return t}getCssVariableWithFallbacks(e,...i){const t=[...i].reverse();return[...t,e].reduce(((e,i)=>`var(${i}, ${e})`),"unset")}getIsolateIcon(){if(this.hovered||this.alwaysShowIcons){return"locate"}return undefined}getExpansionIcon(){var e,i,t;if(!((e=this.node)===null||e===void 0?void 0:e.isLeaf)&&!((i=this.node)===null||i===void 0?void 0:i.endItem)){return((t=this.node)===null||t===void 0?void 0:t.expanded)?"chevron-down":"chevron-right"}return undefined}getEndItemIcon(){var e,i,t;if(this.endItemIndicator&&((e=this.node)===null||e===void 0?void 0:e.endItem)&&(!((i=this.node)===null||i===void 0?void 0:i.isLeaf)||((t=this.node)===null||t===void 0?void 0:t.filterHit))){return"lock"}return undefined}getVisibilityIcon(){var e,i,t,s,n;if((this.hovered||this.alwaysShowIcons)&&!((e=this.node)===null||e===void 0?void 0:e.partiallyVisible)&&((i=this.node)===null||i===void 0?void 0:i.visible)){return"eye-open"}else if(!((t=this.node)===null||t===void 0?void 0:t.partiallyVisible)&&!((s=this.node)===null||s===void 0?void 0:s.visible)){return"eye-half"}else if((n=this.node)===null||n===void 0?void 0:n.partiallyVisible){return"eye-half-dotted"}return undefined}get hostEl(){return this}static get style(){return a()}},[257,"vertex-scene-tree-table-cell",{node:[16],tree:[16],value:[1],placeholder:[1],alwaysShowIcons:[4,"always-show-icons"],hovered:[1028],isScrolling:[4,"is-scrolling"],expandToggle:[4,"expand-toggle"],endItemIndicator:[4,"end-item-indicator"],visibilityToggle:[4,"visibility-toggle"],isolateButton:[4,"isolate-button"],selectionHandler:[16],visibilityHandler:[16],expansionHandler:[16],isolateHandler:[16],hoverController:[16]}]);function c(){if(typeof customElements==="undefined"){return}const i=["vertex-scene-tree-table-cell","vertex-viewer-icon"];i.forEach((i=>{switch(i){case"vertex-scene-tree-table-cell":if(!customElements.get(e(i))){customElements.define(e(i),h)}break;case"vertex-viewer-icon":if(!customElements.get(e(i))){r()}break}}))}c();const v=h;const u=c;export{v as VertexSceneTreeTableCell,u as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-scene-tree-table-cell.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as e,F as t,t as i,p as s,H as n,d as o,f as a,e as r}from"./p-Bb32XUUS.js";import{s as l,w as d,S as c,a as h,b as u}from"./p-Dbz9yUqC.js";import{p as v}from"./p-CCPuHP2m.js";import{i as f}from"./p-DC86ZXai.js";import{d as p,g as m}from"./p-DUC59SSO.js";import{i as w}from"./p-CiSHWNC4.js";import{S as b}from"./p-BZwvQkyb.js";import{d as y}from"./p-BphxnS-a.js";import{d as g}from"./p-D0KZu516.js";import{d as x}from"./p-B5SQ_oXT.js";import{d as I}from"./p-Bkm6H5uq.js";import{d as C}from"./p-DxuSiXYg.js";const k=({details:i},s)=>e("div",{class:"error"},e("div",{class:"error-section error-message"},e("span",null,i.message),i.link&&e(t,null,e("span",null," See our "),e("a",{href:i.link,target:"_blank"},"documentation")," ",e("span",null," for more information."))),e("div",{class:"error-section"},s));const E=500;async function R(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.elements((e=>e.items.where((e=>e.withItemId(t))).show())).execute({suppliedCorrelationId:i})}async function S(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.elements((e=>e.items.where((e=>e.withItemId(t))).hide())).execute({suppliedCorrelationId:i})}async function M(e,t,{append:i=false,suppliedCorrelationId:s}){const n=await e.scene();return n.elements((e=>[...i?[]:[e.items.where((e=>e.all())).deselect()],e.items.where((e=>e.withItemId(t))).select()])).execute({suppliedCorrelationId:s})}async function D(e,t,i,{append:s=true,suppliedCorrelationId:n}){const o=await e.scene();return o.elements((e=>[...s?[]:[e.items.where((e=>e.all())).deselect()],e.items.where((e=>e.withSceneTreeRange({start:t,end:i}))).select()])).execute({suppliedCorrelationId:n})}async function j(e,t,i,s,n,{append:o=false,suppliedCorrelationId:a}){const r=await e.scene();return r.elements((e=>[...o?[]:[e.items.where((e=>e.all())).deselect()],e.items.where((e=>e.withMetadata(t,i,s,n))).select()])).execute({suppliedCorrelationId:a})}async function K(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.elements((e=>e.items.where((e=>e.withItemId(t))).deselect())).execute({suppliedCorrelationId:i})}async function L(e,t,{suppliedCorrelationId:i,animationDurationMs:s}={}){const n=await e.scene();await n.elements((e=>[e.items.where((e=>e.all())).hide(),e.items.where((e=>e.withItemId(t))).show()])).execute({suppliedCorrelationId:i});const o=await n.camera().flyTo((e=>e.withItemId(t))).render({animation:{milliseconds:s!==null&&s!==void 0?s:E}});await o.onAnimationCompleted.once()}const T=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}.button{padding:0.5rem;border-radius:0.25rem}.button-secondary{color:var(--neutral-800);background-color:var(--neutral-300)}.button-secondary:hover{color:var(--neutral-900)}.button-secondary:hover:enabled{box-shadow:0 2px 2px rgb(0 0 0 / 20%)}.button-secondary:disabled{opacity:0.8}.button-secondary:hover:disabled{cursor:not-allowed}:host{--scene-tree-toolbar-separator:1px solid var(--neutral-300);--scene-tree-default-font-family:unset;--scene-tree-default-font-size:unset;--scene-tree-default-font-color:unset;--scene-tree-secondary-font-color:unset;--scene-tree-selected-row-background-color:unset;--scene-tree-hovered-row-background-color:unset;--scene-tree-row-background-color:unset;--scene-tree-row-background-color-depth-n:unset;--scene-tree-overlay-z-index:3000;width:300px;height:100%;user-select:none;-webkit-user-select:none;cursor:default;display:flex;flex-direction:column;position:relative}.rows-scroll{position:relative;height:var(--scene-tree-row-height, 0);flex-grow:1}.rows{position:relative}.row{position:absolute;display:flex;align-items:center;width:100%;height:var(--scene-tree-row-height);padding:var(--scene-tree-row-padding);box-sizing:border-box}.row:hover{background-color:var(--scene-tree-row-hover-color)}.row.is-selected{background-color:var(--scene-tree-row-selected-color)}.expand-toggle{cursor:pointer;width:16px}.row-text{margin-left:0.25rem;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.visibility-btn{display:flex;align-items:center;visibility:hidden;padding:4px}.visibility-btn.is-hidden{visibility:visible}.row:hover .visibility-btn{visibility:visible}.error,.empty-results{position:absolute;top:0;left:0;display:flex;flex-direction:column;align-items:center;font-size:0.875rem;width:100%;height:100%;padding:1rem;box-sizing:border-box;justify-content:center;background-color:white;z-index:var(--scene-tree-overlay-z-index)}.error-section{margin-top:1rem}.error-message{text-align:center}.search-toolbar,slot[name='header']::slotted(*){border-bottom:var(--scene-tree-toolbar-separator)}slot[name='footer']::slotted(:not(:last-child)){border-top:var(--scene-tree-toolbar-separator)}.header{display:flex;flex-direction:column}.footer{display:flex;flex-direction:column}.loading{position:absolute;top:150px;left:50%;transform:translate(-50%, -50%);text-align:center}`;const A=25;const F=s(class t extends n{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.connectionError=o(this,"connectionError");this.firstRowRendered=o(this,"firstRowRendered");this.overScanCount=25;this.configEnv="platprod";this.searchOptions={};this.metadataSearchExactMatch=false;this.metadataSearchKeys=[];this.metadataKeys=[];this.operationAnimationDuration=500;this.rows=[];this.totalRows=0;this.showLoader=false;this.showEmptyResults=false;this.stateMap={componentLoaded:false};this.hasPartialFilterResults=false;this.refreshingResults=false;this.attemptingRetry=false;this.firstCellRendered=false}async invalidateRows(){a(this.getLayoutElement())}async scrollToIndex(e,t={}){const{animate:i,position:s="middle"}=t;const n=Math.max(0,Math.min(e,this.totalRows));const o=this.getScrollToPosition(n,s);await this.getLayoutElement().scrollToPosition(o,{behavior:i?"smooth":undefined})}async scrollToItem(e,t={}){var i;const s=this.totalRows;const n=await((i=this.controller)===null||i===void 0?void 0:i.expandParentNodes(e));if(n!=null&&s!==this.totalRows){return new Promise((e=>{const i=this.getLayoutElement();const s=async()=>{i.removeEventListener("layoutRendered",s);await this.scrollToIndex(n,t);e()};i.addEventListener("layoutRendered",s)}))}else if(n!=null){await this.scrollToIndex(n,t)}}async expandAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.expandAll())}async collapseAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.collapseAll())}async expandItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(!t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.expandNode(e))}}))}async collapseItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.collapseNode(e))}}))}async toggleExpandItem(e){await this.performRowOperation(e,(async({node:e})=>{if(e.expanded){await this.collapseItem(e)}else{await this.expandItem(e)}}))}async toggleItemVisibility(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible||i.partiallyVisible){await S(e,t)}else{await R(e,t)}}))}async hideItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible){await S(e,t)}}))}async showItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(!i.visible){await R(e,t)}}))}async selectItem(e,{recurseParent:t,...i}={}){await this.performRowOperation(e,(async({viewer:s,id:n})=>{var o,a,r,l;const d=await((o=this.controller)===null||o===void 0?void 0:o.fetchNodeAncestors(n))||[];const c=(a=this.stateMap.selectionPath)===null||a===void 0?void 0:a.includes(n);const h=this.getNodeFromRowOrIndex(e);const u=d.length>0?d[0].selected:true;const v=h.selected&&!u;if(t&&(c||v)){const e=d.find((({selected:e})=>!e));if(e!=null){await this.selectItem(e,i);this.lastSelectedItemId=n}else{await M(s,n,i);this.lastSelectedItemId=n}}else if(i.range&&this.lastSelectedItemId!=null){const e=await((r=this.controller)===null||r===void 0?void 0:r.expandParentNodes(n));const t=await((l=this.controller)===null||l===void 0?void 0:l.expandParentNodes(this.lastSelectedItemId));if(t&&e){const n=Math.min(t,e);const o=Math.max(t,e);await D(s,n,o,i)}}else{await M(s,n,i);this.lastSelectedItemId=n}this.stateMap.selectionPath=[...d.map((({id:e})=>(e===null||e===void 0?void 0:e.hex)||"")),n]}))}async deselectItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.selected){this.lastSelectedItemId=undefined;await K(e,t)}}))}async isolateItem(e){await this.performRowOperation(e,(async({viewer:e,id:t})=>{await L(e,t,{animationDurationMs:this.operationAnimationDuration})}))}async getRowAtIndex(e){return this.rows[e]}async getRowForItemId(e){var t;const i=await((t=this.controller)===null||t===void 0?void 0:t.expandParentNodes(e));if(i!=null){return this.rows[i]}else{return undefined}}async getRowForEvent(e){const{clientY:t,target:i}=e;if(i!=null&&this.errorDetails==null&&m(this.el,i)&&f(i)){return this.getRowAtClientY(t)}else{return undefined}}getRowAtClientY(e){const t=this.getLayoutElement();const i=t.layoutOffset;const s=Math.floor((e-i+t.scrollOffset)/t.rowHeight);return this.getRowAtIndex(s)}async filterItems(e,t={}){var i;const s={...t,metadataSearchKeys:t.columns};const n=this.getMetadataSearchKeys(s);return(i=this.controller)===null||i===void 0?void 0:i.filter(e,{...t,columns:n})}async selectFilteredItems(e,t){var i,s,n,o,a,r;if(this.viewer!=null){const l=(s=(i=this.searchOptions)===null||i===void 0?void 0:i.metadataSearchKeys)!==null&&s!==void 0?s:this.metadataSearchKeys;const d=l.length>0?l:this.metadataKeys;const c=d.length>0?d:["VERTEX_SCENE_ITEM_NAME"];const h=(o=(n=this.searchOptions)===null||n===void 0?void 0:n.exactMatch)!==null&&o!==void 0?o:this.metadataSearchExactMatch;const u=(r=(a=this.searchOptions)===null||a===void 0?void 0:a.removeHiddenItems)!==null&&r!==void 0?r:false;await j(this.viewer,e,c,h,u,{append:false,...t})}}async fetchMetadataKeys(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.fetchMetadataKeys())!==null&&t!==void 0?t:[]}disconnectedCallback(){var e,t,i;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();(t=this.stateMap.viewerSceneReadyDisposable)===null||t===void 0?void 0:t.dispose();(i=this.controller)===null||i===void 0?void 0:i.cancel()}connectedCallback(){this.connectToViewer()}componentWillLoad(){var e;if(this.controller==null){const{sceneTreeHost:t}=this.getConfig().network;const i=new l.SceneTreeAPIClient(t,this.getConfig().flags.grpcUseStreamingWebSocketTransport?{transport:d}:undefined);this.controller=new c(i,100);(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}this.stateMap.onStateChangeDisposable=this.controller.onStateChange.on((e=>this.handleControllerStateChange(e)));this.connectToViewer();this.updateMissingViewerError()}async componentDidLoad(){var e;this.ensureLayoutDefined();this.updateLayoutElement();const t=this.getLayoutElement();const i=new ResizeObserver((()=>{this.invalidateRows()}));i.observe(t);this.stateMap.resizeObserver=i;this.stateMap.componentLoaded=true;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}componentWillRender(){this.updateLayoutElement()}render(){return e(r,{key:"11ed5a494b6fb744acfa2f0ebe6796917e670878"},e("div",{key:"c9d51c7a521b5ca0d4948557419012924923449b",class:"header"},e("slot",{key:"964f63d25f7616cac91e46763999bbe445a925f0",name:"header"},e("vertex-scene-tree-toolbar",{key:"ddb069379b2f832016db73389f9f3f92712e5816",class:"search-toolbar"},e("vertex-scene-tree-search",{key:"e315e5bf2a1187ee00a01bdeda4bb7a1a77cc090",controller:this.controller})))),e("slot",{key:"278933238516381029dc104684d0b744a71e021f",name:"partial-filter-results-banner"},this.hasPartialFilterResults&&e("vertex-scene-tree-notification-banner",{key:"dfa351c03bd2ea94bb7ee66d71df25ec6ce29a85",message:this.refreshingResults?"Refreshing results...":"Data loading, refresh for more.",actionLabel:"Refresh",onAction:()=>{var e;return(e=this.controller)===null||e===void 0?void 0:e.refreshFilter()}})),this.errorDetails!=null&&this.renderError(this.errorDetails),this.errorDetails==null&&e("div",{key:"d0ee52c9ededab3e8c1abe7be83bac8b69729afc",class:"rows-scroll"},this.showLoader&&e("slot",{key:"479b006dd0eac8225801c6703b29fe9be6a74630",name:"loading"},e("vertex-viewer-spinner",{key:"02468107bb106a15ccb228b37c415c576ff41115",class:"loading",size:"md"})),e("slot",{key:"788c7bf755721646d517f8c2f4fed1ed7a1d0865"}),this.showEmptyResults&&e("slot",{key:"96e6b9f178329850766e8bb3c74dfd0bb63bae2b",name:"empty-results"},e("div",{key:"6c987067351a4aaf28c45580767076bbda75ee4d",class:"empty-results"},"No Results Found."))),e("div",{key:"9bb3f5960dd504940a45847ed813f8beda5e92e8",class:"footer"},e("slot",{key:"454339799adadd66ac288c1484c5ad70b864de96",name:"footer"})))}renderError(t){if(t.code!==h.SCENE_TREE_DISABLED){return e(k,{details:t},e("button",{class:"button button-secondary",onClick:()=>this.retryConnectToViewer(),disabled:this.attemptingRetry},"Retry"))}else{return e(k,{details:t})}}handleViewerChanged(e,t){if(!this.stateMap.componentLoaded){return}this.connectToViewer()}handleControllerChanged(e){var t;if(!this.stateMap.componentLoaded){return}(t=this.stateMap.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.stateMap.onStateChangeDisposable=e.onStateChange.on((e=>this.handleControllerStateChange(e)));e.setMetadataKeys(this.metadataKeys)}handleMetadataKeysChanged(){var e;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}retryConnectToViewer(){this.attemptingRetry=true;this.errorDetails=undefined;this.connectToViewer()}connectToViewer(){var e,t,i;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();(t=this.stateMap.viewerSceneReadyDisposable)===null||t===void 0?void 0:t.dispose();if(this.viewer==null&&this.viewerSelector!=null){this.viewer=document.querySelector(this.viewerSelector)}if(this.viewer!=null){this.clearMissingViewerError();const e=async()=>{const e=this.getLayoutElement();await e.attemptComputeCellHeight()};this.viewer.addEventListener("sceneReady",e);this.stateMap.viewerDisposable=(i=this.controller)===null||i===void 0?void 0:i.connectToViewer(this.viewer);this.stateMap.viewerSceneReadyDisposable={dispose:()=>{var t;return(t=this.viewer)===null||t===void 0?void 0:t.removeEventListener("sceneReady",e)}}}else{this.attemptingRetry=false;if(this.stateMap.componentLoaded){this.updateMissingViewerError()}}}updateMissingViewerError(){if(this.viewer==null){this.errorDetails=new u("MISSING_VIEWER",h.MISSING_VIEWER)}}clearMissingViewerError(){var e;if(((e=this.errorDetails)===null||e===void 0?void 0:e.code)===h.MISSING_VIEWER){this.errorDetails=undefined}}scheduleClearUnusedData(){if(this.stateMap.idleCallbackId!=null){window.cancelIdleCallback(this.stateMap.idleCallbackId)}this.stateMap.idleCallbackId=window.requestIdleCallback((e=>{var t,i,s;const n=(t=e.timeRemaining)===null||t===void 0?void 0:t.call(e);if(n==null||n>=A){const e=this.getLayoutElement();const t=e.viewportStartIndex;const n=e.viewportEndIndex;const[o,a]=((i=this.controller)===null||i===void 0?void 0:i.getPageIndexesForRange(t,n))||[];if(o!=null&&a!=null){(s=this.controller)===null||s===void 0?void 0:s.invalidatePagesOutsideRange(o,a,50)}}else{this.scheduleClearUnusedData()}}))}handleControllerStateChange(e){this.showLoader=!!e.shouldShowLoading;this.showEmptyResults=!!e.shouldShowEmptyResults;this.rows=e.rows;this.totalRows=e.totalRows;this.hasPartialFilterResults=!!e.isPartialFilterResponse;this.refreshingResults=!!e.isSearching;if(e.connection.type==="failure"){this.errorDetails=e.connection.details;this.connectionError.emit(e.connection.details)}else if(e.connection.type==="disconnected"){this.errorDetails=new u("DISCONNECTED",h.DISCONNECTED)}else{this.errorDetails=undefined}if(e.connection.type==="connected"||e.connection.type==="failure"){this.attemptingRetry=false}}getNodeFromRowOrIndex(e){const t=typeof e==="number"?this.rows[e]:e;if(t==null){throw new Error(`Cannot perform scene tree operation. Row not found.`)}return w(t)?t.node:t}async performRowOperation(e,t){const i=this.getNodeFromRowOrIndex(e);if(i.id==null){throw new Error(`Cannot perform scene tree operation. ID is undefined.`)}if(this.viewer==null){throw new Error(`Cannot perform scene tree operation. Cannot get reference to viewer.`)}await t({viewer:this.viewer,id:i.id.hex,node:i})}async handleSearch(e){var t,i,s,n;const o=this.getMetadataSearchKeys(this.searchOptions);const a=(i=(t=this.searchOptions)===null||t===void 0?void 0:t.exactMatch)!==null&&i!==void 0?i:this.metadataSearchExactMatch;const r=(n=(s=this.searchOptions)===null||s===void 0?void 0:s.removeHiddenItems)!==null&&n!==void 0?n:false;try{await this.filterItems(e.detail,{columns:o,exactMatch:a,removeHiddenItems:r})}catch(e){console.error("Failed to filter tree with exception: ",e)}}async handleCellLoaded(){if(!this.firstCellRendered&&this.rows.length>0){this.firstCellRendered=true;this.firstRowRendered.emit()}}getScrollToPosition(e,t){var i;const s=this.getLayoutElement();const n=Math.max(0,Math.min(e,this.totalRows-1));const o=(i=s.layoutHeight)!==null&&i!==void 0?i:0;const a=s.rowHeight;if(t==="start"){return n*a}else if(t==="middle"){const e=n*a+a/2;return e-o/2}else{const e=n*a+a;return e-o}}getConfig(){return v(this.configEnv,this.config)}ensureLayoutDefined(){let e=this.el.querySelector("vertex-scene-tree-table-layout");if(e==null){e=document.createElement("vertex-scene-tree-table-layout");e.innerHTML=`\n <vertex-scene-tree-table-column>\n <template>\n <vertex-scene-tree-table-cell prop:value="{{row.node.name}}" expand-toggle isolate-button visibility-toggle></vertex-scene-tree-table-cell>\n </template>\n </vertex-scene-tree-table-column>\n `;this.el.appendChild(e)}this.stateMap.layoutEl=e}updateLayoutElement(){const e=this.stateMap.layoutEl;if(e!=null){e.rows=this.rows;e.tree=this.el;e.totalRows=this.totalRows;e.controller=this.controller;e.rowData=this.rowData}else if(!this.stateMap.componentLoaded&&this.totalRows>0){console.debug("Scene tree has rows, but the component has not yet rendered")}}getLayoutElement(){if(this.stateMap.layoutEl!=null){return this.stateMap.layoutEl}else{throw new Error("Layout element is undefined")}}getMetadataSearchKeys(e){var t,i;const s=(t=e===null||e===void 0?void 0:e.metadataSearchKeys)!==null&&t!==void 0?t:this.metadataSearchKeys;const n=(i=e===null||e===void 0?void 0:e.exactMatch)!==null&&i!==void 0?i:this.metadataSearchExactMatch;if(n){const e=s.length>0?s:[b];return e}else if(s.length>0){return s}return undefined}get el(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],controller:[{handleControllerChanged:0}],metadataKeys:[{handleMetadataKeysChanged:0}]}}static get style(){return T()}},[257,"vertex-scene-tree",{overScanCount:[2,"over-scan-count"],viewerSelector:[1,"viewer-selector"],viewer:[1040],rowData:[16],config:[1],configEnv:[1,"config-env"],controller:[1040],searchOptions:[1040],metadataSearchExactMatch:[1028,"metadata-search-exact-match"],metadataSearchKeys:[1040],metadataKeys:[16],operationAnimationDuration:[2,"operation-animation-duration"],rows:[32],totalRows:[32],showLoader:[32],showEmptyResults:[32],stateMap:[32],errorDetails:[32],hasPartialFilterResults:[32],refreshingResults:[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],isolateItem:[64],getRowAtIndex:[64],getRowForItemId:[64],getRowForEvent:[64],getRowAtClientY:[64],filterItems:[64],selectFilteredItems:[64],fetchMetadataKeys:[64]},[[0,"search","handleSearch"],[0,"cellLoaded","handleCellLoaded"]],{viewer:[{handleViewerChanged:0}],controller:[{handleControllerChanged:0}],metadataKeys:[{handleMetadataKeysChanged:0}]}]);function V(){if(typeof customElements==="undefined"){return}const e=["vertex-scene-tree","vertex-scene-tree-notification-banner","vertex-scene-tree-search","vertex-scene-tree-table-layout","vertex-scene-tree-toolbar","vertex-viewer-icon","vertex-viewer-spinner"];e.forEach((e=>{switch(e){case"vertex-scene-tree":if(!customElements.get(i(e))){customElements.define(i(e),F)}break;case"vertex-scene-tree-notification-banner":if(!customElements.get(i(e))){y()}break;case"vertex-scene-tree-search":if(!customElements.get(i(e))){g()}break;case"vertex-scene-tree-table-layout":if(!customElements.get(i(e))){p()}break;case"vertex-scene-tree-toolbar":if(!customElements.get(i(e))){x()}break;case"vertex-viewer-icon":if(!customElements.get(i(e))){I()}break;case"vertex-viewer-spinner":if(!customElements.get(i(e))){C()}break}}))}V();const z=F;const N=V;export{z as VertexSceneTree,N as defineCustomElement};
4
+ import{h as e,F as t,t as i,p as s,H as n,d as o,f as a,e as r}from"./p-Bb32XUUS.js";import{s as l,w as d,S as c,a as h,b as u}from"./p-Dbz9yUqC.js";import{p as v}from"./p-ahjMltGJ.js";import{i as f}from"./p-DC86ZXai.js";import{d as p,g as m}from"./p-DUC59SSO.js";import{i as w}from"./p-CiSHWNC4.js";import{S as b}from"./p-BZwvQkyb.js";import{d as y}from"./p-BphxnS-a.js";import{d as g}from"./p-D0KZu516.js";import{d as x}from"./p-B5SQ_oXT.js";import{d as I}from"./p-Bkm6H5uq.js";import{d as C}from"./p-DxuSiXYg.js";const k=({details:i},s)=>e("div",{class:"error"},e("div",{class:"error-section error-message"},e("span",null,i.message),i.link&&e(t,null,e("span",null," See our "),e("a",{href:i.link,target:"_blank"},"documentation")," ",e("span",null," for more information."))),e("div",{class:"error-section"},s));const E=500;async function R(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.elements((e=>e.items.where((e=>e.withItemId(t))).show())).execute({suppliedCorrelationId:i})}async function S(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.elements((e=>e.items.where((e=>e.withItemId(t))).hide())).execute({suppliedCorrelationId:i})}async function M(e,t,{append:i=false,suppliedCorrelationId:s}){const n=await e.scene();return n.elements((e=>[...i?[]:[e.items.where((e=>e.all())).deselect()],e.items.where((e=>e.withItemId(t))).select()])).execute({suppliedCorrelationId:s})}async function D(e,t,i,{append:s=true,suppliedCorrelationId:n}){const o=await e.scene();return o.elements((e=>[...s?[]:[e.items.where((e=>e.all())).deselect()],e.items.where((e=>e.withSceneTreeRange({start:t,end:i}))).select()])).execute({suppliedCorrelationId:n})}async function j(e,t,i,s,n,{append:o=false,suppliedCorrelationId:a}){const r=await e.scene();return r.elements((e=>[...o?[]:[e.items.where((e=>e.all())).deselect()],e.items.where((e=>e.withMetadata(t,i,s,n))).select()])).execute({suppliedCorrelationId:a})}async function K(e,t,{suppliedCorrelationId:i}={}){const s=await e.scene();return s.elements((e=>e.items.where((e=>e.withItemId(t))).deselect())).execute({suppliedCorrelationId:i})}async function L(e,t,{suppliedCorrelationId:i,animationDurationMs:s}={}){const n=await e.scene();await n.elements((e=>[e.items.where((e=>e.all())).hide(),e.items.where((e=>e.withItemId(t))).show()])).execute({suppliedCorrelationId:i});const o=await n.camera().flyTo((e=>e.withItemId(t))).render({animation:{milliseconds:s!==null&&s!==void 0?s:E}});await o.onAnimationCompleted.once()}const T=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}.button{padding:0.5rem;border-radius:0.25rem}.button-secondary{color:var(--neutral-800);background-color:var(--neutral-300)}.button-secondary:hover{color:var(--neutral-900)}.button-secondary:hover:enabled{box-shadow:0 2px 2px rgb(0 0 0 / 20%)}.button-secondary:disabled{opacity:0.8}.button-secondary:hover:disabled{cursor:not-allowed}:host{--scene-tree-toolbar-separator:1px solid var(--neutral-300);--scene-tree-default-font-family:unset;--scene-tree-default-font-size:unset;--scene-tree-default-font-color:unset;--scene-tree-secondary-font-color:unset;--scene-tree-selected-row-background-color:unset;--scene-tree-hovered-row-background-color:unset;--scene-tree-row-background-color:unset;--scene-tree-row-background-color-depth-n:unset;--scene-tree-overlay-z-index:3000;width:300px;height:100%;user-select:none;-webkit-user-select:none;cursor:default;display:flex;flex-direction:column;position:relative}.rows-scroll{position:relative;height:var(--scene-tree-row-height, 0);flex-grow:1}.rows{position:relative}.row{position:absolute;display:flex;align-items:center;width:100%;height:var(--scene-tree-row-height);padding:var(--scene-tree-row-padding);box-sizing:border-box}.row:hover{background-color:var(--scene-tree-row-hover-color)}.row.is-selected{background-color:var(--scene-tree-row-selected-color)}.expand-toggle{cursor:pointer;width:16px}.row-text{margin-left:0.25rem;width:100%;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.visibility-btn{display:flex;align-items:center;visibility:hidden;padding:4px}.visibility-btn.is-hidden{visibility:visible}.row:hover .visibility-btn{visibility:visible}.error,.empty-results{position:absolute;top:0;left:0;display:flex;flex-direction:column;align-items:center;font-size:0.875rem;width:100%;height:100%;padding:1rem;box-sizing:border-box;justify-content:center;background-color:white;z-index:var(--scene-tree-overlay-z-index)}.error-section{margin-top:1rem}.error-message{text-align:center}.search-toolbar,slot[name='header']::slotted(*){border-bottom:var(--scene-tree-toolbar-separator)}slot[name='footer']::slotted(:not(:last-child)){border-top:var(--scene-tree-toolbar-separator)}.header{display:flex;flex-direction:column}.footer{display:flex;flex-direction:column}.loading{position:absolute;top:150px;left:50%;transform:translate(-50%, -50%);text-align:center}`;const A=25;const F=s(class t extends n{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.connectionError=o(this,"connectionError");this.firstRowRendered=o(this,"firstRowRendered");this.overScanCount=25;this.configEnv="platprod";this.searchOptions={};this.metadataSearchExactMatch=false;this.metadataSearchKeys=[];this.metadataKeys=[];this.operationAnimationDuration=500;this.rows=[];this.totalRows=0;this.showLoader=false;this.showEmptyResults=false;this.stateMap={componentLoaded:false};this.hasPartialFilterResults=false;this.refreshingResults=false;this.attemptingRetry=false;this.firstCellRendered=false}async invalidateRows(){a(this.getLayoutElement())}async scrollToIndex(e,t={}){const{animate:i,position:s="middle"}=t;const n=Math.max(0,Math.min(e,this.totalRows));const o=this.getScrollToPosition(n,s);await this.getLayoutElement().scrollToPosition(o,{behavior:i?"smooth":undefined})}async scrollToItem(e,t={}){var i;const s=this.totalRows;const n=await((i=this.controller)===null||i===void 0?void 0:i.expandParentNodes(e));if(n!=null&&s!==this.totalRows){return new Promise((e=>{const i=this.getLayoutElement();const s=async()=>{i.removeEventListener("layoutRendered",s);await this.scrollToIndex(n,t);e()};i.addEventListener("layoutRendered",s)}))}else if(n!=null){await this.scrollToIndex(n,t)}}async expandAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.expandAll())}async collapseAll(){var e;await((e=this.controller)===null||e===void 0?void 0:e.collapseAll())}async expandItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(!t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.expandNode(e))}}))}async collapseItem(e){await this.performRowOperation(e,(async({id:e,node:t})=>{var i;if(t.expanded){await((i=this.controller)===null||i===void 0?void 0:i.collapseNode(e))}}))}async toggleExpandItem(e){await this.performRowOperation(e,(async({node:e})=>{if(e.expanded){await this.collapseItem(e)}else{await this.expandItem(e)}}))}async toggleItemVisibility(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible||i.partiallyVisible){await S(e,t)}else{await R(e,t)}}))}async hideItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.visible){await S(e,t)}}))}async showItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(!i.visible){await R(e,t)}}))}async selectItem(e,{recurseParent:t,...i}={}){await this.performRowOperation(e,(async({viewer:s,id:n})=>{var o,a,r,l;const d=await((o=this.controller)===null||o===void 0?void 0:o.fetchNodeAncestors(n))||[];const c=(a=this.stateMap.selectionPath)===null||a===void 0?void 0:a.includes(n);const h=this.getNodeFromRowOrIndex(e);const u=d.length>0?d[0].selected:true;const v=h.selected&&!u;if(t&&(c||v)){const e=d.find((({selected:e})=>!e));if(e!=null){await this.selectItem(e,i);this.lastSelectedItemId=n}else{await M(s,n,i);this.lastSelectedItemId=n}}else if(i.range&&this.lastSelectedItemId!=null){const e=await((r=this.controller)===null||r===void 0?void 0:r.expandParentNodes(n));const t=await((l=this.controller)===null||l===void 0?void 0:l.expandParentNodes(this.lastSelectedItemId));if(t&&e){const n=Math.min(t,e);const o=Math.max(t,e);await D(s,n,o,i)}}else{await M(s,n,i);this.lastSelectedItemId=n}this.stateMap.selectionPath=[...d.map((({id:e})=>(e===null||e===void 0?void 0:e.hex)||"")),n]}))}async deselectItem(e){await this.performRowOperation(e,(async({viewer:e,id:t,node:i})=>{if(i.selected){this.lastSelectedItemId=undefined;await K(e,t)}}))}async isolateItem(e){await this.performRowOperation(e,(async({viewer:e,id:t})=>{await L(e,t,{animationDurationMs:this.operationAnimationDuration})}))}async getRowAtIndex(e){return this.rows[e]}async getRowForItemId(e){var t;const i=await((t=this.controller)===null||t===void 0?void 0:t.expandParentNodes(e));if(i!=null){return this.rows[i]}else{return undefined}}async getRowForEvent(e){const{clientY:t,target:i}=e;if(i!=null&&this.errorDetails==null&&m(this.el,i)&&f(i)){return this.getRowAtClientY(t)}else{return undefined}}getRowAtClientY(e){const t=this.getLayoutElement();const i=t.layoutOffset;const s=Math.floor((e-i+t.scrollOffset)/t.rowHeight);return this.getRowAtIndex(s)}async filterItems(e,t={}){var i;const s={...t,metadataSearchKeys:t.columns};const n=this.getMetadataSearchKeys(s);return(i=this.controller)===null||i===void 0?void 0:i.filter(e,{...t,columns:n})}async selectFilteredItems(e,t){var i,s,n,o,a,r;if(this.viewer!=null){const l=(s=(i=this.searchOptions)===null||i===void 0?void 0:i.metadataSearchKeys)!==null&&s!==void 0?s:this.metadataSearchKeys;const d=l.length>0?l:this.metadataKeys;const c=d.length>0?d:["VERTEX_SCENE_ITEM_NAME"];const h=(o=(n=this.searchOptions)===null||n===void 0?void 0:n.exactMatch)!==null&&o!==void 0?o:this.metadataSearchExactMatch;const u=(r=(a=this.searchOptions)===null||a===void 0?void 0:a.removeHiddenItems)!==null&&r!==void 0?r:false;await j(this.viewer,e,c,h,u,{append:false,...t})}}async fetchMetadataKeys(){var e,t;return(t=(e=this.controller)===null||e===void 0?void 0:e.fetchMetadataKeys())!==null&&t!==void 0?t:[]}disconnectedCallback(){var e,t,i;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();(t=this.stateMap.viewerSceneReadyDisposable)===null||t===void 0?void 0:t.dispose();(i=this.controller)===null||i===void 0?void 0:i.cancel()}connectedCallback(){this.connectToViewer()}componentWillLoad(){var e;if(this.controller==null){const{sceneTreeHost:t}=this.getConfig().network;const i=new l.SceneTreeAPIClient(t,this.getConfig().flags.grpcUseStreamingWebSocketTransport?{transport:d}:undefined);this.controller=new c(i,100);(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}this.stateMap.onStateChangeDisposable=this.controller.onStateChange.on((e=>this.handleControllerStateChange(e)));this.connectToViewer();this.updateMissingViewerError()}async componentDidLoad(){var e;this.ensureLayoutDefined();this.updateLayoutElement();const t=this.getLayoutElement();const i=new ResizeObserver((()=>{this.invalidateRows()}));i.observe(t);this.stateMap.resizeObserver=i;this.stateMap.componentLoaded=true;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}componentWillRender(){this.updateLayoutElement()}render(){return e(r,{key:"11ed5a494b6fb744acfa2f0ebe6796917e670878"},e("div",{key:"c9d51c7a521b5ca0d4948557419012924923449b",class:"header"},e("slot",{key:"964f63d25f7616cac91e46763999bbe445a925f0",name:"header"},e("vertex-scene-tree-toolbar",{key:"ddb069379b2f832016db73389f9f3f92712e5816",class:"search-toolbar"},e("vertex-scene-tree-search",{key:"e315e5bf2a1187ee00a01bdeda4bb7a1a77cc090",controller:this.controller})))),e("slot",{key:"278933238516381029dc104684d0b744a71e021f",name:"partial-filter-results-banner"},this.hasPartialFilterResults&&e("vertex-scene-tree-notification-banner",{key:"dfa351c03bd2ea94bb7ee66d71df25ec6ce29a85",message:this.refreshingResults?"Refreshing results...":"Data loading, refresh for more.",actionLabel:"Refresh",onAction:()=>{var e;return(e=this.controller)===null||e===void 0?void 0:e.refreshFilter()}})),this.errorDetails!=null&&this.renderError(this.errorDetails),this.errorDetails==null&&e("div",{key:"d0ee52c9ededab3e8c1abe7be83bac8b69729afc",class:"rows-scroll"},this.showLoader&&e("slot",{key:"479b006dd0eac8225801c6703b29fe9be6a74630",name:"loading"},e("vertex-viewer-spinner",{key:"02468107bb106a15ccb228b37c415c576ff41115",class:"loading",size:"md"})),e("slot",{key:"788c7bf755721646d517f8c2f4fed1ed7a1d0865"}),this.showEmptyResults&&e("slot",{key:"96e6b9f178329850766e8bb3c74dfd0bb63bae2b",name:"empty-results"},e("div",{key:"6c987067351a4aaf28c45580767076bbda75ee4d",class:"empty-results"},"No Results Found."))),e("div",{key:"9bb3f5960dd504940a45847ed813f8beda5e92e8",class:"footer"},e("slot",{key:"454339799adadd66ac288c1484c5ad70b864de96",name:"footer"})))}renderError(t){if(t.code!==h.SCENE_TREE_DISABLED){return e(k,{details:t},e("button",{class:"button button-secondary",onClick:()=>this.retryConnectToViewer(),disabled:this.attemptingRetry},"Retry"))}else{return e(k,{details:t})}}handleViewerChanged(e,t){if(!this.stateMap.componentLoaded){return}this.connectToViewer()}handleControllerChanged(e){var t;if(!this.stateMap.componentLoaded){return}(t=this.stateMap.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.stateMap.onStateChangeDisposable=e.onStateChange.on((e=>this.handleControllerStateChange(e)));e.setMetadataKeys(this.metadataKeys)}handleMetadataKeysChanged(){var e;(e=this.controller)===null||e===void 0?void 0:e.setMetadataKeys(this.metadataKeys)}retryConnectToViewer(){this.attemptingRetry=true;this.errorDetails=undefined;this.connectToViewer()}connectToViewer(){var e,t,i;(e=this.stateMap.viewerDisposable)===null||e===void 0?void 0:e.dispose();(t=this.stateMap.viewerSceneReadyDisposable)===null||t===void 0?void 0:t.dispose();if(this.viewer==null&&this.viewerSelector!=null){this.viewer=document.querySelector(this.viewerSelector)}if(this.viewer!=null){this.clearMissingViewerError();const e=async()=>{const e=this.getLayoutElement();await e.attemptComputeCellHeight()};this.viewer.addEventListener("sceneReady",e);this.stateMap.viewerDisposable=(i=this.controller)===null||i===void 0?void 0:i.connectToViewer(this.viewer);this.stateMap.viewerSceneReadyDisposable={dispose:()=>{var t;return(t=this.viewer)===null||t===void 0?void 0:t.removeEventListener("sceneReady",e)}}}else{this.attemptingRetry=false;if(this.stateMap.componentLoaded){this.updateMissingViewerError()}}}updateMissingViewerError(){if(this.viewer==null){this.errorDetails=new u("MISSING_VIEWER",h.MISSING_VIEWER)}}clearMissingViewerError(){var e;if(((e=this.errorDetails)===null||e===void 0?void 0:e.code)===h.MISSING_VIEWER){this.errorDetails=undefined}}scheduleClearUnusedData(){if(this.stateMap.idleCallbackId!=null){window.cancelIdleCallback(this.stateMap.idleCallbackId)}this.stateMap.idleCallbackId=window.requestIdleCallback((e=>{var t,i,s;const n=(t=e.timeRemaining)===null||t===void 0?void 0:t.call(e);if(n==null||n>=A){const e=this.getLayoutElement();const t=e.viewportStartIndex;const n=e.viewportEndIndex;const[o,a]=((i=this.controller)===null||i===void 0?void 0:i.getPageIndexesForRange(t,n))||[];if(o!=null&&a!=null){(s=this.controller)===null||s===void 0?void 0:s.invalidatePagesOutsideRange(o,a,50)}}else{this.scheduleClearUnusedData()}}))}handleControllerStateChange(e){this.showLoader=!!e.shouldShowLoading;this.showEmptyResults=!!e.shouldShowEmptyResults;this.rows=e.rows;this.totalRows=e.totalRows;this.hasPartialFilterResults=!!e.isPartialFilterResponse;this.refreshingResults=!!e.isSearching;if(e.connection.type==="failure"){this.errorDetails=e.connection.details;this.connectionError.emit(e.connection.details)}else if(e.connection.type==="disconnected"){this.errorDetails=new u("DISCONNECTED",h.DISCONNECTED)}else{this.errorDetails=undefined}if(e.connection.type==="connected"||e.connection.type==="failure"){this.attemptingRetry=false}}getNodeFromRowOrIndex(e){const t=typeof e==="number"?this.rows[e]:e;if(t==null){throw new Error(`Cannot perform scene tree operation. Row not found.`)}return w(t)?t.node:t}async performRowOperation(e,t){const i=this.getNodeFromRowOrIndex(e);if(i.id==null){throw new Error(`Cannot perform scene tree operation. ID is undefined.`)}if(this.viewer==null){throw new Error(`Cannot perform scene tree operation. Cannot get reference to viewer.`)}await t({viewer:this.viewer,id:i.id.hex,node:i})}async handleSearch(e){var t,i,s,n;const o=this.getMetadataSearchKeys(this.searchOptions);const a=(i=(t=this.searchOptions)===null||t===void 0?void 0:t.exactMatch)!==null&&i!==void 0?i:this.metadataSearchExactMatch;const r=(n=(s=this.searchOptions)===null||s===void 0?void 0:s.removeHiddenItems)!==null&&n!==void 0?n:false;try{await this.filterItems(e.detail,{columns:o,exactMatch:a,removeHiddenItems:r})}catch(e){console.error("Failed to filter tree with exception: ",e)}}async handleCellLoaded(){if(!this.firstCellRendered&&this.rows.length>0){this.firstCellRendered=true;this.firstRowRendered.emit()}}getScrollToPosition(e,t){var i;const s=this.getLayoutElement();const n=Math.max(0,Math.min(e,this.totalRows-1));const o=(i=s.layoutHeight)!==null&&i!==void 0?i:0;const a=s.rowHeight;if(t==="start"){return n*a}else if(t==="middle"){const e=n*a+a/2;return e-o/2}else{const e=n*a+a;return e-o}}getConfig(){return v(this.configEnv,this.config)}ensureLayoutDefined(){let e=this.el.querySelector("vertex-scene-tree-table-layout");if(e==null){e=document.createElement("vertex-scene-tree-table-layout");e.innerHTML=`\n <vertex-scene-tree-table-column>\n <template>\n <vertex-scene-tree-table-cell prop:value="{{row.node.name}}" expand-toggle isolate-button visibility-toggle></vertex-scene-tree-table-cell>\n </template>\n </vertex-scene-tree-table-column>\n `;this.el.appendChild(e)}this.stateMap.layoutEl=e}updateLayoutElement(){const e=this.stateMap.layoutEl;if(e!=null){e.rows=this.rows;e.tree=this.el;e.totalRows=this.totalRows;e.controller=this.controller;e.rowData=this.rowData}else if(!this.stateMap.componentLoaded&&this.totalRows>0){console.debug("Scene tree has rows, but the component has not yet rendered")}}getLayoutElement(){if(this.stateMap.layoutEl!=null){return this.stateMap.layoutEl}else{throw new Error("Layout element is undefined")}}getMetadataSearchKeys(e){var t,i;const s=(t=e===null||e===void 0?void 0:e.metadataSearchKeys)!==null&&t!==void 0?t:this.metadataSearchKeys;const n=(i=e===null||e===void 0?void 0:e.exactMatch)!==null&&i!==void 0?i:this.metadataSearchExactMatch;if(n){const e=s.length>0?s:[b];return e}else if(s.length>0){return s}return undefined}get el(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],controller:[{handleControllerChanged:0}],metadataKeys:[{handleMetadataKeysChanged:0}]}}static get style(){return T()}},[257,"vertex-scene-tree",{overScanCount:[2,"over-scan-count"],viewerSelector:[1,"viewer-selector"],viewer:[1040],rowData:[16],config:[1],configEnv:[1,"config-env"],controller:[1040],searchOptions:[1040],metadataSearchExactMatch:[1028,"metadata-search-exact-match"],metadataSearchKeys:[1040],metadataKeys:[16],operationAnimationDuration:[2,"operation-animation-duration"],rows:[32],totalRows:[32],showLoader:[32],showEmptyResults:[32],stateMap:[32],errorDetails:[32],hasPartialFilterResults:[32],refreshingResults:[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],isolateItem:[64],getRowAtIndex:[64],getRowForItemId:[64],getRowForEvent:[64],getRowAtClientY:[64],filterItems:[64],selectFilteredItems:[64],fetchMetadataKeys:[64]},[[0,"search","handleSearch"],[0,"cellLoaded","handleCellLoaded"]],{viewer:[{handleViewerChanged:0}],controller:[{handleControllerChanged:0}],metadataKeys:[{handleMetadataKeysChanged:0}]}]);function V(){if(typeof customElements==="undefined"){return}const e=["vertex-scene-tree","vertex-scene-tree-notification-banner","vertex-scene-tree-search","vertex-scene-tree-table-layout","vertex-scene-tree-toolbar","vertex-viewer-icon","vertex-viewer-spinner"];e.forEach((e=>{switch(e){case"vertex-scene-tree":if(!customElements.get(i(e))){customElements.define(i(e),F)}break;case"vertex-scene-tree-notification-banner":if(!customElements.get(i(e))){y()}break;case"vertex-scene-tree-search":if(!customElements.get(i(e))){g()}break;case"vertex-scene-tree-table-layout":if(!customElements.get(i(e))){p()}break;case"vertex-scene-tree-toolbar":if(!customElements.get(i(e))){x()}break;case"vertex-viewer-icon":if(!customElements.get(i(e))){I()}break;case"vertex-viewer-spinner":if(!customElements.get(i(e))){C()}break}}))}V();const z=F;const N=V;export{z as VertexSceneTree,N as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-scene-tree.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{V as o,d as s}from"./p-CmtoXwYo.js";const t=o;const m=s;export{t as VertexViewerDomRenderer,m as defineCustomElement};
4
+ import{V as o,d as s}from"./p-BCOD9yfw.js";const t=o;const p=s;export{t as VertexViewerDomRenderer,p as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-dom-renderer.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{t as i,p as t,H as s,h as n,e}from"./p-Bb32XUUS.js";import{v as o,m as h,q as l,r,a}from"./p-DDQcM-So.js";import{w as d,r as c}from"./p-Cd7kap5W.js";import{M as u,R as v,r as p,s as f,T as w,c as m,a as g,A as b,b as N}from"./p-B6mpmA2-.js";function C(i,t){return i.getPropertyValue(t).trim().replace(/["']*/g,"")}function y(i,t,s,n){const e=o.transformMatrix(s,h.makeRotation(l.fromMatrixRotation(i)));const d=o.fromMatrixPosition(i);const c=Math.abs(o.dot(e,o.up()))===1?o.left():o.normalize(o.cross(e,o.up()));const v=o.normalize(o.cross(c,e));const p=r.create({origin:d,direction:c});const f=r.create({origin:d,direction:v});const w=o.rotateAboutAxis(a.toRadians(45),r.at(p,-n),e,d);const m=o.rotateAboutAxis(a.toRadians(45),r.at(f,-n),e,d);const g=o.rotateAboutAxis(a.toRadians(45),r.at(f,n),e,d);const b=o.rotateAboutAxis(a.toRadians(45),r.at(p,n),e,d);const N=[w,m,b,g];return new u(!isNaN(c.x),[w,m,b,g],N.map((i=>o.transformMatrix(i,t.projectionViewMatrix))),(i=>o.distance(d,i)))}function O(i,t,s,n){const e=o.transformMatrix(s,h.makeRotation(l.fromMatrixRotation(i)));const d=o.fromMatrixPosition(i);const c=o.normalize(o.cross(e,o.normalize(t.viewVector)));const v=o.normalize(o.cross(e,c));const p=r.create({origin:d,direction:c});const f=r.create({origin:d,direction:v});const w=r.at(p,-n);const m=r.at(f,-n);const g=r.at(f,n);const b=r.at(p,n);const N=o.rotateAboutAxis(a.toRadians(45),w,e,d);const C=o.rotateAboutAxis(a.toRadians(45),m,e,d);const y=o.rotateAboutAxis(a.toRadians(45),g,e,d);const O=o.rotateAboutAxis(a.toRadians(45),b,e,d);const S=[w,N,m,C,b,O,g,y];return new u(!isNaN(c.x),S,S.map((i=>o.transformMatrix(i,t.projectionViewMatrix))),(i=>o.distance(d,i)))}const S=.4;const x=5;const E=.75;class $ extends v{constructor(i,t={},s={}){super(i);this.arrowFillColor=t.arrow;this.planeFillColor=t.plane;this.outlineColor=t.outline;this.planeOpacity=s.plane}updateTransformAndNormal(i,t){var s;this.transform=i;this.normal=t;if(i!=null&&t!=null&&this.frame!=null){this.updateAndDraw()}else{this.clear();(s=this.reglFrameDisposable)===null||s===void 0?void 0:s.cancel();this.reglFrameDisposable=undefined}}updateColors(i){var t,s,n,e,o,h,l,r,a;this.arrowFillColor=(t=i.arrow)!==null&&t!==void 0?t:this.arrowFillColor;this.planeFillColor=(s=i.plane)!==null&&s!==void 0?s:this.planeFillColor;this.outlineColor=(n=i.outline)!==null&&n!==void 0?n:this.outlineColor;(e=this.arrow)===null||e===void 0?void 0:e.updateFillColor(this.arrowFillColor);(o=this.plane)===null||o===void 0?void 0:o.updateFillColor(this.planeFillColor);(h=this.arrow)===null||h===void 0?void 0:h.updateOutlineColor(this.outlineColor);(l=this.plane)===null||l===void 0?void 0:l.updateOutlineColor(this.outlineColor);(r=this.point)===null||r===void 0?void 0:r.updateOutlineColor(this.outlineColor);(a=this.axis)===null||a===void 0?void 0:a.updateOutlineColor(this.outlineColor)}updateOpacities(i){this.planeOpacity=i.plane}hasData(){return this.transform!=null&&this.normal!=null}createOrUpdateElements(){if(this.transform!=null&&this.normal!=null&&this.frame!=null){if(this.arrow==null){this.createElements(this.transform,this.normal,this.frame)}else{this.updateElements(this.transform,this.normal,this.frame)}}}createElements(i,t,s){this.reglCommand=p({canvas:this.canvasElement,extensions:"angle_instanced_arrays"});const{createShape:n}=f(this.reglCommand);const e=this.computeTriangleSize(o.fromMatrixPosition(i),s);this.arrow=new w(n,"hit-normal-arrow",m(i,s.scene.camera,t,e),this.outlineColor,this.arrowFillColor);this.plane=new g(n,"hit-plane",y(i,s.scene.camera,t,e*x),this.outlineColor,this.planeFillColor,{opacity:this.getPlaneOpacity(),depth:.5});this.point=new g(n,"hit-position",O(i,s.scene.camera,t,e*S),this.outlineColor,this.outlineColor,{join:"round",depth:1});this.axis=new b(n,"hit-normal-axis",N(i,s.scene.camera,this.arrow),this.outlineColor,this.arrowFillColor);this.availableElements=[this.arrow,this.point,this.plane,this.axis]}updateElements(i,t,s){var n;const e=this.computeTriangleSize(o.fromMatrixPosition(i),s);if(this.arrow!=null){this.arrow.updatePoints(m(i,s.scene.camera,t,e));(n=this.axis)===null||n===void 0?void 0:n.updatePoints(N(i,s.scene.camera,this.arrow))}if(this.plane!=null){this.plane.updatePoints(y(i,s.scene.camera,t,e*x))}if(this.point!=null){this.point.updatePoints(O(i,s.scene.camera,t,e*S))}}getPlaneOpacity(){if(this.planeOpacity!=null){return typeof this.planeOpacity==="string"?parseFloat(this.planeOpacity):this.planeOpacity}return E}}const D=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-hit-result-indicator-arrow-color:#0099cc;--viewer-hit-result-indicator-plane-color:#0099cc;--viewer-hit-result-indicator-outline-color:#000000;--viewer-hit-result-indicator-plane-opacity:0.75}.indicator{position:absolute;top:0;left:0}`;const J=t(class i extends s{constructor(i){super();if(i!==false){this.__registerHost()}this.__attachShadow();this.arrowColor="#0099cc";this.planeColor="#0099cc";this.outlineColor="#000000";this.planeOpacity=E;this.handleViewerFrameDrawn=()=>{this.updatePropsFromViewer()};this.handleViewerDimensionsChange=()=>{d((()=>{if(this.viewer!=null&&this.canvasRef!=null){this.canvasRef.width=this.viewer.viewport.width;this.canvasRef.height=this.viewer.viewport.height;this.updateAndRedrawIndicator()}}))};this.handleResize=()=>{if(this.canvasRef!=null){this.updateAndRedrawIndicator()}};this.updatePropsFromViewer=()=>{const{frame:i}=this.viewer||{};if(i!=null){const t=this.getIndicator();t.updateFrame(i)}};this.setupIndicator=i=>{var t,s;console.debug(`Initializing hit indicator. [initial-position=${JSON.stringify(this.position)}, initial-normal=${JSON.stringify(this.normal)} has-initial-frame=${((t=this.viewer)===null||t===void 0?void 0:t.frame)!=null}]`);this.indicator=new $(i,{arrow:this.arrowColor,plane:this.planeColor},{plane:this.planeOpacity});this.transform=this.createTransform();this.indicator.updateTransformAndNormal(this.transform,this.normal);if(((s=this.viewer)===null||s===void 0?void 0:s.frame)!=null){this.indicator.updateFrame(this.viewer.frame)}return this.indicator};this.updateAndRedrawIndicator=()=>{c((()=>{this.getIndicator().updateAndDraw()}))};this.createTransform=()=>{if(this.position!=null){return h.makeTranslation(this.position)}};this.getIndicator=()=>{if(this.indicator==null&&this.canvasRef!=null){return this.setupIndicator(this.canvasRef)}else if(this.indicator!=null){return this.indicator}else{throw new Error("Hit indicator was not initialized. The canvas element may not have been initialized.")}}}componentDidLoad(){this.handleViewerChanged(this.viewer,undefined);this.canvasResizeObserver=new ResizeObserver(this.handleResize);if(this.canvasRef!=null){this.canvasResizeObserver.observe(this.canvasRef);this.setupIndicator(this.canvasRef)}c((()=>{var i,t;const s=window.getComputedStyle(this.hostEl);this.arrowColor=C(s,"--viewer-hit-result-indicator-arrow-color");this.planeColor=C(s,"--viewer-hit-result-indicator-plane-color");this.outlineColor=C(s,"--viewer-hit-result-indicator-outline-color");this.planeOpacity=s.getPropertyValue("--viewer-hit-result-indicator-plane-opacity").trim();(i=this.indicator)===null||i===void 0?void 0:i.updateColors({arrow:this.arrowColor,plane:this.planeColor,outline:this.outlineColor});(t=this.indicator)===null||t===void 0?void 0:t.updateOpacities({plane:this.planeOpacity})}))}disconnectedCallback(){var i,t;(i=this.canvasResizeObserver)===null||i===void 0?void 0:i.disconnect();(t=this.indicator)===null||t===void 0?void 0:t.dispose()}handleViewerChanged(i,t){t===null||t===void 0?void 0:t.removeEventListener("frameDrawn",this.handleViewerFrameDrawn);t===null||t===void 0?void 0:t.removeEventListener("dimensionschange",this.handleViewerDimensionsChange);i===null||i===void 0?void 0:i.addEventListener("frameDrawn",this.handleViewerFrameDrawn);i===null||i===void 0?void 0:i.addEventListener("dimensionschange",this.handleViewerDimensionsChange)}handlePositionChanged(i,t){var s;this.transform=this.createTransform();console.debug(`Updating indicator position [previous=${JSON.stringify(t)}, current=${JSON.stringify(i)}]`);(s=this.indicator)===null||s===void 0?void 0:s.updateTransformAndNormal(this.transform,this.normal)}handleNormalChanged(i,t){var s;console.debug(`Updating indicator normal [previous=${JSON.stringify(t)}, current=${JSON.stringify(i)}]`);if(i){(s=this.indicator)===null||s===void 0?void 0:s.updateTransformAndNormal(this.transform,this.normal)}}render(){var i,t;return n(e,{key:"0631daa8ceb3c04fcabb3ca882ee4758d2017d5f"},n("canvas",{key:"2b0be3f11e30545337f6dcb441c44a3424d484ef",ref:i=>{this.canvasRef=i},class:"indicator",width:(i=this.viewer)===null||i===void 0?void 0:i.viewport.width,height:(t=this.viewer)===null||t===void 0?void 0:t.viewport.height}))}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],position:[{handlePositionChanged:0}],normal:[{handleNormalChanged:0}]}}static get style(){return D()}},[1,"vertex-viewer-hit-result-indicator",{viewer:[16],position:[1040],normal:[1040]},undefined,{viewer:[{handleViewerChanged:0}],position:[{handlePositionChanged:0}],normal:[{handleNormalChanged:0}]}]);function j(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-hit-result-indicator"];t.forEach((t=>{switch(t){case"vertex-viewer-hit-result-indicator":if(!customElements.get(i(t))){customElements.define(i(t),J)}break}}))}j();const k=J;const U=j;export{k as VertexViewerHitResultIndicator,U as defineCustomElement};
4
+ import{t as i,p as t,H as s,h as n,e}from"./p-Bb32XUUS.js";import{v as o,m as h,q as l,r,a}from"./p-DDQcM-So.js";import{w as d,r as c}from"./p-Cd7kap5W.js";import{M as u,R as v,r as p,s as f,T as w,c as m,a as g,A as b,b as N}from"./p-abSJ29r7.js";function C(i,t){return i.getPropertyValue(t).trim().replace(/["']*/g,"")}function y(i,t,s,n){const e=o.transformMatrix(s,h.makeRotation(l.fromMatrixRotation(i)));const d=o.fromMatrixPosition(i);const c=Math.abs(o.dot(e,o.up()))===1?o.left():o.normalize(o.cross(e,o.up()));const v=o.normalize(o.cross(c,e));const p=r.create({origin:d,direction:c});const f=r.create({origin:d,direction:v});const w=o.rotateAboutAxis(a.toRadians(45),r.at(p,-n),e,d);const m=o.rotateAboutAxis(a.toRadians(45),r.at(f,-n),e,d);const g=o.rotateAboutAxis(a.toRadians(45),r.at(f,n),e,d);const b=o.rotateAboutAxis(a.toRadians(45),r.at(p,n),e,d);const N=[w,m,b,g];return new u(!isNaN(c.x),[w,m,b,g],N.map((i=>o.transformMatrix(i,t.projectionViewMatrix))),(i=>o.distance(d,i)))}function O(i,t,s,n){const e=o.transformMatrix(s,h.makeRotation(l.fromMatrixRotation(i)));const d=o.fromMatrixPosition(i);const c=o.normalize(o.cross(e,o.normalize(t.viewVector)));const v=o.normalize(o.cross(e,c));const p=r.create({origin:d,direction:c});const f=r.create({origin:d,direction:v});const w=r.at(p,-n);const m=r.at(f,-n);const g=r.at(f,n);const b=r.at(p,n);const N=o.rotateAboutAxis(a.toRadians(45),w,e,d);const C=o.rotateAboutAxis(a.toRadians(45),m,e,d);const y=o.rotateAboutAxis(a.toRadians(45),g,e,d);const O=o.rotateAboutAxis(a.toRadians(45),b,e,d);const S=[w,N,m,C,b,O,g,y];return new u(!isNaN(c.x),S,S.map((i=>o.transformMatrix(i,t.projectionViewMatrix))),(i=>o.distance(d,i)))}const S=.4;const x=5;const E=.75;class J extends v{constructor(i,t={},s={}){super(i);this.arrowFillColor=t.arrow;this.planeFillColor=t.plane;this.outlineColor=t.outline;this.planeOpacity=s.plane}updateTransformAndNormal(i,t){var s;this.transform=i;this.normal=t;if(i!=null&&t!=null&&this.frame!=null){this.updateAndDraw()}else{this.clear();(s=this.reglFrameDisposable)===null||s===void 0?void 0:s.cancel();this.reglFrameDisposable=undefined}}updateColors(i){var t,s,n,e,o,h,l,r,a;this.arrowFillColor=(t=i.arrow)!==null&&t!==void 0?t:this.arrowFillColor;this.planeFillColor=(s=i.plane)!==null&&s!==void 0?s:this.planeFillColor;this.outlineColor=(n=i.outline)!==null&&n!==void 0?n:this.outlineColor;(e=this.arrow)===null||e===void 0?void 0:e.updateFillColor(this.arrowFillColor);(o=this.plane)===null||o===void 0?void 0:o.updateFillColor(this.planeFillColor);(h=this.arrow)===null||h===void 0?void 0:h.updateOutlineColor(this.outlineColor);(l=this.plane)===null||l===void 0?void 0:l.updateOutlineColor(this.outlineColor);(r=this.point)===null||r===void 0?void 0:r.updateOutlineColor(this.outlineColor);(a=this.axis)===null||a===void 0?void 0:a.updateOutlineColor(this.outlineColor)}updateOpacities(i){this.planeOpacity=i.plane}hasData(){return this.transform!=null&&this.normal!=null}createOrUpdateElements(){if(this.transform!=null&&this.normal!=null&&this.frame!=null){if(this.arrow==null){this.createElements(this.transform,this.normal,this.frame)}else{this.updateElements(this.transform,this.normal,this.frame)}}}createElements(i,t,s){this.reglCommand=p({canvas:this.canvasElement,extensions:"angle_instanced_arrays"});const{createShape:n}=f(this.reglCommand);const e=this.computeTriangleSize(o.fromMatrixPosition(i),s);this.arrow=new w(n,"hit-normal-arrow",m(i,s.scene.camera,t,e),this.outlineColor,this.arrowFillColor);this.plane=new g(n,"hit-plane",y(i,s.scene.camera,t,e*x),this.outlineColor,this.planeFillColor,{opacity:this.getPlaneOpacity(),depth:.5});this.point=new g(n,"hit-position",O(i,s.scene.camera,t,e*S),this.outlineColor,this.outlineColor,{join:"round",depth:1});this.axis=new b(n,"hit-normal-axis",N(i,s.scene.camera,this.arrow),this.outlineColor,this.arrowFillColor);this.availableElements=[this.arrow,this.point,this.plane,this.axis]}updateElements(i,t,s){var n;const e=this.computeTriangleSize(o.fromMatrixPosition(i),s);if(this.arrow!=null){this.arrow.updatePoints(m(i,s.scene.camera,t,e));(n=this.axis)===null||n===void 0?void 0:n.updatePoints(N(i,s.scene.camera,this.arrow))}if(this.plane!=null){this.plane.updatePoints(y(i,s.scene.camera,t,e*x))}if(this.point!=null){this.point.updatePoints(O(i,s.scene.camera,t,e*S))}}getPlaneOpacity(){if(this.planeOpacity!=null){return typeof this.planeOpacity==="string"?parseFloat(this.planeOpacity):this.planeOpacity}return E}}const $=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-hit-result-indicator-arrow-color:#0099cc;--viewer-hit-result-indicator-plane-color:#0099cc;--viewer-hit-result-indicator-outline-color:#000000;--viewer-hit-result-indicator-plane-opacity:0.75}.indicator{position:absolute;top:0;left:0}`;const D=t(class i extends s{constructor(i){super();if(i!==false){this.__registerHost()}this.__attachShadow();this.arrowColor="#0099cc";this.planeColor="#0099cc";this.outlineColor="#000000";this.planeOpacity=E;this.handleViewerFrameDrawn=()=>{this.updatePropsFromViewer()};this.handleViewerDimensionsChange=()=>{d((()=>{if(this.viewer!=null&&this.canvasRef!=null){this.canvasRef.width=this.viewer.viewport.width;this.canvasRef.height=this.viewer.viewport.height;this.updateAndRedrawIndicator()}}))};this.handleResize=()=>{if(this.canvasRef!=null){this.updateAndRedrawIndicator()}};this.updatePropsFromViewer=()=>{const{frame:i}=this.viewer||{};if(i!=null){const t=this.getIndicator();t.updateFrame(i)}};this.setupIndicator=i=>{var t,s;console.debug(`Initializing hit indicator. [initial-position=${JSON.stringify(this.position)}, initial-normal=${JSON.stringify(this.normal)} has-initial-frame=${((t=this.viewer)===null||t===void 0?void 0:t.frame)!=null}]`);this.indicator=new J(i,{arrow:this.arrowColor,plane:this.planeColor},{plane:this.planeOpacity});this.transform=this.createTransform();this.indicator.updateTransformAndNormal(this.transform,this.normal);if(((s=this.viewer)===null||s===void 0?void 0:s.frame)!=null){this.indicator.updateFrame(this.viewer.frame)}return this.indicator};this.updateAndRedrawIndicator=()=>{c((()=>{this.getIndicator().updateAndDraw()}))};this.createTransform=()=>{if(this.position!=null){return h.makeTranslation(this.position)}};this.getIndicator=()=>{if(this.indicator==null&&this.canvasRef!=null){return this.setupIndicator(this.canvasRef)}else if(this.indicator!=null){return this.indicator}else{throw new Error("Hit indicator was not initialized. The canvas element may not have been initialized.")}}}componentDidLoad(){this.handleViewerChanged(this.viewer,undefined);this.canvasResizeObserver=new ResizeObserver(this.handleResize);if(this.canvasRef!=null){this.canvasResizeObserver.observe(this.canvasRef);this.setupIndicator(this.canvasRef)}c((()=>{var i,t;const s=window.getComputedStyle(this.hostEl);this.arrowColor=C(s,"--viewer-hit-result-indicator-arrow-color");this.planeColor=C(s,"--viewer-hit-result-indicator-plane-color");this.outlineColor=C(s,"--viewer-hit-result-indicator-outline-color");this.planeOpacity=s.getPropertyValue("--viewer-hit-result-indicator-plane-opacity").trim();(i=this.indicator)===null||i===void 0?void 0:i.updateColors({arrow:this.arrowColor,plane:this.planeColor,outline:this.outlineColor});(t=this.indicator)===null||t===void 0?void 0:t.updateOpacities({plane:this.planeOpacity})}))}disconnectedCallback(){var i,t;(i=this.canvasResizeObserver)===null||i===void 0?void 0:i.disconnect();(t=this.indicator)===null||t===void 0?void 0:t.dispose()}handleViewerChanged(i,t){t===null||t===void 0?void 0:t.removeEventListener("frameDrawn",this.handleViewerFrameDrawn);t===null||t===void 0?void 0:t.removeEventListener("dimensionschange",this.handleViewerDimensionsChange);i===null||i===void 0?void 0:i.addEventListener("frameDrawn",this.handleViewerFrameDrawn);i===null||i===void 0?void 0:i.addEventListener("dimensionschange",this.handleViewerDimensionsChange)}handlePositionChanged(i,t){var s;this.transform=this.createTransform();console.debug(`Updating indicator position [previous=${JSON.stringify(t)}, current=${JSON.stringify(i)}]`);(s=this.indicator)===null||s===void 0?void 0:s.updateTransformAndNormal(this.transform,this.normal)}handleNormalChanged(i,t){var s;console.debug(`Updating indicator normal [previous=${JSON.stringify(t)}, current=${JSON.stringify(i)}]`);if(i){(s=this.indicator)===null||s===void 0?void 0:s.updateTransformAndNormal(this.transform,this.normal)}}render(){var i,t;return n(e,{key:"0631daa8ceb3c04fcabb3ca882ee4758d2017d5f"},n("canvas",{key:"2b0be3f11e30545337f6dcb441c44a3424d484ef",ref:i=>{this.canvasRef=i},class:"indicator",width:(i=this.viewer)===null||i===void 0?void 0:i.viewport.width,height:(t=this.viewer)===null||t===void 0?void 0:t.viewport.height}))}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],position:[{handlePositionChanged:0}],normal:[{handleNormalChanged:0}]}}static get style(){return $()}},[1,"vertex-viewer-hit-result-indicator",{viewer:[16],position:[1040],normal:[1040]},undefined,{viewer:[{handleViewerChanged:0}],position:[{handlePositionChanged:0}],normal:[{handleNormalChanged:0}]}]);function j(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-hit-result-indicator"];t.forEach((t=>{switch(t){case"vertex-viewer-hit-result-indicator":if(!customElements.get(i(t))){customElements.define(i(t),D)}break}}))}j();const k=D;const U=j;export{k as VertexViewerHitResultIndicator,U as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-hit-result-indicator.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as e,F as t,t as s,p as n,H as r,e as i}from"./p-Bb32XUUS.js";import"./p-DTDKqbV2.js";import"./p-FRKLa468.js";import"./p-ux1ckSDN.js";import"./p-BoB09nlv.js";import{D as a,A as l,g as o}from"./p-BfAW7IWG.js";import{M as d}from"./p-COlcifvm.js";import{v as u}from"./p-DDQcM-So.js";import{c as h}from"./p-C6gMOKYg.js";import{_ as m}from"./p-Ck9IspfK.js";function v(e){return e.toLowerCase()}var c=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var f=/[^A-Z0-9]+/gi;function g(e,t){if(t===void 0){t={}}var s=t.splitRegexp,n=s===void 0?c:s,r=t.stripRegexp,i=r===void 0?f:r,a=t.transform,l=a===void 0?v:a,o=t.delimiter,d=o===void 0?" ":o;var u=p(p(e,n,"$1\0$2"),i,"\0");var h=0;var m=u.length;while(u.charAt(h)==="\0")h++;while(u.charAt(m-1)==="\0")m--;return u.slice(h,m).split("\0").map(l).join(d)}function p(e,t,s){if(t instanceof RegExp)return e.replace(t,s);return t.reduce((function(e,t){return e.replace(t,s)}),e)}function y(e,t){if(t===void 0){t={}}return g(e,m({delimiter:"."},t))}function w(e,t){if(t===void 0){t={}}return y(e,m({delimiter:"-"},t))}const M=({label:t,...s},n)=>e("div",{...s,class:"measurement-details-entry"},e("div",{class:h("measurement-details-entry-label",w(t))},t,":"),n);const b=({result:s,formatter:n,overlays:r,onShowOverlay:i,onHideOverlay:a})=>{const l=u.subtract(s.point1,s.point2);return e(t,null,e(M,{label:"Dist",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addLineFromResult(s)),onMouseLeave:a},n(s.distance)),e(M,{label:"X",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addDistanceVectorFromResult(s)),onMouseLeave:a},n(l.x)),e(M,{label:"Y",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addDistanceVectorFromResult(s)),onMouseLeave:a},n(l.y)),e(M,{label:"Z",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addDistanceVectorFromResult(s)),onMouseLeave:a},n(l.z)))};const C=({result:t,formatter:s})=>e(M,{label:"Angle"},s(t.angle));const U=({result:t,formatter:s})=>e(M,{label:"Parallel Dist"},s(t.distance));const O=({result:t,formatter:s})=>e(M,{label:"Area"},s(t.area));const x=()=>`:host{display:flex;flex-direction:column;--viewer-measurement-details-x-color:red;--viewer-measurement-details-y-color:var(--green-500);--viewer-measurement-details-z-color:blue}.measurement-details-entry{display:flex;align-items:center}.measurement-details-entry-label{user-select:none;padding-right:0.25rem}.measurement-details-entry-label.x{color:var(--viewer-measurement-details-x-color)}.measurement-details-entry-label.y{color:var(--viewer-measurement-details-y-color)}.measurement-details-entry-label.z{color:var(--viewer-measurement-details-z-color)}`;const A=n(class t extends r{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.measurementModel=new d;this.distanceUnits="millimeters";this.angleUnits="degrees";this.fractionalDigits=2;this.distanceMeasurementUnits=new a(this.distanceUnits);this.angleMeasurementUnits=new l(this.angleUnits);this.areaMeasurementUnits=new o(this.distanceUnits);this.handleShowOverlay=e=>{this.overlay=e};this.handleHideOverlay=()=>{var e;(e=this.overlay)===null||e===void 0?void 0:e.dispose()};this.handleOutcomeChange=()=>{this.updateStateFromModel()}}connectedCallback(){this.handleMeasurementModelChanged()}disconnectedCallback(){var e;(e=this.onOutcomeChangedHandler)===null||e===void 0?void 0:e.dispose()}handleDistanceUnitsChanged(){this.distanceMeasurementUnits=new a(this.distanceUnits);this.areaMeasurementUnits=new o(this.distanceUnits)}handleAngleUnitsChanged(){this.angleMeasurementUnits=new l(this.angleUnits)}handleMeasurementModelChanged(){var e,t;(e=this.onOutcomeChangedHandler)===null||e===void 0?void 0:e.dispose();this.onOutcomeChangedHandler=(t=this.measurementModel)===null||t===void 0?void 0:t.onOutcomeChanged(this.handleOutcomeChange);this.updateStateFromModel()}handleResultTypesChanged(){this.updateStateFromModel()}render(){var t,s;const n=e=>{var t,s;return(s=(t=this.resultTypes)===null||t===void 0?void 0:t.includes(e.type))!==null&&s!==void 0?s:true};const r=((s=(t=this.measurementOutcome)===null||t===void 0?void 0:t.results)!==null&&s!==void 0?s:[]).filter(n);return e(i,null,this.renderResult("planar-angle",r,(t=>e(C,{result:t,overlays:this.measurementOverlays,formatter:this.makeAngleFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("planar-distance",r,(t=>e(U,{result:t,overlays:this.measurementOverlays,formatter:this.makeDistanceFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("surface-area",r,(t=>e(O,{result:t,overlays:this.measurementOverlays,formatter:this.makeAreaFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("minimum-distance",r,(t=>e(b,{result:t,overlays:this.measurementOverlays,formatter:this.makeDistanceFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))))}updateStateFromModel(){var e;this.measurementOutcome=(e=this.measurementModel)===null||e===void 0?void 0:e.getOutcome()}renderResult(e,t,s){const n=this.getResultForType(e,t);return n!=null?s(n):undefined}getResultForType(e,t){return t.find((t=>t.type===e))}makeDistanceFormatter(){return this.makeFormatter((e=>this.distanceMeasurementUnits.convertWorldValueToReal(e)),this.distanceMeasurementUnits.unit,this.distanceFormatter)}makeAngleFormatter(){return this.makeFormatter((e=>this.angleMeasurementUnits.convertTo(e)),this.angleMeasurementUnits.unit,this.angleFormatter)}makeAreaFormatter(){return this.makeFormatter((e=>this.areaMeasurementUnits.convertWorldValueToReal(e)),this.areaMeasurementUnits.unit,this.areaFormatter)}makeFormatter(e,t,s){return n=>{const r=e(n);if(s!=null){return s(r)}else{return this.formatValue(r,t)}}}formatValue(e,t){var s,n;const r=e.toFixed(this.fractionalDigits);const i=(n=(s=this.measurementOutcome)===null||s===void 0?void 0:s.isApproximate)!==null&&n!==void 0?n:false;return`${i?"~"+r:r} ${t.abbreviatedName}`}static get watchers(){return{distanceUnits:[{handleDistanceUnitsChanged:1}],angleUnits:[{handleAngleUnitsChanged:1}],measurementModel:[{handleMeasurementModelChanged:1}],resultTypes:[{handleResultTypesChanged:0}]}}static get style(){return x()}},[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]},undefined,{distanceUnits:[{handleDistanceUnitsChanged:1}],angleUnits:[{handleAngleUnitsChanged:1}],measurementModel:[{handleMeasurementModelChanged:1}],resultTypes:[{handleResultTypesChanged:0}]}]);function D(){if(typeof customElements==="undefined"){return}const e=["vertex-viewer-measurement-details"];e.forEach((e=>{switch(e){case"vertex-viewer-measurement-details":if(!customElements.get(s(e))){customElements.define(s(e),A)}break}}))}D();const F=A;const j=D;export{F as VertexViewerMeasurementDetails,j as defineCustomElement};
4
+ import{h as e,F as t,t as s,p as n,H as r,e as i}from"./p-Bb32XUUS.js";import"./p-D12q-fpW.js";import"./p-FRKLa468.js";import"./p-ux1ckSDN.js";import"./p-BoB09nlv.js";import{D as a,A as l,g as o}from"./p-B9R0QWr4.js";import{M as d}from"./p-COlcifvm.js";import{v as u}from"./p-DDQcM-So.js";import{c as h}from"./p-C6gMOKYg.js";import{_ as m}from"./p-Ck9IspfK.js";function v(e){return e.toLowerCase()}var c=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var f=/[^A-Z0-9]+/gi;function g(e,t){if(t===void 0){t={}}var s=t.splitRegexp,n=s===void 0?c:s,r=t.stripRegexp,i=r===void 0?f:r,a=t.transform,l=a===void 0?v:a,o=t.delimiter,d=o===void 0?" ":o;var u=p(p(e,n,"$1\0$2"),i,"\0");var h=0;var m=u.length;while(u.charAt(h)==="\0")h++;while(u.charAt(m-1)==="\0")m--;return u.slice(h,m).split("\0").map(l).join(d)}function p(e,t,s){if(t instanceof RegExp)return e.replace(t,s);return t.reduce((function(e,t){return e.replace(t,s)}),e)}function y(e,t){if(t===void 0){t={}}return g(e,m({delimiter:"."},t))}function w(e,t){if(t===void 0){t={}}return y(e,m({delimiter:"-"},t))}const M=({label:t,...s},n)=>e("div",{...s,class:"measurement-details-entry"},e("div",{class:h("measurement-details-entry-label",w(t))},t,":"),n);const b=({result:s,formatter:n,overlays:r,onShowOverlay:i,onHideOverlay:a})=>{const l=u.subtract(s.point1,s.point2);return e(t,null,e(M,{label:"Dist",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addLineFromResult(s)),onMouseLeave:a},n(s.distance)),e(M,{label:"X",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addDistanceVectorFromResult(s)),onMouseLeave:a},n(l.x)),e(M,{label:"Y",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addDistanceVectorFromResult(s)),onMouseLeave:a},n(l.y)),e(M,{label:"Z",onMouseEnter:()=>i(r===null||r===void 0?void 0:r.addDistanceVectorFromResult(s)),onMouseLeave:a},n(l.z)))};const C=({result:t,formatter:s})=>e(M,{label:"Angle"},s(t.angle));const U=({result:t,formatter:s})=>e(M,{label:"Parallel Dist"},s(t.distance));const O=({result:t,formatter:s})=>e(M,{label:"Area"},s(t.area));const x=()=>`:host{display:flex;flex-direction:column;--viewer-measurement-details-x-color:red;--viewer-measurement-details-y-color:var(--green-500);--viewer-measurement-details-z-color:blue}.measurement-details-entry{display:flex;align-items:center}.measurement-details-entry-label{user-select:none;padding-right:0.25rem}.measurement-details-entry-label.x{color:var(--viewer-measurement-details-x-color)}.measurement-details-entry-label.y{color:var(--viewer-measurement-details-y-color)}.measurement-details-entry-label.z{color:var(--viewer-measurement-details-z-color)}`;const A=n(class t extends r{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.measurementModel=new d;this.distanceUnits="millimeters";this.angleUnits="degrees";this.fractionalDigits=2;this.distanceMeasurementUnits=new a(this.distanceUnits);this.angleMeasurementUnits=new l(this.angleUnits);this.areaMeasurementUnits=new o(this.distanceUnits);this.handleShowOverlay=e=>{this.overlay=e};this.handleHideOverlay=()=>{var e;(e=this.overlay)===null||e===void 0?void 0:e.dispose()};this.handleOutcomeChange=()=>{this.updateStateFromModel()}}connectedCallback(){this.handleMeasurementModelChanged()}disconnectedCallback(){var e;(e=this.onOutcomeChangedHandler)===null||e===void 0?void 0:e.dispose()}handleDistanceUnitsChanged(){this.distanceMeasurementUnits=new a(this.distanceUnits);this.areaMeasurementUnits=new o(this.distanceUnits)}handleAngleUnitsChanged(){this.angleMeasurementUnits=new l(this.angleUnits)}handleMeasurementModelChanged(){var e,t;(e=this.onOutcomeChangedHandler)===null||e===void 0?void 0:e.dispose();this.onOutcomeChangedHandler=(t=this.measurementModel)===null||t===void 0?void 0:t.onOutcomeChanged(this.handleOutcomeChange);this.updateStateFromModel()}handleResultTypesChanged(){this.updateStateFromModel()}render(){var t,s;const n=e=>{var t,s;return(s=(t=this.resultTypes)===null||t===void 0?void 0:t.includes(e.type))!==null&&s!==void 0?s:true};const r=((s=(t=this.measurementOutcome)===null||t===void 0?void 0:t.results)!==null&&s!==void 0?s:[]).filter(n);return e(i,null,this.renderResult("planar-angle",r,(t=>e(C,{result:t,overlays:this.measurementOverlays,formatter:this.makeAngleFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("planar-distance",r,(t=>e(U,{result:t,overlays:this.measurementOverlays,formatter:this.makeDistanceFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("surface-area",r,(t=>e(O,{result:t,overlays:this.measurementOverlays,formatter:this.makeAreaFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("minimum-distance",r,(t=>e(b,{result:t,overlays:this.measurementOverlays,formatter:this.makeDistanceFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))))}updateStateFromModel(){var e;this.measurementOutcome=(e=this.measurementModel)===null||e===void 0?void 0:e.getOutcome()}renderResult(e,t,s){const n=this.getResultForType(e,t);return n!=null?s(n):undefined}getResultForType(e,t){return t.find((t=>t.type===e))}makeDistanceFormatter(){return this.makeFormatter((e=>this.distanceMeasurementUnits.convertWorldValueToReal(e)),this.distanceMeasurementUnits.unit,this.distanceFormatter)}makeAngleFormatter(){return this.makeFormatter((e=>this.angleMeasurementUnits.convertTo(e)),this.angleMeasurementUnits.unit,this.angleFormatter)}makeAreaFormatter(){return this.makeFormatter((e=>this.areaMeasurementUnits.convertWorldValueToReal(e)),this.areaMeasurementUnits.unit,this.areaFormatter)}makeFormatter(e,t,s){return n=>{const r=e(n);if(s!=null){return s(r)}else{return this.formatValue(r,t)}}}formatValue(e,t){var s,n;const r=e.toFixed(this.fractionalDigits);const i=(n=(s=this.measurementOutcome)===null||s===void 0?void 0:s.isApproximate)!==null&&n!==void 0?n:false;return`${i?"~"+r:r} ${t.abbreviatedName}`}static get watchers(){return{distanceUnits:[{handleDistanceUnitsChanged:1}],angleUnits:[{handleAngleUnitsChanged:1}],measurementModel:[{handleMeasurementModelChanged:1}],resultTypes:[{handleResultTypesChanged:0}]}}static get style(){return x()}},[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]},undefined,{distanceUnits:[{handleDistanceUnitsChanged:1}],angleUnits:[{handleAngleUnitsChanged:1}],measurementModel:[{handleMeasurementModelChanged:1}],resultTypes:[{handleResultTypesChanged:0}]}]);function D(){if(typeof customElements==="undefined"){return}const e=["vertex-viewer-measurement-details"];e.forEach((e=>{switch(e){case"vertex-viewer-measurement-details":if(!customElements.get(s(e))){customElements.define(s(e),A)}break}}))}D();const F=A;const j=D;export{F as VertexViewerMeasurementDetails,j as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-measurement-details.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as t,t as e,p as i,H as n,d as s,e as r}from"./p-Bb32XUUS.js";import{v as a,a as o,p as h,l}from"./p-DDQcM-So.js";import{m as d}from"./p-B-ToCp8-.js";import{b as c,g as u}from"./p-bal2RLiw.js";import"./p-DTDKqbV2.js";import"./p-FRKLa468.js";import"./p-ux1ckSDN.js";import"./p-BoB09nlv.js";import{n as m,D as v}from"./p-BfAW7IWG.js";import{M as p}from"./p-COlcifvm.js";import{M as w}from"./p-CkjXRDNL.js";import{m as f}from"./p-Yfi0i5Kj.js";import{V as g}from"./p-BHAaIoH5.js";import{E as b,m as y}from"./p-CHdoymO5.js";import{d as C,g as E}from"./p-ux26QLbe.js";import{c as P}from"./p-C6gMOKYg.js";import{d as M}from"./p-B156bTbY.js";const x=16;const D=10;function k(t){return t.getBoundingClientRect()}class j{constructor(t,e,i,n){this.stencil=t;this.depthBuffer=e;this.viewport=i;this.camera=n}hitTest(t){const e=this.viewport.transformPointToFrame(t,this.depthBuffer);if(this.stencil!=null){const i=this.viewport.transformPointToFrame(t,this.stencil);return this.stencil.hitTest(i)||this.depthBuffer.hitTest(e)}else{return this.depthBuffer.hitTest(e)}}snapToNearestPixel(t,e){if(this.stencil!=null){const i=this.viewport.transformPointToFrame(t,this.stencil);const n=this.stencil.snapToNearestPixel(i,e);return this.viewport.transformPointToViewport(n,this.stencil)}else{return t}}transformPointToWorld(t,{ignoreHitTest:e=false}={}){const i=this.pickDepthBuffer(t);if(i!=null){return this.viewport.transformPointToWorldSpace(t,i)}else if(e){return this.viewport.transformPointToWorldSpace(t,this.depthBuffer)}}pickDepthBuffer(t){if(this.stencil!=null){const e=this.viewport.transformPointToFrame(t,this.stencil);if(this.stencil.hitTest(e)){return this.stencil.depthBuffer}}const e=this.viewport.transformPointToFrame(t,this.depthBuffer);return this.depthBuffer.hitTest(e)?this.depthBuffer:undefined}}class A{constructor(t){this.model=t}newMeasurement(t,e){const i=e.hitTester().transformPointToWorld(t);return i!=null?new L(t,i,this.model):undefined}editMeasurement(t){const e=this.model.getMeasurement();if(e==null){throw new Error("Cannot edit measurement. Measurement is empty.")}return t==="start"?new B(e,this.model):new T(e,this.model)}clearIndicator(){this.model.setIndicator(undefined)}moveIndicator(t,e){const i=e.hitTester().transformPointToWorld(t);this.model.setIndicator(i);return i!=null}}class I{constructor(){this.measurementChanged=new b;this.indicatorChanged=new b}static empty(){return new I}getMeasurement(){return this.measurement}setMeasurement(t){if(this.measurement!==t){this.measurement=t;this.measurementChanged.emit(t)}}setMeasurementFromValues(t,e,i){if(t!=null&&e!=null){const n=i?O(t,e):V(t,e);this.setMeasurement(n)}else{this.setMeasurement(undefined)}}onMeasurementChanged(t){return this.measurementChanged.on(t)}getIndicator(){return this.indicator}setIndicator(t){if(this.indicator!==t){this.indicator=t;this.indicatorChanged.emit(t)}}onIndicatorChanged(t){return this.indicatorChanged.on(t)}}class L{constructor(t,e,i){this.pt=t;this.world=e;this.model=i;this.hitWorldValid=true;this.preventUpdate=false}fetchStartIfMissing(t){if(this.pendingStart==null){this.pendingStart=this.fetchStart(t)}}async fetchStart(t){const e=await t.raycaster();const i=await H(e,this.pt);if(i==null){const e=t.hitTester().transformPointToWorld(this.pt);this.hitWorld=e;this.hitWorldValid=false}else{this.hitWorld=i;this.hitWorldValid=true}}update(t,e){var i;if(!this.preventUpdate){this.fetchStartIfMissing(e);const n=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const s=e.hitTester().hitTest(t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;if(n==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!this.hitWorldValid||!s){this.model.setIndicator(n);this.setMeasurement(V(r,n))}else{this.model.setIndicator(n);this.setMeasurement(O(r,n))}}}async finish(t,e){var i;this.preventUpdate=true;this.fetchStartIfMissing(e);await this.pendingStart;this.model.setIndicator(undefined);const n=await e.raycaster();const s=await H(n,t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;this.preventUpdate=false;if(s==null){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});if(i==null){throw new Error("Cannot complete new measurement interaction. End point is empty.")}return this.setMeasurement(V(r,i))}else if(!this.hitWorldValid){return this.setMeasurement(V(r,s))}else{return this.setMeasurement(O(r,s))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class S{constructor(t,e){this.measurement=t;this.model=e}update(t,e){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const n=e.hitTester().hitTest(t);if(i==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!n){this.model.setIndicator(i);this.setMeasurement(this.getInvalidMeasurement(i))}else{this.model.setIndicator(i);this.setMeasurement(this.getValidMeasurement(i))}}async finish(t,e){const i=await e.raycaster();const n=await H(i,t);this.model.setIndicator(undefined);if(n==null){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});if(i==null){throw new Error("Cannot complete edit measurement interaction. End point is empty.")}return this.setMeasurement(this.getInvalidMeasurement(i))}else{return this.setMeasurement(this.getValidMeasurement(n))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class B extends S{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return V(t,this.measurement.end)}getValidMeasurement(t){return O(t,this.measurement.end)}}class T extends S{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return V(this.measurement.start,t)}getValidMeasurement(t){return O(this.measurement.start,t)}}async function H(t,e){var i;const n=await t.hitItems(e);const[s]=(i=n===null||n===void 0?void 0:n.hits)!==null&&i!==void 0?i:[];if((s===null||s===void 0?void 0:s.hitPoint)!=null){const t=m(s.hitPoint);if(y.isInvalid(t)){throw new Error(`Invalid hit response [${t.errors.join(",")}]`)}return t}else return undefined}function O(t,e){return{start:t,end:e,distance:a.distance(t,e),valid:true}}function V(t,e){return{start:t,end:e,valid:false}}const U=({startPt:e,endPt:i,centerPt:n,indicatorPt:s,distance:r,anchorLabelOffset:a,lineCapLength:l,linePointerEvents:d,hideStartAnchor:u,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=e!=null&&i!=null?o.fromPoints(e,i):undefined;const f=w!=null&&e!=null&&a!=null?h.add(e,h.polar(-a,w)):undefined;const g=w!=null&&i!=null&&a!=null?h.add(i,h.polar(a,w)):undefined;return t("div",null,e!=null&&i!=null&&t("vertex-viewer-measurement-line",{class:P("line",{"hide-start-line-cap":u,"hide-end-line-cap":m}),start:e,end:i,capLength:l,pointerEvents:d}),!u&&e!=null&&t("div",{id:"start-anchor",class:"anchor anchor-start",style:{transform:c(e)},onPointerDown:v},t("slot",{name:"start-anchor"},t("div",{class:"anchor-placeholder"}))),!u&&f&&t("div",{class:"anchor-label anchor-label-start",style:{transform:c(f)}},t("slot",{name:"start-label"})),!m&&i!=null&&t("div",{id:"end-anchor",class:"anchor anchor-end",style:{transform:c(i)},onPointerDown:p},t("slot",{name:"end-anchor"},t("div",{class:"anchor-placeholder"}))),!m&&g&&t("div",{class:"anchor-label anchor-label-end",style:{transform:c(g)}},t("slot",{name:"end-label"})),n!=null&&t("div",{id:"label",class:"distance-label",style:{transform:c(n)}},r),s!=null&&t("div",{class:"indicator",style:{transform:c(s)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))};const R=()=>`: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 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( --viewer-measurement-distance-invalid-accent-color ) !important;--viewer-measurement-distance-contrast-color:var( --viewer-measurement-distance-invalid-contrast-color ) !important}.line{--viewer-measurement-line-stroke:var( --viewer-measurement-distance-contrast-color );--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:var( --viewer-measurement-distance-line-stroke-width );--viewer-measurement-line-fill:var( --viewer-measurement-distance-accent-color );--viewer-measurement-line-fill-width:var( --viewer-measurement-distance-line-fill-width );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}`;const F=3;const W=i(class e extends n{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.editBegin=s(this,"editBegin");this.editEnd=s(this,"editEnd");this.showAxisReferenceLines=false;this.snapDistance=x;this.units="millimeters";this.fractionalDigits=2;this.anchorLabelOffset=20;this.lineCapLength=D;this.mode="";this.interactingAnchor="none";this.invalid=false;this.measurementModel=new p;this.viewport=new g(0,0);this.interactionCount=0;this.invalidateStateCounter=0;this.stateMap={};this.measurementUnits=new v(this.units);this.model=I.empty();this.controller=new A(this.model);this.overlays=new w;this.isUserInteractingWithModel=false;this.handleFrameDrawn=()=>{this.invalidateState()};this.clearIndicator=()=>{this.controller.clearIndicator()};this.updateStartAnchor=async t=>{await this.getStencilBuffer();if(this.interactionCount===0){const e=u(t,this.elementBounds);const i=this.snapPoint(e,t);await this.updateIndicator(i)}};this.newMeasurement=t=>{if(this.interactionCount===0&&t.button===0){const e=t=>{const e=()=>{window.removeEventListener("pointerup",i);window.removeEventListener("pointermove",n)};const i=async()=>{e();t()};const n=t=>{if(t.buttons>0){e()}};window.addEventListener("pointermove",n);window.addEventListener("pointerup",i)};const i=t=>{let e=h.create(0,0);const i=i=>{const n=h.distance(e,u(i,this.elementBounds));if(n>=F){t()}};const n=()=>{window.removeEventListener("pointermove",i);window.removeEventListener("pointerup",s)};const s=()=>n();const r=t=>{e=u(t,this.elementBounds);window.addEventListener("pointermove",i);window.addEventListener("pointerup",s)};window.addEventListener("pointerdown",r);return{dispose:()=>window.removeEventListener("pointerdown",r)}};const n=()=>{const t=i((()=>{var t;this.isUserInteractingWithModel=true;(t=this.stateMap.hoverCursor)===null||t===void 0?void 0:t.dispose()}));const e=()=>{window.removeEventListener("pointermove",n);window.removeEventListener("pointerup",s);t.dispose()};const n=this.createInteractionMoveHandler();const s=async t=>{var i;if(t.button===0){if(this.isUserInteractingWithModel){this.isUserInteractingWithModel=false}else{const n=this.getHitProvider();if(n!=null){const s=u(t,this.elementBounds);const r=this.snapPoint(s,t);await((i=this.interaction)===null||i===void 0?void 0:i.finish(r,n));e();this.updateMeasurementPropsFromModel();this.endEditing()}}}};this.beginEditing("replace","end");this.newInteractionHandler={dispose:e};window.addEventListener("pointermove",n);window.addEventListener("pointerup",s)};const s=this.getHitProvider();if(s!=null){const i=u(t,this.elementBounds);const r=this.snapPoint(i,t);this.interaction=this.controller.newMeasurement(r,s);if(this.interaction!=null){e(n)}}}}}async computeElementMetrics(){var t,e,i;const n=(t=this.hostEl.shadowRoot)===null||t===void 0?void 0:t.getElementById("start-anchor");const s=(e=this.hostEl.shadowRoot)===null||e===void 0?void 0:e.getElementById("end-anchor");const r=(i=this.hostEl.shadowRoot)===null||i===void 0?void 0:i.getElementById("label");if(n!=null&&s!=null&&r!=null){return{startAnchor:n.getBoundingClientRect(),endAnchor:s.getBoundingClientRect(),label:r.getBoundingClientRect()}}else{return undefined}}connectedCallback(){this.setDepthBuffers()}disconnectedCallback(){var t,e;(t=this.stateMap.hoverCursor)===null||t===void 0?void 0:t.dispose();(e=this.newInteractionHandler)===null||e===void 0?void 0:e.dispose();this.resetDepthBuffers()}async componentWillLoad(){this.updatePropsFromJson();this.model.setMeasurementFromValues(this.start,this.end,!this.invalid);await this.getStencilBuffer();this.updateViewport();this.setDepthBuffers();await this.handleViewerChanged(this.viewer);await this.handleModeChanged();await this.computePropsAndState();this.model.onIndicatorChanged((t=>{this.indicatorPt=t}))}componentDidLoad(){const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl)}async componentWillUpdate(){await this.computePropsAndState()}render(){return t(r,{key:"58113224139c37a54bf9329ed27e6a8983d5cccd"},this.showAxisReferenceLines&&t("vertex-viewer-measurement-overlays",{key:"d2166c4a965761f472f5b3323844d82980baa29f",measurementOverlays:this.overlays,viewer:this.viewer}),this.renderMeasurement())}renderMeasurement(){const e=this.computeElementPositions();const{startPt:i,endPt:n,labelPt:s,indicatorPt:r,hideStart:a,hideEnd:o}=e;const h=this.formatDistance(this.distance);if(this.mode==="edit"||this.mode==="replace"){return t(U,{startPt:i,endPt:n,centerPt:s,indicatorPt:r,distance:h,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,hideStartAnchor:a,hideEndAnchor:o,onStartAnchorPointerDown:this.handleEditAnchor("start"),onEndAnchorPointerDown:this.handleEditAnchor("end")})}else{return t(U,{startPt:i,endPt:n,centerPt:s,indicatorPt:this.indicatorPt,distance:h,hideStartAnchor:a,hideEndAnchor:o,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,linePointerEvents:"painted"})}}async handleViewerChanged(t,e){if(e!=null){e.removeEventListener("frameDrawn",this.handleFrameDrawn);await this.removeInteractionListeners(e)}if(t!=null){t.addEventListener("frameDrawn",this.handleFrameDrawn);await this.addInteractionListeners(t)}}handleUnitsChanged(){this.measurementUnits=new v(this.units)}handleCameraChanged(){this.updateCamera()}async handleModeChanged(){var t;if(this.mode===""){(t=this.stateMap.hoverCursor)===null||t===void 0?void 0:t.dispose()}if(this.viewer!=null){await this.removeInteractionListeners(this.viewer);await this.addInteractionListeners(this.viewer)}}handleStartChanged(){this.updateInteractionModel()}handleEndChanged(){this.updateInteractionModel()}handleInvalidChanged(){this.updateInteractionModel()}async computePropsAndState(){this.updateCamera();await this.updateDepthBuffer();this.updateMeasurementPropsFromModel();this.updateOverlays()}updateOverlays(){var t;(t=this.overlay)===null||t===void 0?void 0:t.dispose();if(this.showAxisReferenceLines&&this.interactionCount===0&&!this.invalid&&this.start!=null&&this.end!=null){this.overlay=this.overlays.addDistanceVector(this.start,this.end)}}async setCursor(t){var e,i;(e=this.stateMap.hoverCursor)===null||e===void 0?void 0:e.dispose();if(!this.isUserInteractingWithModel){this.stateMap.hoverCursor=await((i=this.viewer)===null||i===void 0?void 0:i.addCursor(t))}}computeElementPositions(){if(this.mode==="replace"){return this.computeReplaceElementPositions()}else{return this.computeEditOrViewElementPositions()}}computeEditOrViewElementPositions(){const t=this.model.getMeasurement();if(this.internalCamera!=null&&t!=null){return this.computeLineElementPositions(l.create(t))}else{return{}}}computeReplaceElementPositions(){if(this.internalCamera!=null){const t=this.model.getMeasurement();const e=t!=null?this.computeLineElementPositions(l.create(t)):{};const i=this.indicatorPt!=null?{indicatorPt:this.viewport.transformWorldToViewport(this.indicatorPt,this.internalCamera.projectionViewMatrix)}:{};return{...e,...i}}else{return{}}}computeLineElementPositions(t){if(this.internalCamera!=null){return E(t,this.interactingAnchor,{viewport:this.viewport,camera:this.internalCamera})}else{return{}}}updateCamera(){var t,e;this.internalCamera=this.camera||((e=(t=this.viewer)===null||t===void 0?void 0:t.frame)===null||e===void 0?void 0:e.scene.camera)}async updateDepthBuffer(){var t,e;this.stateMap.depthBuffer=await((e=(t=this.viewer)===null||t===void 0?void 0:t.frame)===null||e===void 0?void 0:e.depthBuffer())}updateViewport(){const t=k(this.hostEl);this.viewport=new g(t.width,t.height);this.elementBounds=t}updatePropsFromJson(){var t,e;this.start=z((t=this.startJson)!==null&&t!==void 0?t:this.start);this.end=z((e=this.endJson)!==null&&e!==void 0?e:this.end)}updateInteractionModel(){this.model.setMeasurementFromValues(this.start,this.end,!this.invalid)}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}async addInteractionListeners(t){const e=await t.getInteractionTarget_DEPRECATED();if(this.mode==="replace"){e.addEventListener("pointermove",this.updateStartAnchor);e.addEventListener("pointerdown",this.newMeasurement);e.addEventListener("pointerleave",this.clearIndicator)}}async removeInteractionListeners(t){const e=await t.getInteractionTarget_DEPRECATED();e.removeEventListener("pointermove",this.updateStartAnchor);e.removeEventListener("pointerdown",this.newMeasurement);e.removeEventListener("pointerleave",this.clearIndicator)}handleEditAnchor(t){if(this.mode==="edit"||this.mode==="replace"){const e=this.createInteractionMoveHandler();const i=async t=>{var n;const s=this.getHitProvider();if(s!=null){window.removeEventListener("pointermove",e);window.removeEventListener("pointerup",i);const r=u(t,this.elementBounds);const a=this.snapPoint(r,t);await((n=this.interaction)===null||n===void 0?void 0:n.finish(a,s));this.updateMeasurementPropsFromModel();this.endEditing()}};return async n=>{await this.getStencilBuffer();if(n.button===0){this.beginEditing("edit",t);this.interaction=this.controller.editMeasurement(t);window.addEventListener("pointermove",e);window.addEventListener("pointerup",i)}}}}createInteractionMoveHandler(){return async t=>{var e;const i=this.getHitProvider();if(this.elementBounds!=null&&i!=null){t.preventDefault();await this.getStencilBuffer();const n=u(t,this.elementBounds);const s=this.snapPoint(n,t);(e=this.interaction)===null||e===void 0?void 0:e.update(s,i);this.updateMeasurementPropsFromModel()}}}async getStencilBuffer(){var t;const e=await((t=this.viewer)===null||t===void 0?void 0:t.stencilBuffer.latestAfterInteraction());this.stateMap.stencil=e}snapPoint(t,e){const i=this.getHitProvider();if(i!=null&&!e.shiftKey){const e=Math.max(0,this.snapDistance);return i.hitTester().snapToNearestPixel(t,e)}return t}formatDistance(t){const e=t!=null?this.measurementUnits.convertWorldValueToReal(t):undefined;if(this.labelFormatter!=null){return this.labelFormatter(e)}else{const t=this.measurementUnits.unit.abbreviatedName;return e==null?"---":`~${e.toFixed(this.fractionalDigits)} ${t}`}}beginEditing(t,e){if(this.interactionCount===0){this.interactingAnchor=e;this.editBegin.emit({type:t,anchor:e})}this.interactionCount=this.interactionCount+1}endEditing(){if(this.interactionCount===1){const t=this.model.getMeasurement();this.interactingAnchor="none";this.updateMeasurementModel();if(t!=null){this.editEnd.emit(t)}}this.interactionCount=this.interactionCount-1}updateMeasurementModel(){this.measurementModel.clearOutcome();if(!this.invalid&&this.start!=null&&this.end!=null){this.measurementModel.setOutcome({isApproximate:true,results:[f(this.start,this.end)]})}}getHitProvider(){if(this.hitProvider==null){const t=this.getHitTester();const e=this.viewer;if(e!=null&&t!=null){return{hitTester:()=>t,raycaster:async()=>(await e.scene()).raycaster()}}}else return this.hitProvider}getHitTester(){const{stencil:t,depthBuffer:e}=this.stateMap;if(e!=null){return new j(t,e,this.viewport,this.internalCamera)}}updateMeasurementPropsFromModel(){const t=this.model.getMeasurement();this.start=t===null||t===void 0?void 0:t.start;this.end=t===null||t===void 0?void 0:t.end;this.distance=t===null||t===void 0?void 0:t.distance;this.invalid=t!=null&&!t.valid}async updateIndicator(t){var e;const i=this.getHitProvider();const n=i==null||!this.controller.moveIndicator(t,i);if(n){(e=this.stateMap.hoverCursor)===null||e===void 0?void 0:e.dispose()}else{await this.setCursor(d)}}setDepthBuffers(){if(this.mode!=null&&this.viewer!=null&&this.viewer.depthBuffers==null){this.stateMap.shouldClearDepthBuffers=true;this.viewer.depthBuffers="final"}}resetDepthBuffers(){if(this.stateMap.shouldClearDepthBuffers&&this.viewer!=null){this.viewer.depthBuffers=undefined;this.stateMap.shouldClearDepthBuffers=undefined}}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],units:[{handleUnitsChanged:1}],camera:[{handleCameraChanged:0}],mode:[{handleModeChanged:0}],start:[{handleStartChanged:0}],end:[{handleEndChanged:0}],invalid:[{handleInvalidChanged:0}]}}static get style(){return R()}},[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]},undefined,{viewer:[{handleViewerChanged:0}],units:[{handleUnitsChanged:1}],camera:[{handleCameraChanged:0}],mode:[{handleModeChanged:0}],start:[{handleStartChanged:0}],end:[{handleEndChanged:0}],invalid:[{handleInvalidChanged:0}]}]);function z(t){return typeof t==="string"?a.fromJson(t):t}function K(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-measurement-distance","vertex-viewer-measurement-line","vertex-viewer-measurement-overlays"];t.forEach((t=>{switch(t){case"vertex-viewer-measurement-distance":if(!customElements.get(e(t))){customElements.define(e(t),W)}break;case"vertex-viewer-measurement-line":if(!customElements.get(e(t))){M()}break;case"vertex-viewer-measurement-overlays":if(!customElements.get(e(t))){C()}break}}))}K();const J=W;const N=K;export{J as VertexViewerMeasurementDistance,N as defineCustomElement};
4
+ import{h as t,t as e,p as i,H as n,d as s,e as r}from"./p-Bb32XUUS.js";import{v as a,a as o,p as h,l}from"./p-DDQcM-So.js";import{m as d}from"./p-B-ToCp8-.js";import{b as c,g as u}from"./p-bal2RLiw.js";import"./p-D12q-fpW.js";import"./p-FRKLa468.js";import"./p-ux1ckSDN.js";import"./p-BoB09nlv.js";import{n as m,D as v}from"./p-B9R0QWr4.js";import{M as p}from"./p-COlcifvm.js";import{M as w}from"./p-CkjXRDNL.js";import{m as f}from"./p-Yfi0i5Kj.js";import{V as g}from"./p-BHAaIoH5.js";import{E as b,m as y}from"./p-CHdoymO5.js";import{d as C,g as E}from"./p-BOJJZ1cN.js";import{c as P}from"./p-C6gMOKYg.js";import{d as M}from"./p-B156bTbY.js";const x=16;const k=10;function D(t){return t.getBoundingClientRect()}class j{constructor(t,e,i,n){this.stencil=t;this.depthBuffer=e;this.viewport=i;this.camera=n}hitTest(t){const e=this.viewport.transformPointToFrame(t,this.depthBuffer);if(this.stencil!=null){const i=this.viewport.transformPointToFrame(t,this.stencil);return this.stencil.hitTest(i)||this.depthBuffer.hitTest(e)}else{return this.depthBuffer.hitTest(e)}}snapToNearestPixel(t,e){if(this.stencil!=null){const i=this.viewport.transformPointToFrame(t,this.stencil);const n=this.stencil.snapToNearestPixel(i,e);return this.viewport.transformPointToViewport(n,this.stencil)}else{return t}}transformPointToWorld(t,{ignoreHitTest:e=false}={}){const i=this.pickDepthBuffer(t);if(i!=null){return this.viewport.transformPointToWorldSpace(t,i)}else if(e){return this.viewport.transformPointToWorldSpace(t,this.depthBuffer)}}pickDepthBuffer(t){if(this.stencil!=null){const e=this.viewport.transformPointToFrame(t,this.stencil);if(this.stencil.hitTest(e)){return this.stencil.depthBuffer}}const e=this.viewport.transformPointToFrame(t,this.depthBuffer);return this.depthBuffer.hitTest(e)?this.depthBuffer:undefined}}class A{constructor(t){this.model=t}newMeasurement(t,e){const i=e.hitTester().transformPointToWorld(t);return i!=null?new L(t,i,this.model):undefined}editMeasurement(t){const e=this.model.getMeasurement();if(e==null){throw new Error("Cannot edit measurement. Measurement is empty.")}return t==="start"?new B(e,this.model):new O(e,this.model)}clearIndicator(){this.model.setIndicator(undefined)}moveIndicator(t,e){const i=e.hitTester().transformPointToWorld(t);this.model.setIndicator(i);return i!=null}}class I{constructor(){this.measurementChanged=new b;this.indicatorChanged=new b}static empty(){return new I}getMeasurement(){return this.measurement}setMeasurement(t){if(this.measurement!==t){this.measurement=t;this.measurementChanged.emit(t)}}setMeasurementFromValues(t,e,i){if(t!=null&&e!=null){const n=i?H(t,e):V(t,e);this.setMeasurement(n)}else{this.setMeasurement(undefined)}}onMeasurementChanged(t){return this.measurementChanged.on(t)}getIndicator(){return this.indicator}setIndicator(t){if(this.indicator!==t){this.indicator=t;this.indicatorChanged.emit(t)}}onIndicatorChanged(t){return this.indicatorChanged.on(t)}}class L{constructor(t,e,i){this.pt=t;this.world=e;this.model=i;this.hitWorldValid=true;this.preventUpdate=false}fetchStartIfMissing(t){if(this.pendingStart==null){this.pendingStart=this.fetchStart(t)}}async fetchStart(t){const e=await t.raycaster();const i=await T(e,this.pt);if(i==null){const e=t.hitTester().transformPointToWorld(this.pt);this.hitWorld=e;this.hitWorldValid=false}else{this.hitWorld=i;this.hitWorldValid=true}}update(t,e){var i;if(!this.preventUpdate){this.fetchStartIfMissing(e);const n=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const s=e.hitTester().hitTest(t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;if(n==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!this.hitWorldValid||!s){this.model.setIndicator(n);this.setMeasurement(V(r,n))}else{this.model.setIndicator(n);this.setMeasurement(H(r,n))}}}async finish(t,e){var i;this.preventUpdate=true;this.fetchStartIfMissing(e);await this.pendingStart;this.model.setIndicator(undefined);const n=await e.raycaster();const s=await T(n,t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;this.preventUpdate=false;if(s==null){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});if(i==null){throw new Error("Cannot complete new measurement interaction. End point is empty.")}return this.setMeasurement(V(r,i))}else if(!this.hitWorldValid){return this.setMeasurement(V(r,s))}else{return this.setMeasurement(H(r,s))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class S{constructor(t,e){this.measurement=t;this.model=e}update(t,e){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const n=e.hitTester().hitTest(t);if(i==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!n){this.model.setIndicator(i);this.setMeasurement(this.getInvalidMeasurement(i))}else{this.model.setIndicator(i);this.setMeasurement(this.getValidMeasurement(i))}}async finish(t,e){const i=await e.raycaster();const n=await T(i,t);this.model.setIndicator(undefined);if(n==null){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});if(i==null){throw new Error("Cannot complete edit measurement interaction. End point is empty.")}return this.setMeasurement(this.getInvalidMeasurement(i))}else{return this.setMeasurement(this.getValidMeasurement(n))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class B extends S{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return V(t,this.measurement.end)}getValidMeasurement(t){return H(t,this.measurement.end)}}class O extends S{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return V(this.measurement.start,t)}getValidMeasurement(t){return H(this.measurement.start,t)}}async function T(t,e){var i;const n=await t.hitItems(e);const[s]=(i=n===null||n===void 0?void 0:n.hits)!==null&&i!==void 0?i:[];if((s===null||s===void 0?void 0:s.hitPoint)!=null){const t=m(s.hitPoint);if(y.isInvalid(t)){throw new Error(`Invalid hit response [${t.errors.join(",")}]`)}return t}else return undefined}function H(t,e){return{start:t,end:e,distance:a.distance(t,e),valid:true}}function V(t,e){return{start:t,end:e,valid:false}}const R=({startPt:e,endPt:i,centerPt:n,indicatorPt:s,distance:r,anchorLabelOffset:a,lineCapLength:l,linePointerEvents:d,hideStartAnchor:u,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=e!=null&&i!=null?o.fromPoints(e,i):undefined;const f=w!=null&&e!=null&&a!=null?h.add(e,h.polar(-a,w)):undefined;const g=w!=null&&i!=null&&a!=null?h.add(i,h.polar(a,w)):undefined;return t("div",null,e!=null&&i!=null&&t("vertex-viewer-measurement-line",{class:P("line",{"hide-start-line-cap":u,"hide-end-line-cap":m}),start:e,end:i,capLength:l,pointerEvents:d}),!u&&e!=null&&t("div",{id:"start-anchor",class:"anchor anchor-start",style:{transform:c(e)},onPointerDown:v},t("slot",{name:"start-anchor"},t("div",{class:"anchor-placeholder"}))),!u&&f&&t("div",{class:"anchor-label anchor-label-start",style:{transform:c(f)}},t("slot",{name:"start-label"})),!m&&i!=null&&t("div",{id:"end-anchor",class:"anchor anchor-end",style:{transform:c(i)},onPointerDown:p},t("slot",{name:"end-anchor"},t("div",{class:"anchor-placeholder"}))),!m&&g&&t("div",{class:"anchor-label anchor-label-end",style:{transform:c(g)}},t("slot",{name:"end-label"})),n!=null&&t("div",{id:"label",class:"distance-label",style:{transform:c(n)}},r),s!=null&&t("div",{class:"indicator",style:{transform:c(s)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))};const U=()=>`: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 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( --viewer-measurement-distance-invalid-accent-color ) !important;--viewer-measurement-distance-contrast-color:var( --viewer-measurement-distance-invalid-contrast-color ) !important}.line{--viewer-measurement-line-stroke:var( --viewer-measurement-distance-contrast-color );--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:var( --viewer-measurement-distance-line-stroke-width );--viewer-measurement-line-fill:var( --viewer-measurement-distance-accent-color );--viewer-measurement-line-fill-width:var( --viewer-measurement-distance-line-fill-width );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}`;const F=3;const J=i(class e extends n{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.editBegin=s(this,"editBegin");this.editEnd=s(this,"editEnd");this.showAxisReferenceLines=false;this.snapDistance=x;this.units="millimeters";this.fractionalDigits=2;this.anchorLabelOffset=20;this.lineCapLength=k;this.mode="";this.interactingAnchor="none";this.invalid=false;this.measurementModel=new p;this.viewport=new g(0,0);this.interactionCount=0;this.invalidateStateCounter=0;this.stateMap={};this.measurementUnits=new v(this.units);this.model=I.empty();this.controller=new A(this.model);this.overlays=new w;this.isUserInteractingWithModel=false;this.handleFrameDrawn=()=>{this.invalidateState()};this.clearIndicator=()=>{this.controller.clearIndicator()};this.updateStartAnchor=async t=>{await this.getStencilBuffer();if(this.interactionCount===0){const e=u(t,this.elementBounds);const i=this.snapPoint(e,t);await this.updateIndicator(i)}};this.newMeasurement=t=>{if(this.interactionCount===0&&t.button===0){const e=t=>{const e=()=>{window.removeEventListener("pointerup",i);window.removeEventListener("pointermove",n)};const i=async()=>{e();t()};const n=t=>{if(t.buttons>0){e()}};window.addEventListener("pointermove",n);window.addEventListener("pointerup",i)};const i=t=>{let e=h.create(0,0);const i=i=>{const n=h.distance(e,u(i,this.elementBounds));if(n>=F){t()}};const n=()=>{window.removeEventListener("pointermove",i);window.removeEventListener("pointerup",s)};const s=()=>n();const r=t=>{e=u(t,this.elementBounds);window.addEventListener("pointermove",i);window.addEventListener("pointerup",s)};window.addEventListener("pointerdown",r);return{dispose:()=>window.removeEventListener("pointerdown",r)}};const n=()=>{const t=i((()=>{var t;this.isUserInteractingWithModel=true;(t=this.stateMap.hoverCursor)===null||t===void 0?void 0:t.dispose()}));const e=()=>{window.removeEventListener("pointermove",n);window.removeEventListener("pointerup",s);t.dispose()};const n=this.createInteractionMoveHandler();const s=async t=>{var i;if(t.button===0){if(this.isUserInteractingWithModel){this.isUserInteractingWithModel=false}else{const n=this.getHitProvider();if(n!=null){const s=u(t,this.elementBounds);const r=this.snapPoint(s,t);await((i=this.interaction)===null||i===void 0?void 0:i.finish(r,n));e();this.updateMeasurementPropsFromModel();this.endEditing()}}}};this.beginEditing("replace","end");this.newInteractionHandler={dispose:e};window.addEventListener("pointermove",n);window.addEventListener("pointerup",s)};const s=this.getHitProvider();if(s!=null){const i=u(t,this.elementBounds);const r=this.snapPoint(i,t);this.interaction=this.controller.newMeasurement(r,s);if(this.interaction!=null){e(n)}}}}}async computeElementMetrics(){var t,e,i;const n=(t=this.hostEl.shadowRoot)===null||t===void 0?void 0:t.getElementById("start-anchor");const s=(e=this.hostEl.shadowRoot)===null||e===void 0?void 0:e.getElementById("end-anchor");const r=(i=this.hostEl.shadowRoot)===null||i===void 0?void 0:i.getElementById("label");if(n!=null&&s!=null&&r!=null){return{startAnchor:n.getBoundingClientRect(),endAnchor:s.getBoundingClientRect(),label:r.getBoundingClientRect()}}else{return undefined}}connectedCallback(){this.setDepthBuffers()}disconnectedCallback(){var t,e;(t=this.stateMap.hoverCursor)===null||t===void 0?void 0:t.dispose();(e=this.newInteractionHandler)===null||e===void 0?void 0:e.dispose();this.resetDepthBuffers()}async componentWillLoad(){this.updatePropsFromJson();this.model.setMeasurementFromValues(this.start,this.end,!this.invalid);await this.getStencilBuffer();this.updateViewport();this.setDepthBuffers();await this.handleViewerChanged(this.viewer);await this.handleModeChanged();await this.computePropsAndState();this.model.onIndicatorChanged((t=>{this.indicatorPt=t}))}componentDidLoad(){const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl)}async componentWillUpdate(){await this.computePropsAndState()}render(){return t(r,{key:"58113224139c37a54bf9329ed27e6a8983d5cccd"},this.showAxisReferenceLines&&t("vertex-viewer-measurement-overlays",{key:"d2166c4a965761f472f5b3323844d82980baa29f",measurementOverlays:this.overlays,viewer:this.viewer}),this.renderMeasurement())}renderMeasurement(){const e=this.computeElementPositions();const{startPt:i,endPt:n,labelPt:s,indicatorPt:r,hideStart:a,hideEnd:o}=e;const h=this.formatDistance(this.distance);if(this.mode==="edit"||this.mode==="replace"){return t(R,{startPt:i,endPt:n,centerPt:s,indicatorPt:r,distance:h,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,hideStartAnchor:a,hideEndAnchor:o,onStartAnchorPointerDown:this.handleEditAnchor("start"),onEndAnchorPointerDown:this.handleEditAnchor("end")})}else{return t(R,{startPt:i,endPt:n,centerPt:s,indicatorPt:this.indicatorPt,distance:h,hideStartAnchor:a,hideEndAnchor:o,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,linePointerEvents:"painted"})}}async handleViewerChanged(t,e){if(e!=null){e.removeEventListener("frameDrawn",this.handleFrameDrawn);await this.removeInteractionListeners(e)}if(t!=null){t.addEventListener("frameDrawn",this.handleFrameDrawn);await this.addInteractionListeners(t)}}handleUnitsChanged(){this.measurementUnits=new v(this.units)}handleCameraChanged(){this.updateCamera()}async handleModeChanged(){var t;if(this.mode===""){(t=this.stateMap.hoverCursor)===null||t===void 0?void 0:t.dispose()}if(this.viewer!=null){await this.removeInteractionListeners(this.viewer);await this.addInteractionListeners(this.viewer)}}handleStartChanged(){this.updateInteractionModel()}handleEndChanged(){this.updateInteractionModel()}handleInvalidChanged(){this.updateInteractionModel()}async computePropsAndState(){this.updateCamera();await this.updateDepthBuffer();this.updateMeasurementPropsFromModel();this.updateOverlays()}updateOverlays(){var t;(t=this.overlay)===null||t===void 0?void 0:t.dispose();if(this.showAxisReferenceLines&&this.interactionCount===0&&!this.invalid&&this.start!=null&&this.end!=null){this.overlay=this.overlays.addDistanceVector(this.start,this.end)}}async setCursor(t){var e,i;(e=this.stateMap.hoverCursor)===null||e===void 0?void 0:e.dispose();if(!this.isUserInteractingWithModel){this.stateMap.hoverCursor=await((i=this.viewer)===null||i===void 0?void 0:i.addCursor(t))}}computeElementPositions(){if(this.mode==="replace"){return this.computeReplaceElementPositions()}else{return this.computeEditOrViewElementPositions()}}computeEditOrViewElementPositions(){const t=this.model.getMeasurement();if(this.internalCamera!=null&&t!=null){return this.computeLineElementPositions(l.create(t))}else{return{}}}computeReplaceElementPositions(){if(this.internalCamera!=null){const t=this.model.getMeasurement();const e=t!=null?this.computeLineElementPositions(l.create(t)):{};const i=this.indicatorPt!=null?{indicatorPt:this.viewport.transformWorldToViewport(this.indicatorPt,this.internalCamera.projectionViewMatrix)}:{};return{...e,...i}}else{return{}}}computeLineElementPositions(t){if(this.internalCamera!=null){return E(t,this.interactingAnchor,{viewport:this.viewport,camera:this.internalCamera})}else{return{}}}updateCamera(){var t,e;this.internalCamera=this.camera||((e=(t=this.viewer)===null||t===void 0?void 0:t.frame)===null||e===void 0?void 0:e.scene.camera)}async updateDepthBuffer(){var t,e;this.stateMap.depthBuffer=await((e=(t=this.viewer)===null||t===void 0?void 0:t.frame)===null||e===void 0?void 0:e.depthBuffer())}updateViewport(){const t=D(this.hostEl);this.viewport=new g(t.width,t.height);this.elementBounds=t}updatePropsFromJson(){var t,e;this.start=W((t=this.startJson)!==null&&t!==void 0?t:this.start);this.end=W((e=this.endJson)!==null&&e!==void 0?e:this.end)}updateInteractionModel(){this.model.setMeasurementFromValues(this.start,this.end,!this.invalid)}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}async addInteractionListeners(t){const e=await t.getInteractionTarget_DEPRECATED();if(this.mode==="replace"){e.addEventListener("pointermove",this.updateStartAnchor);e.addEventListener("pointerdown",this.newMeasurement);e.addEventListener("pointerleave",this.clearIndicator)}}async removeInteractionListeners(t){const e=await t.getInteractionTarget_DEPRECATED();e.removeEventListener("pointermove",this.updateStartAnchor);e.removeEventListener("pointerdown",this.newMeasurement);e.removeEventListener("pointerleave",this.clearIndicator)}handleEditAnchor(t){if(this.mode==="edit"||this.mode==="replace"){const e=this.createInteractionMoveHandler();const i=async t=>{var n;const s=this.getHitProvider();if(s!=null){window.removeEventListener("pointermove",e);window.removeEventListener("pointerup",i);const r=u(t,this.elementBounds);const a=this.snapPoint(r,t);await((n=this.interaction)===null||n===void 0?void 0:n.finish(a,s));this.updateMeasurementPropsFromModel();this.endEditing()}};return async n=>{await this.getStencilBuffer();if(n.button===0){this.beginEditing("edit",t);this.interaction=this.controller.editMeasurement(t);window.addEventListener("pointermove",e);window.addEventListener("pointerup",i)}}}}createInteractionMoveHandler(){return async t=>{var e;const i=this.getHitProvider();if(this.elementBounds!=null&&i!=null){t.preventDefault();await this.getStencilBuffer();const n=u(t,this.elementBounds);const s=this.snapPoint(n,t);(e=this.interaction)===null||e===void 0?void 0:e.update(s,i);this.updateMeasurementPropsFromModel()}}}async getStencilBuffer(){var t;const e=await((t=this.viewer)===null||t===void 0?void 0:t.stencilBuffer.latestAfterInteraction());this.stateMap.stencil=e}snapPoint(t,e){const i=this.getHitProvider();if(i!=null&&!e.shiftKey){const e=Math.max(0,this.snapDistance);return i.hitTester().snapToNearestPixel(t,e)}return t}formatDistance(t){const e=t!=null?this.measurementUnits.convertWorldValueToReal(t):undefined;if(this.labelFormatter!=null){return this.labelFormatter(e)}else{const t=this.measurementUnits.unit.abbreviatedName;return e==null?"---":`~${e.toFixed(this.fractionalDigits)} ${t}`}}beginEditing(t,e){if(this.interactionCount===0){this.interactingAnchor=e;this.editBegin.emit({type:t,anchor:e})}this.interactionCount=this.interactionCount+1}endEditing(){if(this.interactionCount===1){const t=this.model.getMeasurement();this.interactingAnchor="none";this.updateMeasurementModel();if(t!=null){this.editEnd.emit(t)}}this.interactionCount=this.interactionCount-1}updateMeasurementModel(){this.measurementModel.clearOutcome();if(!this.invalid&&this.start!=null&&this.end!=null){this.measurementModel.setOutcome({isApproximate:true,results:[f(this.start,this.end)]})}}getHitProvider(){if(this.hitProvider==null){const t=this.getHitTester();const e=this.viewer;if(e!=null&&t!=null){return{hitTester:()=>t,raycaster:async()=>(await e.scene()).raycaster()}}}else return this.hitProvider}getHitTester(){const{stencil:t,depthBuffer:e}=this.stateMap;if(e!=null){return new j(t,e,this.viewport,this.internalCamera)}}updateMeasurementPropsFromModel(){const t=this.model.getMeasurement();this.start=t===null||t===void 0?void 0:t.start;this.end=t===null||t===void 0?void 0:t.end;this.distance=t===null||t===void 0?void 0:t.distance;this.invalid=t!=null&&!t.valid}async updateIndicator(t){var e;const i=this.getHitProvider();const n=i==null||!this.controller.moveIndicator(t,i);if(n){(e=this.stateMap.hoverCursor)===null||e===void 0?void 0:e.dispose()}else{await this.setCursor(d)}}setDepthBuffers(){if(this.mode!=null&&this.viewer!=null&&this.viewer.depthBuffers==null){this.stateMap.shouldClearDepthBuffers=true;this.viewer.depthBuffers="final"}}resetDepthBuffers(){if(this.stateMap.shouldClearDepthBuffers&&this.viewer!=null){this.viewer.depthBuffers=undefined;this.stateMap.shouldClearDepthBuffers=undefined}}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],units:[{handleUnitsChanged:1}],camera:[{handleCameraChanged:0}],mode:[{handleModeChanged:0}],start:[{handleStartChanged:0}],end:[{handleEndChanged:0}],invalid:[{handleInvalidChanged:0}]}}static get style(){return U()}},[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]},undefined,{viewer:[{handleViewerChanged:0}],units:[{handleUnitsChanged:1}],camera:[{handleCameraChanged:0}],mode:[{handleModeChanged:0}],start:[{handleStartChanged:0}],end:[{handleEndChanged:0}],invalid:[{handleInvalidChanged:0}]}]);function W(t){return typeof t==="string"?a.fromJson(t):t}function z(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-measurement-distance","vertex-viewer-measurement-line","vertex-viewer-measurement-overlays"];t.forEach((t=>{switch(t){case"vertex-viewer-measurement-distance":if(!customElements.get(e(t))){customElements.define(e(t),J)}break;case"vertex-viewer-measurement-line":if(!customElements.get(e(t))){M()}break;case"vertex-viewer-measurement-overlays":if(!customElements.get(e(t))){C()}break}}))}z();const N=J;const K=z;export{N as VertexViewerMeasurementDistance,K as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-measurement-distance.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{V as o,d as s}from"./p-ux26QLbe.js";const t=o;const p=s;export{t as VertexViewerMeasurementOverlays,p as defineCustomElement};
4
+ import{V as o,d as s}from"./p-BOJJZ1cN.js";const t=o;const c=s;export{t as VertexViewerMeasurementOverlays,c as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-measurement-overlays.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{t as e,p as t,H as s,h as i,e as n}from"./p-Bb32XUUS.js";import{s as r}from"./p-B2_E6tqs.js";import{p as a}from"./p-CCPuHP2m.js";import{a as o,M as l}from"./p-C9y2eVBq.js";import"./p-BoB09nlv.js";import"./p-DTDKqbV2.js";import"./p-FRKLa468.js";import{E as h}from"./p-BfAW7IWG.js";import{M as d}from"./p-COlcifvm.js";import{M as m}from"./p-CkjXRDNL.js";import{p as u}from"./p-DDQcM-So.js";import{a as p}from"./p-B-ToCp8-.js";import{g as c}from"./p-bal2RLiw.js";import{E as v}from"./p-CFus3r7d.js";import{d as f}from"./p-B156bTbY.js";import{d as w}from"./p-ux26QLbe.js";class C{get elementRect(){return this.rectObserver.rect}constructor(e,t){this.rectObserver=new v;this.handlePointerMove=async e=>{if(await this.isMeasurableEntityUnderPointer(e)){this.clearCursor();this.addCursor(p)}else{this.clearCursor()}};this.handlePointerDown=e=>{this.ifNoInteraction(e,(async()=>{if(await this.isMeasurableEntityUnderPointer(e)){this.measureEntityUnderPointer(e)}else{await this.controller.clearEntities()}}))};this.controller=e;this.measurableEntityTypes=t}initialize(e,t){this.element=e;this.api=t;this.rectObserver.observe(e);e.addEventListener("pointermove",this.handlePointerMove);e.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var e,t,s;this.rectObserver.disconnect();(e=this.measurementInteraction)===null||e===void 0?void 0:e.dispose();this.clearCursor();(t=this.element)===null||t===void 0?void 0:t.removeEventListener("pointermove",this.handlePointerMove);(s=this.element)===null||s===void 0?void 0:s.removeEventListener("pointerdown",this.handlePointerDown);this.element=undefined;this.api=undefined}addCursor(e){this.cursor=this.ifInitialized((({api:t})=>t.addCursor(e)))}clearCursor(){var e;(e=this.cursor)===null||e===void 0?void 0:e.dispose();this.cursor=undefined}async isMeasurableEntityUnderPointer(e){var t;const s=c(e,this.elementRect);const i=await((t=this.api)===null||t===void 0?void 0:t.getEntityTypeAtPoint(s));return i!=null&&this.measurableEntityTypes.includes(i)}measureEntityUnderPointer(e){this.ifInitialized((async({api:t})=>{const s=c(e,this.elementRect);const[i]=await t.hitItems(s);const n=i!=null?o.fromHit(i):undefined;if(n!=null){await this.controller.addEntity(n)}else{await this.controller.clearEntities()}}))}ifInitialized(e){if(this.element!=null&&this.api!=null){return e({element:this.element,api:this.api})}else{throw new Error("Measurement interaction handler not initialized.")}}ifNoInteraction(e,t){const s=u.create(e.clientX,e.clientY);let i=false;const n=e=>{const t=u.create(e.clientX,e.clientY);const n=u.distance(s,t);i=n>2};const r=()=>{window.removeEventListener("pointermove",n);window.removeEventListener("pointerup",r);if(!i){t()}};window.addEventListener("pointermove",n);window.addEventListener("pointerup",r)}}const y=()=>`:host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}`;const b=t(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.measurementModel=new d;this.measurementOverlays=new m;this.measurableEntityTypes=[h.PRECISE_SURFACE,h.IMPRECISE_SURFACE];this.configEnv="platprod"}connectedCallback(){this.setupInteractionHandler()}componentWillLoad(){this.setupController();this.setupInteractionHandler()}disconnectedCallback(){this.clearInteractionHandler()}handleMeasurableEntityTypesChanged(){this.setupInteractionHandler()}handleMeasurementControllerChanged(){this.setupInteractionHandler()}handleMeasurementModelChanged(){this.setupController()}handleViewerChanged(){this.setupInteractionHandler()}render(){return i(n,{key:"191b29e7710d24dc5462b10bf5fc947de5facf6c"},i("vertex-viewer-measurement-overlays",{key:"9da7740e1f54c300f6a76a7dc516054e40bbed05",viewer:this.viewer,measurementOverlays:this.measurementOverlays}))}setupController(){var e;const t=a(this.configEnv,this.config);const s=new r.SceneViewAPIClient(t.network.sceneViewHost);this.measurementController=new l(this.measurementModel,s,(()=>{var e;return(e=this.viewer)===null||e===void 0?void 0:e.token}),(e=this.viewer)===null||e===void 0?void 0:e.deviceId)}clearInteractionHandler(){var e;(e=this.registeredInteractionHandler)===null||e===void 0?void 0:e.then((e=>e.dispose()));this.registeredInteractionHandler=undefined}setupInteractionHandler(){var e;this.clearInteractionHandler();if(this.measurementController!=null){this.registeredInteractionHandler=(e=this.viewer)===null||e===void 0?void 0:e.registerInteractionHandler(new C(this.measurementController,this.measurableEntityTypes))}}static get watchers(){return{measurableEntityTypes:[{handleMeasurableEntityTypesChanged:0}],measurementController:[{handleMeasurementControllerChanged:0}],measurementModel:[{handleMeasurementModelChanged:1}],viewer:[{handleViewerChanged:0}]}}static get style(){return y()}},[1,"vertex-viewer-measurement-precise",{measurementModel:[16],measurementOverlays:[16],measurementController:[1040],measurableEntityTypes:[16],viewer:[16],configEnv:[1,"config-env"],config:[1]},undefined,{measurableEntityTypes:[{handleMeasurableEntityTypesChanged:0}],measurementController:[{handleMeasurementControllerChanged:0}],measurementModel:[{handleMeasurementModelChanged:1}],viewer:[{handleViewerChanged:0}]}]);function M(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-measurement-precise","vertex-viewer-measurement-line","vertex-viewer-measurement-overlays"];t.forEach((t=>{switch(t){case"vertex-viewer-measurement-precise":if(!customElements.get(e(t))){customElements.define(e(t),b)}break;case"vertex-viewer-measurement-line":if(!customElements.get(e(t))){f()}break;case"vertex-viewer-measurement-overlays":if(!customElements.get(e(t))){w()}break}}))}M();const g=b;const E=M;export{g as VertexViewerMeasurementPrecise,E as defineCustomElement};
4
+ import{t as e,p as t,H as s,h as i,e as n}from"./p-Bb32XUUS.js";import{s as r}from"./p-B2_E6tqs.js";import{p as a}from"./p-ahjMltGJ.js";import{a as o,M as l}from"./p-CZCXdo3t.js";import"./p-BoB09nlv.js";import"./p-D12q-fpW.js";import"./p-FRKLa468.js";import{E as h}from"./p-B9R0QWr4.js";import{M as d}from"./p-COlcifvm.js";import{M as m}from"./p-CkjXRDNL.js";import{p as u}from"./p-DDQcM-So.js";import{a as p}from"./p-B-ToCp8-.js";import{g as c}from"./p-bal2RLiw.js";import{E as v}from"./p-CFus3r7d.js";import{d as f}from"./p-B156bTbY.js";import{d as w}from"./p-BOJJZ1cN.js";class C{get elementRect(){return this.rectObserver.rect}constructor(e,t){this.rectObserver=new v;this.handlePointerMove=async e=>{if(await this.isMeasurableEntityUnderPointer(e)){this.clearCursor();this.addCursor(p)}else{this.clearCursor()}};this.handlePointerDown=e=>{this.ifNoInteraction(e,(async()=>{if(await this.isMeasurableEntityUnderPointer(e)){this.measureEntityUnderPointer(e)}else{await this.controller.clearEntities()}}))};this.controller=e;this.measurableEntityTypes=t}initialize(e,t){this.element=e;this.api=t;this.rectObserver.observe(e);e.addEventListener("pointermove",this.handlePointerMove);e.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var e,t,s;this.rectObserver.disconnect();(e=this.measurementInteraction)===null||e===void 0?void 0:e.dispose();this.clearCursor();(t=this.element)===null||t===void 0?void 0:t.removeEventListener("pointermove",this.handlePointerMove);(s=this.element)===null||s===void 0?void 0:s.removeEventListener("pointerdown",this.handlePointerDown);this.element=undefined;this.api=undefined}addCursor(e){this.cursor=this.ifInitialized((({api:t})=>t.addCursor(e)))}clearCursor(){var e;(e=this.cursor)===null||e===void 0?void 0:e.dispose();this.cursor=undefined}async isMeasurableEntityUnderPointer(e){var t;const s=c(e,this.elementRect);const i=await((t=this.api)===null||t===void 0?void 0:t.getEntityTypeAtPoint(s));return i!=null&&this.measurableEntityTypes.includes(i)}measureEntityUnderPointer(e){this.ifInitialized((async({api:t})=>{const s=c(e,this.elementRect);const[i]=await t.hitItems(s);const n=i!=null?o.fromHit(i):undefined;if(n!=null){await this.controller.addEntity(n)}else{await this.controller.clearEntities()}}))}ifInitialized(e){if(this.element!=null&&this.api!=null){return e({element:this.element,api:this.api})}else{throw new Error("Measurement interaction handler not initialized.")}}ifNoInteraction(e,t){const s=u.create(e.clientX,e.clientY);let i=false;const n=e=>{const t=u.create(e.clientX,e.clientY);const n=u.distance(s,t);i=n>2};const r=()=>{window.removeEventListener("pointermove",n);window.removeEventListener("pointerup",r);if(!i){t()}};window.addEventListener("pointermove",n);window.addEventListener("pointerup",r)}}const y=()=>`:host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}`;const b=t(class e extends s{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.measurementModel=new d;this.measurementOverlays=new m;this.measurableEntityTypes=[h.PRECISE_SURFACE,h.IMPRECISE_SURFACE];this.configEnv="platprod"}connectedCallback(){this.setupInteractionHandler()}componentWillLoad(){this.setupController();this.setupInteractionHandler()}disconnectedCallback(){this.clearInteractionHandler()}handleMeasurableEntityTypesChanged(){this.setupInteractionHandler()}handleMeasurementControllerChanged(){this.setupInteractionHandler()}handleMeasurementModelChanged(){this.setupController()}handleViewerChanged(){this.setupInteractionHandler()}render(){return i(n,{key:"191b29e7710d24dc5462b10bf5fc947de5facf6c"},i("vertex-viewer-measurement-overlays",{key:"9da7740e1f54c300f6a76a7dc516054e40bbed05",viewer:this.viewer,measurementOverlays:this.measurementOverlays}))}setupController(){var e;const t=a(this.configEnv,this.config);const s=new r.SceneViewAPIClient(t.network.sceneViewHost);this.measurementController=new l(this.measurementModel,s,(()=>{var e;return(e=this.viewer)===null||e===void 0?void 0:e.token}),(e=this.viewer)===null||e===void 0?void 0:e.deviceId)}clearInteractionHandler(){var e;(e=this.registeredInteractionHandler)===null||e===void 0?void 0:e.then((e=>e.dispose()));this.registeredInteractionHandler=undefined}setupInteractionHandler(){var e;this.clearInteractionHandler();if(this.measurementController!=null){this.registeredInteractionHandler=(e=this.viewer)===null||e===void 0?void 0:e.registerInteractionHandler(new C(this.measurementController,this.measurableEntityTypes))}}static get watchers(){return{measurableEntityTypes:[{handleMeasurableEntityTypesChanged:0}],measurementController:[{handleMeasurementControllerChanged:0}],measurementModel:[{handleMeasurementModelChanged:1}],viewer:[{handleViewerChanged:0}]}}static get style(){return y()}},[1,"vertex-viewer-measurement-precise",{measurementModel:[16],measurementOverlays:[16],measurementController:[1040],measurableEntityTypes:[16],viewer:[16],configEnv:[1,"config-env"],config:[1]},undefined,{measurableEntityTypes:[{handleMeasurableEntityTypesChanged:0}],measurementController:[{handleMeasurementControllerChanged:0}],measurementModel:[{handleMeasurementModelChanged:1}],viewer:[{handleViewerChanged:0}]}]);function M(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-measurement-precise","vertex-viewer-measurement-line","vertex-viewer-measurement-overlays"];t.forEach((t=>{switch(t){case"vertex-viewer-measurement-precise":if(!customElements.get(e(t))){customElements.define(e(t),b)}break;case"vertex-viewer-measurement-line":if(!customElements.get(e(t))){f()}break;case"vertex-viewer-measurement-overlays":if(!customElements.get(e(t))){w()}break}}))}M();const g=b;const j=M;export{g as VertexViewerMeasurementPrecise,j as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-measurement-precise.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{V as o,d as s}from"./p-kVbpvDF1.js";const p=o;const t=s;export{p as VertexViewerPinGroup,t as defineCustomElement};
4
+ import{V as s,d as o}from"./p-DF4kEsJU.js";const t=s;const p=o;export{t as VertexViewerPinGroup,p as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-pin-group.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{t as i,p as t,H as e,h as s,e as n}from"./p-Bb32XUUS.js";import{a as o,d as l,P as r}from"./p-DVW2WZTq.js";import{p as h}from"./p-DDQcM-So.js";import{b as d}from"./p-CHdoymO5.js";import{l as a,p as u}from"./p-B-ToCp8-.js";import{g as v}from"./p-bal2RLiw.js";import{E as c}from"./p-CFus3r7d.js";import{E as p}from"./p-BfAW7IWG.js";import{P as f}from"./p-BWUNIo7P.js";import{g as m}from"./p-Bg-uS9BH.js";import{d as w}from"./p-oK38ynrd.js";import{d as C}from"./p-CmtoXwYo.js";import{d as b}from"./p-Bkm6H5uq.js";import{d as y}from"./p-kVbpvDF1.js";import{d as g}from"./p-B5FnyWQm.js";class x{get elementRect(){return this.rectObserver.rect}constructor(i,t,e){this.rectObserver=new c;this.droppableSurfaces=[p.PRECISE_SURFACE,p.IMPRECISE_SURFACE,p.GENERIC_GEOMETRY];this.handlePointerMove=async i=>{const t=await this.isDroppableSurface(i);const e=this.controller.getDraggable();if(e!=null&&t){this.handleDrag(e,i)}if(this.controller.getDraggable()==null&&this.controller.getToolMode()==="edit"&&t){this.addCursor(this.getCursorType())}else{this.clearCursor()}};this.handleDrag=async(i,t)=>{const e=v(t,this.elementRect);const s=await this.getWorldPositionForPoint(e);if(s!=null){this.controller.updateDraggable({...i,lastPoint:e},s)}};this.handlePointerDown=async i=>{const t=t=>{const s=h.distance(h.create(i.clientX,t.clientY),h.create(t.clientX,t.clientY));if(s<=2&&i.buttons!==2){if(this.controller.getToolMode()==="edit"){const t=v(i,this.elementRect);this.handlePlacePin(t)}}e()};const e=()=>{window.removeEventListener("pointerup",t)};window.addEventListener("pointerup",t);return{dispose:e}};this.handlePointerUp=async()=>{const i=this.controller.getDraggable();const t=i===null||i===void 0?void 0:i.lastPoint;this.controller.setDraggable(undefined);if(t!=null&&i!=null){this.ifInitialized((async({api:e})=>{var s,n,o,l,r,h;const[d]=await e.hitItems(t);if((d===null||d===void 0?void 0:d.hitPoint)!=null&&((s=d===null||d===void 0?void 0:d.hitPoint)===null||s===void 0?void 0:s.x)!=null&&((n=d===null||d===void 0?void 0:d.hitPoint)===null||n===void 0?void 0:n.y)!=null&&((o=d===null||d===void 0?void 0:d.hitPoint)===null||o===void 0?void 0:o.z)!=null){this.controller.updateDraggable({...i,lastPoint:t},{x:(l=d===null||d===void 0?void 0:d.hitPoint)===null||l===void 0?void 0:l.x,y:d===null||d===void 0?void 0:d.hitPoint.y,z:d===null||d===void 0?void 0:d.hitPoint.z},(h=(r=d===null||d===void 0?void 0:d.partId)===null||r===void 0?void 0:r.hex)!==null&&h!==void 0?h:undefined)}}))}};this.controller=i;this.xOffset=t;this.yOffset=e}initialize(i,t){this.element=i;this.api=t;this.rectObserver.observe(i);i.addEventListener("pointermove",this.handlePointerMove);i.addEventListener("pointerdown",this.handlePointerDown);window.addEventListener("pointerup",this.handlePointerUp)}dispose(){var i,t;this.rectObserver.disconnect();this.clearCursor();(i=this.element)===null||i===void 0?void 0:i.removeEventListener("pointermove",this.handlePointerMove);(t=this.element)===null||t===void 0?void 0:t.removeEventListener("pointerdown",this.handlePointerDown);window.removeEventListener("pointerup",this.handlePointerUp);this.element=undefined;this.api=undefined}async getWorldPositionForPoint(i){return this.ifInitialized((async({api:t})=>{const e=await t.getWorldPointFromViewport(i);return e}))}async handlePlacePin(i,t){this.ifInitialized((async({api:e})=>{var s,n,l,r,h,a;const[u]=await e.hitItems(i);if((u===null||u===void 0?void 0:u.hitPoint)!=null&&this.elementRect!=null){if((u===null||u===void 0?void 0:u.hitPoint)!=null&&(u===null||u===void 0?void 0:u.hitPoint.x)!=null&&(u===null||u===void 0?void 0:u.hitPoint.y)!=null&&(u===null||u===void 0?void 0:u.hitPoint.z)!=null){const e=t!=null?t.id:d.create();const v=this.controller.getStyleAttributes()!=null?{style:this.controller.getStyleAttributes()}:undefined;switch(this.controller.getToolType()){case"pin-icon":this.controller.setPin({type:"icon",id:e,worldPosition:{x:(s=u===null||u===void 0?void 0:u.hitPoint)===null||s===void 0?void 0:s.x,y:u===null||u===void 0?void 0:u.hitPoint.y,z:u===null||u===void 0?void 0:u.hitPoint.z},partId:(l=(n=u===null||u===void 0?void 0:u.itemId)===null||n===void 0?void 0:n.hex)!==null&&l!==void 0?l:undefined,attributes:v});break;case"pin-text":const d=t==null;const c=o(i,this.elementRect,d,this.xOffset,this.yOffset);this.controller.setPin({type:"text",id:e,worldPosition:{x:(r=u===null||u===void 0?void 0:u.hitPoint)===null||r===void 0?void 0:r.x,y:u===null||u===void 0?void 0:u.hitPoint.y,z:u===null||u===void 0?void 0:u.hitPoint.z},partId:(a=(h=u===null||u===void 0?void 0:u.itemId)===null||h===void 0?void 0:h.hex)!==null&&a!==void 0?a:undefined,label:{point:c},attributes:v});this.controller.setSelectedPinId(e);break}}}else{this.controller.setSelectedPinId()}}))}getCursorType(){switch(this.controller.getToolType()){case"pin-icon":return u;case"pin-text":return a}}addCursor(i){this.clearCursor();this.cursor=this.ifInitialized((({api:t})=>t.addCursor(i)))}async isDroppableSurface(i){var t;const e=v(i,this.elementRect);const s=await((t=this.api)===null||t===void 0?void 0:t.getEntityTypeAtPoint(e));return s!=null&&this.droppableSurfaces.includes(s)}ifInitialized(i){if(this.element!=null&&this.api!=null){return i({element:this.element,api:this.api})}else{throw new Error("Pins interaction handler not initialized.")}}clearCursor(){var i;(i=this.cursor)===null||i===void 0?void 0:i.dispose();this.cursor=undefined}}const P=()=>`:host{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;--viewer-pin-tool-initial-label-offset-x:20;--viewer-pin-tool-initial-label-offset-y:20}`;const j=t(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.__attachShadow();this.pinModel=new f;this.tool="pin-icon";this.mode="view";this.pins=[];this.stateMap={};this.handleSetProjectionMatrix=()=>{var i,t;this.projectionViewMatrix=(t=(i=this.viewer)===null||i===void 0?void 0:i.frame)===null||t===void 0?void 0:t.scene.camera.projectionViewMatrix}}watchModeChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setToolMode(this.mode);this.setupInteractionHandler();if(this.mode==="edit"){this.setFeatureMaps();this.setCameraAndKeyboardControls()}else{this.resetFeatureMaps();this.resetCameraAndKeyboardControls()}}watchTypeChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setToolType(this.tool);this.setupInteractionHandler()}watchAccentColorChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setAccentColor(this.accentColor);this.setupInteractionHandler()}watchPrimaryColorChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setPrimaryColor(this.primaryColor);this.setupInteractionHandler()}watchPinsChange(){if(this.pins.length>0){this.setDepthBuffers();this.setFeatureMaps()}else{this.resetDepthBuffers();this.resetFeatureMaps()}}connectedCallback(){this.setupInteractionHandler();this.setDepthBuffers();this.setFeatureMaps();this.setCameraAndKeyboardControls()}componentWillLoad(){this.updateViewport();this.setupController();this.setupInteractionHandler();this.setDepthBuffers();this.setFeatureMaps();this.setCameraAndKeyboardControls();this.pinModel.onEntitiesChanged((i=>{this.pins=i}));this.pinModel.onSelectionChange((i=>{this.selectedPinId=i}));this.handleViewerChanged(this.viewer,undefined)}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.updateViewport()));this.resizeObserver.observe(this.hostEl)}disconnectedCallback(){this.clearInteractionHandler();this.clearModelListeners();this.resetDepthBuffers();this.resetFeatureMaps();this.resetCameraAndKeyboardControls()}handleViewerChanged(i,t){this.setupInteractionHandler();this.setDepthBuffers();this.setFeatureMaps();this.setCameraAndKeyboardControls();if(t!=null){t.removeEventListener("frameDrawn",this.handleSetProjectionMatrix)}if(i!=null){i.addEventListener("frameDrawn",this.handleSetProjectionMatrix)}this.handleSetProjectionMatrix()}render(){return s(n,{key:"ce2867d4a624dabf607b9de837e73a0a0c40eaf9"},s("vertex-viewer-dom-renderer",{key:"7d2dc3d75ca1818ba7b9b292ccbe1db7ac5c7ac8",viewer:this.viewer,drawMode:"2d"},this.pins.map((i=>s("vertex-viewer-pin-group",{id:`pin-group-${i.id}`,"data-is-dom-group-element":true,pin:i,elementBounds:this.elementBounds,pinModel:this.pinModel,pinController:this.pinController,projectionViewMatrix:this.projectionViewMatrix,selected:this.selectedPinId===i.id})))))}setupController(){const i=this.accentColor||this.primaryColor?{accentColor:this.accentColor,primaryColor:this.primaryColor}:undefined;this.pinController=new r(this.pinModel,this.mode,this.tool,i)}clearInteractionHandler(){var i;(i=this.registeredInteractionHandler)===null||i===void 0?void 0:i.then((i=>i.dispose()));this.registeredInteractionHandler=undefined}setupInteractionHandler(){var i;const t=window.getComputedStyle(this.hostEl);const e=t.getPropertyValue("--viewer-pin-tool-initial-label-offset-x").trim();const s=Number.isFinite(Number.parseInt(e))?Number.parseInt(e):20;const n=t.getPropertyValue("--viewer-pin-tool-initial-label-offset-y").trim();const o=Number.isFinite(Number.parseInt(n))?Number.parseInt(n):20;this.clearInteractionHandler();if(this.pinController!=null){this.registeredInteractionHandler=(i=this.viewer)===null||i===void 0?void 0:i.registerInteractionHandler(new x(this.pinController,s,o))}}clearModelListeners(){var i,t,e;(i=this.onEntitiesChangedHandler)===null||i===void 0?void 0:i.dispose();this.onEntitiesChangedHandler=undefined;(t=this.onEntityAddedHandler)===null||t===void 0?void 0:t.dispose();this.onEntityAddedHandler=undefined;(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}updateViewport(){this.elementBounds=m(this.hostEl)}setDepthBuffers(){if(this.pins.length>0&&this.viewer!=null&&this.viewer.depthBuffers==null){this.stateMap.shouldClearDepthBuffers=true;this.viewer.depthBuffers="final"}}resetDepthBuffers(){if(this.stateMap.shouldClearDepthBuffers&&this.viewer!=null){this.viewer.depthBuffers=undefined;this.stateMap.shouldClearDepthBuffers=undefined}}setFeatureMaps(){if((this.pins.length>0||this.mode==="edit")&&this.viewer!=null&&this.viewer.featureMaps==null){this.stateMap.shouldClearFeatureMaps=true;this.viewer.featureMaps="final"}}resetFeatureMaps(){if(this.stateMap.shouldClearFeatureMaps&&this.viewer!=null){this.viewer.featureMaps=undefined;this.stateMap.shouldClearFeatureMaps=undefined}}setCameraAndKeyboardControls(){if(this.mode==="edit"&&this.viewer!=null){if(this.viewer.cameraControls){this.stateMap.shouldClearCameraControls=true;this.viewer.cameraControls=false}if(this.viewer.keyboardControls){this.stateMap.shouldClearKeyboardControls=true;this.viewer.keyboardControls=false}}}resetCameraAndKeyboardControls(){if(this.viewer!=null){if(this.stateMap.shouldClearCameraControls){this.viewer.cameraControls=true;this.stateMap.shouldClearCameraControls=undefined}if(this.stateMap.shouldClearKeyboardControls){this.viewer.keyboardControls=true;this.stateMap.shouldClearKeyboardControls=undefined}}}get hostEl(){return this}static get watchers(){return{mode:[{watchModeChange:0}],tool:[{watchTypeChange:0}],accentColor:[{watchAccentColorChange:0}],primaryColor:[{watchPrimaryColorChange:0}],pins:[{watchPinsChange:0}],viewer:[{handleViewerChanged:0}]}}static get style(){return P()}},[1,"vertex-viewer-pin-tool",{pinController:[1040],pinModel:[16],viewer:[16],tool:[1025],mode:[1025],primaryColor:[1025,"primary-color"],accentColor:[1025,"accent-color"],pins:[32],selectedPinId:[32],elementBounds:[32],projectionViewMatrix:[32]},undefined,{mode:[{watchModeChange:0}],tool:[{watchTypeChange:0}],accentColor:[{watchAccentColorChange:0}],primaryColor:[{watchPrimaryColorChange:0}],pins:[{watchPinsChange:0}],viewer:[{handleViewerChanged:0}]}]);function k(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-pin-tool","vertex-viewer-dom-element","vertex-viewer-dom-renderer","vertex-viewer-icon","vertex-viewer-pin-group","vertex-viewer-pin-label","vertex-viewer-pin-label-line"];t.forEach((t=>{switch(t){case"vertex-viewer-pin-tool":if(!customElements.get(i(t))){customElements.define(i(t),j)}break;case"vertex-viewer-dom-element":if(!customElements.get(i(t))){w()}break;case"vertex-viewer-dom-renderer":if(!customElements.get(i(t))){C()}break;case"vertex-viewer-icon":if(!customElements.get(i(t))){b()}break;case"vertex-viewer-pin-group":if(!customElements.get(i(t))){y()}break;case"vertex-viewer-pin-label":if(!customElements.get(i(t))){l()}break;case"vertex-viewer-pin-label-line":if(!customElements.get(i(t))){g()}break}}))}k();const E=j;const B=k;export{E as VertexViewerPinTool,B as defineCustomElement};
4
+ import{t as i,p as t,H as e,h as s,e as n}from"./p-Bb32XUUS.js";import{a as o,d as l,P as r}from"./p-DVW2WZTq.js";import{p as h}from"./p-DDQcM-So.js";import{b as d}from"./p-CHdoymO5.js";import{l as a,p as u}from"./p-B-ToCp8-.js";import{g as v}from"./p-bal2RLiw.js";import{E as c}from"./p-CFus3r7d.js";import{E as p}from"./p-B9R0QWr4.js";import{P as f}from"./p-BWUNIo7P.js";import{g as m}from"./p-Bg-uS9BH.js";import{d as w}from"./p-oK38ynrd.js";import{d as C}from"./p-BCOD9yfw.js";import{d as b}from"./p-Bkm6H5uq.js";import{d as y}from"./p-DF4kEsJU.js";import{d as g}from"./p-B5FnyWQm.js";class x{get elementRect(){return this.rectObserver.rect}constructor(i,t,e){this.rectObserver=new c;this.droppableSurfaces=[p.PRECISE_SURFACE,p.IMPRECISE_SURFACE,p.GENERIC_GEOMETRY];this.handlePointerMove=async i=>{const t=await this.isDroppableSurface(i);const e=this.controller.getDraggable();if(e!=null&&t){this.handleDrag(e,i)}if(this.controller.getDraggable()==null&&this.controller.getToolMode()==="edit"&&t){this.addCursor(this.getCursorType())}else{this.clearCursor()}};this.handleDrag=async(i,t)=>{const e=v(t,this.elementRect);const s=await this.getWorldPositionForPoint(e);if(s!=null){this.controller.updateDraggable({...i,lastPoint:e},s)}};this.handlePointerDown=async i=>{const t=t=>{const s=h.distance(h.create(i.clientX,t.clientY),h.create(t.clientX,t.clientY));if(s<=2&&i.buttons!==2){if(this.controller.getToolMode()==="edit"){const t=v(i,this.elementRect);this.handlePlacePin(t)}}e()};const e=()=>{window.removeEventListener("pointerup",t)};window.addEventListener("pointerup",t);return{dispose:e}};this.handlePointerUp=async()=>{const i=this.controller.getDraggable();const t=i===null||i===void 0?void 0:i.lastPoint;this.controller.setDraggable(undefined);if(t!=null&&i!=null){this.ifInitialized((async({api:e})=>{var s,n,o,l,r,h;const[d]=await e.hitItems(t);if((d===null||d===void 0?void 0:d.hitPoint)!=null&&((s=d===null||d===void 0?void 0:d.hitPoint)===null||s===void 0?void 0:s.x)!=null&&((n=d===null||d===void 0?void 0:d.hitPoint)===null||n===void 0?void 0:n.y)!=null&&((o=d===null||d===void 0?void 0:d.hitPoint)===null||o===void 0?void 0:o.z)!=null){this.controller.updateDraggable({...i,lastPoint:t},{x:(l=d===null||d===void 0?void 0:d.hitPoint)===null||l===void 0?void 0:l.x,y:d===null||d===void 0?void 0:d.hitPoint.y,z:d===null||d===void 0?void 0:d.hitPoint.z},(h=(r=d===null||d===void 0?void 0:d.partId)===null||r===void 0?void 0:r.hex)!==null&&h!==void 0?h:undefined)}}))}};this.controller=i;this.xOffset=t;this.yOffset=e}initialize(i,t){this.element=i;this.api=t;this.rectObserver.observe(i);i.addEventListener("pointermove",this.handlePointerMove);i.addEventListener("pointerdown",this.handlePointerDown);window.addEventListener("pointerup",this.handlePointerUp)}dispose(){var i,t;this.rectObserver.disconnect();this.clearCursor();(i=this.element)===null||i===void 0?void 0:i.removeEventListener("pointermove",this.handlePointerMove);(t=this.element)===null||t===void 0?void 0:t.removeEventListener("pointerdown",this.handlePointerDown);window.removeEventListener("pointerup",this.handlePointerUp);this.element=undefined;this.api=undefined}async getWorldPositionForPoint(i){return this.ifInitialized((async({api:t})=>{const e=await t.getWorldPointFromViewport(i);return e}))}async handlePlacePin(i,t){this.ifInitialized((async({api:e})=>{var s,n,l,r,h,a;const[u]=await e.hitItems(i);if((u===null||u===void 0?void 0:u.hitPoint)!=null&&this.elementRect!=null){if((u===null||u===void 0?void 0:u.hitPoint)!=null&&(u===null||u===void 0?void 0:u.hitPoint.x)!=null&&(u===null||u===void 0?void 0:u.hitPoint.y)!=null&&(u===null||u===void 0?void 0:u.hitPoint.z)!=null){const e=t!=null?t.id:d.create();const v=this.controller.getStyleAttributes()!=null?{style:this.controller.getStyleAttributes()}:undefined;switch(this.controller.getToolType()){case"pin-icon":this.controller.setPin({type:"icon",id:e,worldPosition:{x:(s=u===null||u===void 0?void 0:u.hitPoint)===null||s===void 0?void 0:s.x,y:u===null||u===void 0?void 0:u.hitPoint.y,z:u===null||u===void 0?void 0:u.hitPoint.z},partId:(l=(n=u===null||u===void 0?void 0:u.itemId)===null||n===void 0?void 0:n.hex)!==null&&l!==void 0?l:undefined,attributes:v});break;case"pin-text":const d=t==null;const c=o(i,this.elementRect,d,this.xOffset,this.yOffset);this.controller.setPin({type:"text",id:e,worldPosition:{x:(r=u===null||u===void 0?void 0:u.hitPoint)===null||r===void 0?void 0:r.x,y:u===null||u===void 0?void 0:u.hitPoint.y,z:u===null||u===void 0?void 0:u.hitPoint.z},partId:(a=(h=u===null||u===void 0?void 0:u.itemId)===null||h===void 0?void 0:h.hex)!==null&&a!==void 0?a:undefined,label:{point:c},attributes:v});this.controller.setSelectedPinId(e);break}}}else{this.controller.setSelectedPinId()}}))}getCursorType(){switch(this.controller.getToolType()){case"pin-icon":return u;case"pin-text":return a}}addCursor(i){this.clearCursor();this.cursor=this.ifInitialized((({api:t})=>t.addCursor(i)))}async isDroppableSurface(i){var t;const e=v(i,this.elementRect);const s=await((t=this.api)===null||t===void 0?void 0:t.getEntityTypeAtPoint(e));return s!=null&&this.droppableSurfaces.includes(s)}ifInitialized(i){if(this.element!=null&&this.api!=null){return i({element:this.element,api:this.api})}else{throw new Error("Pins interaction handler not initialized.")}}clearCursor(){var i;(i=this.cursor)===null||i===void 0?void 0:i.dispose();this.cursor=undefined}}const P=()=>`:host{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;--viewer-pin-tool-initial-label-offset-x:20;--viewer-pin-tool-initial-label-offset-y:20}`;const j=t(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.__attachShadow();this.pinModel=new f;this.tool="pin-icon";this.mode="view";this.pins=[];this.stateMap={};this.handleSetProjectionMatrix=()=>{var i,t;this.projectionViewMatrix=(t=(i=this.viewer)===null||i===void 0?void 0:i.frame)===null||t===void 0?void 0:t.scene.camera.projectionViewMatrix}}watchModeChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setToolMode(this.mode);this.setupInteractionHandler();if(this.mode==="edit"){this.setFeatureMaps();this.setCameraAndKeyboardControls()}else{this.resetFeatureMaps();this.resetCameraAndKeyboardControls()}}watchTypeChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setToolType(this.tool);this.setupInteractionHandler()}watchAccentColorChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setAccentColor(this.accentColor);this.setupInteractionHandler()}watchPrimaryColorChange(){var i;(i=this.pinController)===null||i===void 0?void 0:i.setPrimaryColor(this.primaryColor);this.setupInteractionHandler()}watchPinsChange(){if(this.pins.length>0){this.setDepthBuffers();this.setFeatureMaps()}else{this.resetDepthBuffers();this.resetFeatureMaps()}}connectedCallback(){this.setupInteractionHandler();this.setDepthBuffers();this.setFeatureMaps();this.setCameraAndKeyboardControls()}componentWillLoad(){this.updateViewport();this.setupController();this.setupInteractionHandler();this.setDepthBuffers();this.setFeatureMaps();this.setCameraAndKeyboardControls();this.pinModel.onEntitiesChanged((i=>{this.pins=i}));this.pinModel.onSelectionChange((i=>{this.selectedPinId=i}));this.handleViewerChanged(this.viewer,undefined)}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>this.updateViewport()));this.resizeObserver.observe(this.hostEl)}disconnectedCallback(){this.clearInteractionHandler();this.clearModelListeners();this.resetDepthBuffers();this.resetFeatureMaps();this.resetCameraAndKeyboardControls()}handleViewerChanged(i,t){this.setupInteractionHandler();this.setDepthBuffers();this.setFeatureMaps();this.setCameraAndKeyboardControls();if(t!=null){t.removeEventListener("frameDrawn",this.handleSetProjectionMatrix)}if(i!=null){i.addEventListener("frameDrawn",this.handleSetProjectionMatrix)}this.handleSetProjectionMatrix()}render(){return s(n,{key:"ce2867d4a624dabf607b9de837e73a0a0c40eaf9"},s("vertex-viewer-dom-renderer",{key:"7d2dc3d75ca1818ba7b9b292ccbe1db7ac5c7ac8",viewer:this.viewer,drawMode:"2d"},this.pins.map((i=>s("vertex-viewer-pin-group",{id:`pin-group-${i.id}`,"data-is-dom-group-element":true,pin:i,elementBounds:this.elementBounds,pinModel:this.pinModel,pinController:this.pinController,projectionViewMatrix:this.projectionViewMatrix,selected:this.selectedPinId===i.id})))))}setupController(){const i=this.accentColor||this.primaryColor?{accentColor:this.accentColor,primaryColor:this.primaryColor}:undefined;this.pinController=new r(this.pinModel,this.mode,this.tool,i)}clearInteractionHandler(){var i;(i=this.registeredInteractionHandler)===null||i===void 0?void 0:i.then((i=>i.dispose()));this.registeredInteractionHandler=undefined}setupInteractionHandler(){var i;const t=window.getComputedStyle(this.hostEl);const e=t.getPropertyValue("--viewer-pin-tool-initial-label-offset-x").trim();const s=Number.isFinite(Number.parseInt(e))?Number.parseInt(e):20;const n=t.getPropertyValue("--viewer-pin-tool-initial-label-offset-y").trim();const o=Number.isFinite(Number.parseInt(n))?Number.parseInt(n):20;this.clearInteractionHandler();if(this.pinController!=null){this.registeredInteractionHandler=(i=this.viewer)===null||i===void 0?void 0:i.registerInteractionHandler(new x(this.pinController,s,o))}}clearModelListeners(){var i,t,e;(i=this.onEntitiesChangedHandler)===null||i===void 0?void 0:i.dispose();this.onEntitiesChangedHandler=undefined;(t=this.onEntityAddedHandler)===null||t===void 0?void 0:t.dispose();this.onEntityAddedHandler=undefined;(e=this.resizeObserver)===null||e===void 0?void 0:e.disconnect()}updateViewport(){this.elementBounds=m(this.hostEl)}setDepthBuffers(){if(this.pins.length>0&&this.viewer!=null&&this.viewer.depthBuffers==null){this.stateMap.shouldClearDepthBuffers=true;this.viewer.depthBuffers="final"}}resetDepthBuffers(){if(this.stateMap.shouldClearDepthBuffers&&this.viewer!=null){this.viewer.depthBuffers=undefined;this.stateMap.shouldClearDepthBuffers=undefined}}setFeatureMaps(){if((this.pins.length>0||this.mode==="edit")&&this.viewer!=null&&this.viewer.featureMaps==null){this.stateMap.shouldClearFeatureMaps=true;this.viewer.featureMaps="final"}}resetFeatureMaps(){if(this.stateMap.shouldClearFeatureMaps&&this.viewer!=null){this.viewer.featureMaps=undefined;this.stateMap.shouldClearFeatureMaps=undefined}}setCameraAndKeyboardControls(){if(this.mode==="edit"&&this.viewer!=null){if(this.viewer.cameraControls){this.stateMap.shouldClearCameraControls=true;this.viewer.cameraControls=false}if(this.viewer.keyboardControls){this.stateMap.shouldClearKeyboardControls=true;this.viewer.keyboardControls=false}}}resetCameraAndKeyboardControls(){if(this.viewer!=null){if(this.stateMap.shouldClearCameraControls){this.viewer.cameraControls=true;this.stateMap.shouldClearCameraControls=undefined}if(this.stateMap.shouldClearKeyboardControls){this.viewer.keyboardControls=true;this.stateMap.shouldClearKeyboardControls=undefined}}}get hostEl(){return this}static get watchers(){return{mode:[{watchModeChange:0}],tool:[{watchTypeChange:0}],accentColor:[{watchAccentColorChange:0}],primaryColor:[{watchPrimaryColorChange:0}],pins:[{watchPinsChange:0}],viewer:[{handleViewerChanged:0}]}}static get style(){return P()}},[1,"vertex-viewer-pin-tool",{pinController:[1040],pinModel:[16],viewer:[16],tool:[1025],mode:[1025],primaryColor:[1025,"primary-color"],accentColor:[1025,"accent-color"],pins:[32],selectedPinId:[32],elementBounds:[32],projectionViewMatrix:[32]},undefined,{mode:[{watchModeChange:0}],tool:[{watchTypeChange:0}],accentColor:[{watchAccentColorChange:0}],primaryColor:[{watchPrimaryColorChange:0}],pins:[{watchPinsChange:0}],viewer:[{handleViewerChanged:0}]}]);function k(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-pin-tool","vertex-viewer-dom-element","vertex-viewer-dom-renderer","vertex-viewer-icon","vertex-viewer-pin-group","vertex-viewer-pin-label","vertex-viewer-pin-label-line"];t.forEach((t=>{switch(t){case"vertex-viewer-pin-tool":if(!customElements.get(i(t))){customElements.define(i(t),j)}break;case"vertex-viewer-dom-element":if(!customElements.get(i(t))){w()}break;case"vertex-viewer-dom-renderer":if(!customElements.get(i(t))){C()}break;case"vertex-viewer-icon":if(!customElements.get(i(t))){b()}break;case"vertex-viewer-pin-group":if(!customElements.get(i(t))){y()}break;case"vertex-viewer-pin-label":if(!customElements.get(i(t))){l()}break;case"vertex-viewer-pin-label-line":if(!customElements.get(i(t))){g()}break}}))}k();const E=j;const B=k;export{E as VertexViewerPinTool,B as defineCustomElement};
5
5
  //# sourceMappingURL=vertex-viewer-pin-tool.js.map