@vertexvis/viewer 1.1.1-testing.4 → 1.1.1-testing.5

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 (181) hide show
  1. package/dist/cjs/{config-BY0v6BSK.js → config-OELTgslY.js} +3 -3
  2. package/dist/cjs/{config-BY0v6BSK.js.map → config-OELTgslY.js.map} +1 -1
  3. package/dist/cjs/{entities-CEaa12yP.js → entities-rj-TEPKc.js} +4 -4
  4. package/dist/cjs/{entities-CEaa12yP.js.map → entities-rj-TEPKc.js.map} +1 -1
  5. package/dist/cjs/{geometry_pb-EVfAEuPO.js → geometry_pb-asn2mNvW.js} +3 -3
  6. package/dist/cjs/{geometry_pb-EVfAEuPO.js.map → geometry_pb-asn2mNvW.js.map} +1 -1
  7. package/dist/cjs/index.cjs.js +5 -5
  8. package/dist/cjs/{queries-LthBzEHD.js → queries-e19TP_oF.js} +4 -4
  9. package/dist/cjs/{queries-LthBzEHD.js.map → queries-e19TP_oF.js.map} +1 -1
  10. package/dist/cjs/{regl-component-B_JaaVlv.js → regl-component-DjVaO3t3.js} +3 -3
  11. package/dist/cjs/{regl-component-B_JaaVlv.js.map → regl-component-DjVaO3t3.js.map} +1 -1
  12. package/dist/cjs/{representation_pb-B6XR10pQ.js → representation_pb-BVBPrHLf.js} +3 -3
  13. package/dist/cjs/{representation_pb-B6XR10pQ.js.map → representation_pb-BVBPrHLf.js.map} +1 -1
  14. package/dist/cjs/{streamAttributes-nCF7u7lv.js → streamAttributes-M3UUIO3l.js} +117 -94
  15. package/dist/cjs/streamAttributes-M3UUIO3l.js.map +1 -0
  16. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +1 -1
  17. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js.map +1 -1
  18. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +2 -2
  19. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js.map +1 -1
  20. package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
  21. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  22. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +2 -2
  23. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +2 -2
  24. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
  25. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
  26. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +4 -4
  27. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +3 -3
  28. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +2 -2
  29. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js.map +1 -1
  30. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +3 -3
  31. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js.map +1 -1
  32. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  33. package/dist/cjs/vertex-viewer.cjs.entry.js +4 -4
  34. package/dist/collection/components/scene-tree-search/scene-tree-search.js +1 -1
  35. package/dist/collection/components/scene-tree-search/scene-tree-search.js.map +1 -1
  36. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +1 -1
  37. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js.map +1 -1
  38. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +2 -2
  39. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js.map +1 -1
  40. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js +1 -1
  41. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map +1 -1
  42. package/dist/collection/workers/png-decoder-pool.js +4 -3
  43. package/dist/collection/workers/png-decoder-pool.js.map +1 -1
  44. package/dist/components/index.js +1 -1
  45. package/dist/components/{p-COznr3CH.js → p-5bk1mHRt.js} +2 -2
  46. package/dist/components/{p-D3bzgaCV.js → p-B8530k7R.js} +2 -2
  47. package/dist/components/{p-CWcvgy8e.js → p-BCuMPvZO.js} +2 -2
  48. package/dist/components/{p-DTwJX9HL.js → p-BgzjmANj.js} +2 -2
  49. package/dist/components/{p-DTwJX9HL.js.map → p-BgzjmANj.js.map} +1 -1
  50. package/dist/components/p-BjvjKoy7.js +5 -0
  51. package/dist/components/p-BjvjKoy7.js.map +1 -0
  52. package/dist/components/{p-Cxz4L6FA.js → p-Bwtyddca.js} +2 -2
  53. package/dist/components/{p-Ca253f0h.js → p-Bx42CNGV.js} +2 -2
  54. package/dist/components/p-C86HMDzi.js +5 -0
  55. package/dist/components/{p-Y8W_BXUk.js.map → p-C86HMDzi.js.map} +1 -1
  56. package/dist/components/p-CSVgoQU8.js +5 -0
  57. package/dist/components/{p-Cku0WCYo.js.map → p-CSVgoQU8.js.map} +1 -1
  58. package/dist/components/{p-D3in41xo.js → p-CTi-0-dI.js} +2 -2
  59. package/dist/components/{p-D1Vdomj_.js → p-D_h07qsA.js} +2 -2
  60. package/dist/components/{p-BNRm88jS.js → p-KidjtXKE.js} +2 -2
  61. package/dist/components/vertex-scene-tree-search.js +1 -1
  62. package/dist/components/vertex-scene-tree-table-cell.js +1 -1
  63. package/dist/components/vertex-scene-tree-table-cell.js.map +1 -1
  64. package/dist/components/vertex-scene-tree.js +1 -1
  65. package/dist/components/vertex-viewer-dom-renderer.js +1 -1
  66. package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
  67. package/dist/components/vertex-viewer-measurement-details.js +1 -1
  68. package/dist/components/vertex-viewer-measurement-distance.js +1 -1
  69. package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
  70. package/dist/components/vertex-viewer-measurement-precise.js +1 -1
  71. package/dist/components/vertex-viewer-pin-group.js +1 -1
  72. package/dist/components/vertex-viewer-pin-label.js +1 -1
  73. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  74. package/dist/components/vertex-viewer-transform-widget.js +1 -1
  75. package/dist/components/vertex-viewer-transform-widget.js.map +1 -1
  76. package/dist/components/vertex-viewer-view-cube.js +1 -1
  77. package/dist/components/vertex-viewer.js +1 -1
  78. package/dist/esm/{config-ss9ha12b.js → config-Cqrcty7U.js} +3 -3
  79. package/dist/esm/{config-ss9ha12b.js.map → config-Cqrcty7U.js.map} +1 -1
  80. package/dist/esm/{entities-DEFAhYdV.js → entities-CawBZH7i.js} +4 -4
  81. package/dist/esm/{entities-DEFAhYdV.js.map → entities-CawBZH7i.js.map} +1 -1
  82. package/dist/esm/{geometry_pb-D7fM1PYG.js → geometry_pb-COdZQiRi.js} +3 -3
  83. package/dist/esm/{geometry_pb-D7fM1PYG.js.map → geometry_pb-COdZQiRi.js.map} +1 -1
  84. package/dist/esm/index.js +5 -5
  85. package/dist/esm/index.mjs +5 -5
  86. package/dist/esm/{queries-BcmE5Zbq.js → queries-B4XotYyr.js} +4 -4
  87. package/dist/esm/{queries-BcmE5Zbq.js.map → queries-B4XotYyr.js.map} +1 -1
  88. package/dist/esm/{regl-component-gIonUTBJ.js → regl-component-B1_h3_s8.js} +3 -3
  89. package/dist/esm/{regl-component-gIonUTBJ.js.map → regl-component-B1_h3_s8.js.map} +1 -1
  90. package/dist/esm/{representation_pb-Bf023NuN.js → representation_pb-C4MJfZMo.js} +3 -3
  91. package/dist/esm/{representation_pb-Bf023NuN.js.map → representation_pb-C4MJfZMo.js.map} +1 -1
  92. package/dist/esm/{streamAttributes-Bj2xDHfI.js → streamAttributes-BW9JzMeG.js} +116 -93
  93. package/dist/esm/streamAttributes-BW9JzMeG.js.map +1 -0
  94. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +1 -1
  95. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js.map +1 -1
  96. package/dist/esm/vertex-scene-tree-table-cell.entry.js +2 -2
  97. package/dist/esm/vertex-scene-tree-table-cell.entry.js.map +1 -1
  98. package/dist/esm/vertex-scene-tree.entry.js +2 -2
  99. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  100. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +2 -2
  101. package/dist/esm/vertex-viewer-measurement-details.entry.js +2 -2
  102. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  103. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  104. package/dist/esm/vertex-viewer-measurement-precise.entry.js +4 -4
  105. package/dist/esm/vertex-viewer-pin-group.entry.js +3 -3
  106. package/dist/esm/vertex-viewer-pin-label_2.entry.js +2 -2
  107. package/dist/esm/vertex-viewer-pin-label_2.entry.js.map +1 -1
  108. package/dist/esm/vertex-viewer-transform-widget.entry.js +3 -3
  109. package/dist/esm/vertex-viewer-transform-widget.entry.js.map +1 -1
  110. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  111. package/dist/esm/vertex-viewer.entry.js +4 -4
  112. package/dist/types/workers/png-decoder-pool.d.ts +0 -1
  113. package/dist/viewer/index.esm.js +1 -1
  114. package/dist/viewer/{p-00540193.entry.js → p-1506f9a2.entry.js} +2 -2
  115. package/dist/viewer/{p-5cfb3047.entry.js → p-293d8f3f.entry.js} +2 -2
  116. package/dist/viewer/{p-9a39315d.entry.js → p-2faddbf8.entry.js} +2 -2
  117. package/dist/viewer/{p-7cb9c9bb.entry.js → p-36349a80.entry.js} +2 -2
  118. package/dist/viewer/p-36349a80.entry.js.map +1 -0
  119. package/dist/viewer/p-44395076.entry.js +5 -0
  120. package/dist/viewer/{p-e4913b06.entry.js.map → p-44395076.entry.js.map} +1 -1
  121. package/dist/viewer/{p-30a5748d.entry.js → p-45cc095e.entry.js} +2 -2
  122. package/dist/viewer/{p-d5a57757.entry.js → p-93311f46.entry.js} +2 -2
  123. package/dist/viewer/{p-CyiY_hsD.js → p-BEOO-Ypv.js} +2 -2
  124. package/dist/viewer/{p-CyiY_hsD.js.map → p-BEOO-Ypv.js.map} +1 -1
  125. package/dist/viewer/{p-CS8PfgcI.js → p-BJGbLthH.js} +2 -2
  126. package/dist/viewer/{p-CS8PfgcI.js.map → p-BJGbLthH.js.map} +1 -1
  127. package/dist/viewer/{p-D2IEHEGM.js → p-Br21pGVj.js} +2 -2
  128. package/dist/viewer/{p-D2IEHEGM.js.map → p-Br21pGVj.js.map} +1 -1
  129. package/dist/viewer/{p-kMZA0v7I.js → p-Bw_ryWU0.js} +2 -2
  130. package/dist/viewer/{p-kMZA0v7I.js.map → p-Bw_ryWU0.js.map} +1 -1
  131. package/dist/viewer/{p-DHK23fw4.js → p-C4_1Jc7H.js} +2 -2
  132. package/dist/viewer/{p-DHK23fw4.js.map → p-C4_1Jc7H.js.map} +1 -1
  133. package/dist/viewer/p-Cc3XhAoA.js +5 -0
  134. package/dist/viewer/p-Cc3XhAoA.js.map +1 -0
  135. package/dist/viewer/p-DYDhLlLS.js +5 -0
  136. package/dist/viewer/{p-_LpaX1ga.js.map → p-DYDhLlLS.js.map} +1 -1
  137. package/dist/viewer/{p-48020de1.entry.js → p-a94b626c.entry.js} +2 -2
  138. package/dist/viewer/{p-b79c295a.entry.js → p-ced98004.entry.js} +2 -2
  139. package/dist/viewer/{p-32a51a21.entry.js → p-dcb6ddfe.entry.js} +2 -2
  140. package/dist/viewer/p-dcb6ddfe.entry.js.map +1 -0
  141. package/dist/viewer/{p-cc835213.entry.js → p-ea45c3e9.entry.js} +2 -2
  142. package/dist/viewer/p-ebd9dd99.entry.js +5 -0
  143. package/dist/viewer/p-ebd9dd99.entry.js.map +1 -0
  144. package/dist/viewer/{p-edc2f914.entry.js → p-ecd594f2.entry.js} +2 -2
  145. package/dist/viewer/p-fec5a15d.entry.js +5 -0
  146. package/dist/viewer/p-fec5a15d.entry.js.map +1 -0
  147. package/dist/viewer/viewer.esm.js +1 -1
  148. package/package.json +9 -9
  149. package/dist/cjs/streamAttributes-nCF7u7lv.js.map +0 -1
  150. package/dist/components/p-Cku0WCYo.js +0 -5
  151. package/dist/components/p-CvEK3ZK1.js +0 -5
  152. package/dist/components/p-CvEK3ZK1.js.map +0 -1
  153. package/dist/components/p-Y8W_BXUk.js +0 -5
  154. package/dist/esm/streamAttributes-Bj2xDHfI.js.map +0 -1
  155. package/dist/viewer/p-32a51a21.entry.js.map +0 -1
  156. package/dist/viewer/p-4dd67d16.entry.js +0 -5
  157. package/dist/viewer/p-4dd67d16.entry.js.map +0 -1
  158. package/dist/viewer/p-7cb9c9bb.entry.js.map +0 -1
  159. package/dist/viewer/p-BhKTTmpL.js +0 -5
  160. package/dist/viewer/p-BhKTTmpL.js.map +0 -1
  161. package/dist/viewer/p-_LpaX1ga.js +0 -5
  162. package/dist/viewer/p-e4913b06.entry.js +0 -5
  163. package/dist/viewer/p-fd3a5837.entry.js +0 -5
  164. package/dist/viewer/p-fd3a5837.entry.js.map +0 -1
  165. /package/dist/components/{p-COznr3CH.js.map → p-5bk1mHRt.js.map} +0 -0
  166. /package/dist/components/{p-D3bzgaCV.js.map → p-B8530k7R.js.map} +0 -0
  167. /package/dist/components/{p-CWcvgy8e.js.map → p-BCuMPvZO.js.map} +0 -0
  168. /package/dist/components/{p-Cxz4L6FA.js.map → p-Bwtyddca.js.map} +0 -0
  169. /package/dist/components/{p-Ca253f0h.js.map → p-Bx42CNGV.js.map} +0 -0
  170. /package/dist/components/{p-D3in41xo.js.map → p-CTi-0-dI.js.map} +0 -0
  171. /package/dist/components/{p-D1Vdomj_.js.map → p-D_h07qsA.js.map} +0 -0
  172. /package/dist/components/{p-BNRm88jS.js.map → p-KidjtXKE.js.map} +0 -0
  173. /package/dist/viewer/{p-00540193.entry.js.map → p-1506f9a2.entry.js.map} +0 -0
  174. /package/dist/viewer/{p-5cfb3047.entry.js.map → p-293d8f3f.entry.js.map} +0 -0
  175. /package/dist/viewer/{p-9a39315d.entry.js.map → p-2faddbf8.entry.js.map} +0 -0
  176. /package/dist/viewer/{p-30a5748d.entry.js.map → p-45cc095e.entry.js.map} +0 -0
  177. /package/dist/viewer/{p-d5a57757.entry.js.map → p-93311f46.entry.js.map} +0 -0
  178. /package/dist/viewer/{p-48020de1.entry.js.map → p-a94b626c.entry.js.map} +0 -0
  179. /package/dist/viewer/{p-b79c295a.entry.js.map → p-ced98004.entry.js.map} +0 -0
  180. /package/dist/viewer/{p-cc835213.entry.js.map → p-ea45c3e9.entry.js.map} +0 -0
  181. /package/dist/viewer/{p-edc2f914.entry.js.map → p-ecd594f2.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{h as e,F as t,r as i,H as o}from"./p-CCVkga9Q.js";import{q as a,v as r,h as c}from"./p-2UsvOTHJ.js";import{r as n}from"./p-BxtKMwBH.js";import{O as d,g as s,S as f}from"./p-BhKTTmpL.js";import"./p-BAhfr1Nx.js";import{c as b}from"./p-Dw4-tG-V.js";import"./p-5kcpg4MZ.js";import"./p-CG9AChtV.js";import"./p-CDM7zNn0.js";const l={front:{direction:r.back(),quaternion:a.create()},back:{direction:r.forward(),quaternion:a.fromAxisAngle(r.up(),Math.PI)},left:{direction:r.left(),quaternion:a.fromAxisAngle(r.down(),Math.PI/2)},right:{direction:r.right(),quaternion:a.fromAxisAngle(r.up(),Math.PI/2)},top:{direction:r.up(),quaternion:a.fromAxisAngle(r.right(),-Math.PI/2)},bottom:{direction:r.down(),quaternion:a.fromAxisAngle(r.left(),-Math.PI/2)}};const h=({label:i,length:o,rotationAxis:n})=>{const d={width:`${o+5}px`};const s=a.fromAxisAngle(n,Math.PI/2);const f=r.scale(o+15,r.right());return e(t,null,e("vertex-viewer-dom-group",{quaternion:s},e("vertex-viewer-dom-element",{style:d,billboardOff:true,interactionsOff:true},e("div",{class:`triad-axis triad-axis-${i.toLowerCase()}`})),e("vertex-viewer-dom-element",{rotation:c.create({x:Math.PI/2,y:0,z:0}),style:d,billboardOff:true,interactionsOff:true},e("div",{class:`triad-axis triad-axis-${i.toLowerCase()}`})),e("vertex-viewer-dom-element",{position:f,interactionsOff:true},e("div",{class:`triad-label triad-label-${i.toLowerCase()}`},i))))};const g=({label:t,length:i,side:o,disabled:a,onPointerDown:c})=>{const{direction:n,quaternion:d}=l[o];const s=r.scale(i/2-.1,n);return e("vertex-viewer-dom-element",{class:b("cube-side",{disabled:a}),position:s,quaternion:d,style:{width:`${i}px`,height:`${i}px`},onPointerDown:c,billboardOff:true},e("div",{class:`cube-side-face cube-side-face-${t.toLowerCase()}`},t))};const v=({length:t,face1Side:i,face1Corner:o,face2Side:a,face2Corner:c,face3Side:n,face3Corner:d,disabled:s,onPointerDown:f})=>{const{direction:h,quaternion:g}=l[i];const{direction:v,quaternion:u}=l[a];const{direction:w,quaternion:p}=l[n];const m=r.scale(t/2,h);const x=r.scale(t/2,v);const y=r.scale(t/2,w);const k={width:`${t}px`,height:`${t}px`};return e("vertex-viewer-dom-group",{class:b("cube-corner",{disabled:s}),onPointerDown:f},e("vertex-viewer-dom-element",{position:m,quaternion:g,style:k,billboardOff:true},e("div",{class:`cube-corner-face ${o}`})),e("vertex-viewer-dom-element",{position:x,quaternion:u,style:k,billboardOff:true},e("div",{class:`cube-corner-face ${c}`})),e("vertex-viewer-dom-element",{position:y,quaternion:p,style:k,billboardOff:true},e("div",{class:`cube-corner-face ${d}`})))};const u=({length:t,face1Side:i,face2Side:o,face1Edge:a,face2Edge:c,disabled:n,onPointerDown:d})=>{const{direction:s,quaternion:f}=l[i];const{direction:h,quaternion:g}=l[o];const v=r.scale(t/2,s);const u=r.scale(t/2,h);const w={width:`${t}px`,height:`${t}px`};return e("vertex-viewer-dom-group",{class:b("cube-edge",{disabled:n}),onPointerDown:d},e("vertex-viewer-dom-element",{position:v,quaternion:f,style:w,billboardOff:true},e("div",{class:`cube-edge-face ${a}`})),e("vertex-viewer-dom-element",{position:u,quaternion:g,style:w,billboardOff:true},e("div",{class:`cube-edge-face ${c}`})))};const w=({length:t})=>{const{direction:i,quaternion:o}=l.top;const a=r.scale(-t/2,i);return e("vertex-viewer-dom-element",{class:"cube-shadow",position:a,quaternion:o,style:{width:`${t}px`,height:`${t}px`},billboardOff:true,interactionsOff:true},e("div",{class:"cube-shadow-face"}))};const p=()=>`:host{--viewer-view-cube-side-background:var(--white);--viewer-view-cube-side-background-hover:var(--blue-500);--viewer-view-cube-side-background-hover-opacity:0.25;--viewer-view-cube-side-border:1.5px solid var(--neutral-500);--viewer-view-cube-edge-length:12px;--viewer-view-cube-opacity:0.8;--viewer-view-cube-triad-x-axis-color:var(--x-axis-color);--viewer-view-cube-triad-y-axis-color:var(--y-axis-color);--viewer-view-cube-triad-z-axis-color:var(--z-axis-color);color:var(--neutral-700);width:80px;height:80px;margin:20px;position:relative;display:flex;align-items:center;justify-content:center;user-select:none}.renderer{position:unset;width:100%;height:100%;overflow:visible !important}.reference-point{width:5px;height:5px;border-radius:50%;background-color:black}.triad{pointer-events:none}.triad-axis{width:100%;height:1.5px;outline:1px solid transparent;transform:translateX(50%)}.triad-axis-x{background-color:#ea3324}.triad-axis-y{background-color:#4faf32}.triad-axis-z{background-color:#0000ff}.triad-label{font-family:Arial, Helvetica, sans-serif;font-size:0.6875rem}.triad-label-x{color:var(--viewer-view-cube-triad-x-axis-color)}.triad-label-y{color:var(--viewer-view-cube-triad-y-axis-color)}.triad-label-z{color:var(--viewer-view-cube-triad-z-axis-color)}.cube{pointer-events:initial}.cube:hover .cube-side-face{opacity:1}.cube-side{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-side-face{box-sizing:border-box;font-size:0.875rem;text-transform:uppercase;width:100%;height:100%;background-color:var(--viewer-view-cube-side-background);border:var(--viewer-view-cube-side-border);display:flex;align-items:center;justify-content:center;outline:1px solid transparent;opacity:var(--viewer-view-cube-opacity);transition:opacity 0.2s ease-in-out}.cube-side-face::before{content:'';position:absolute;left:calc(var(--viewer-view-cube-edge-length) - 4px);right:calc(var(--viewer-view-cube-edge-length) - 4px);top:calc(var(--viewer-view-cube-edge-length) - 4px);bottom:calc(var(--viewer-view-cube-edge-length) - 4px)}.cube-corner,.cube-edge{position:relative}.cube-corner-face,.cube-edge-face{position:absolute;backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-edge-face.top{top:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.bottom{bottom:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.left{left:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-edge-face.right{right:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-corner-face{width:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-corner-face.top-left{top:0;left:0}.cube-corner-face.top-right{top:0;right:0}.cube-corner-face.bottom-right{bottom:0;right:0}.cube-corner-face.bottom-left{bottom:0;left:0}.cube-shadow{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-shadow-face{position:absolute;left:4px;right:4px;top:4px;bottom:4px;background-color:black;opacity:0.12;filter:blur(4px)}.cube-side-face,.cube-corner-face,.cube-edge-face{pointer-events:initial}.cube-corner .cube-corner-face,.cube-edge .cube-edge-face,.cube-side .cube-side-face::before{background:var(--viewer-view-cube-side-background-hover);opacity:0}.cube-corner:hover .cube-corner-face,.cube-edge:hover .cube-edge-face,.cube-side:hover .cube-side-face::before{opacity:var(--viewer-view-cube-side-background-hover-opacity)}.cube-corner.disabled,.cube-edge.disabled,.cube-side.disabled{pointer-events:none}`;const m=class{constructor(e){i(this,e);this.boxLength=80;this.triadPosition=r.origin();this.xPositiveLabel="Right";this.xNegativeLabel="Left";this.yPositiveLabel="Top";this.yNegativeLabel="Bottom";this.zPositiveLabel="Front";this.zNegativeLabel="Back";this.standardViewsOff=false;this.viewAll=true;this.animationDuration=500;this.triadOff=false;this.worldOrientation=d.DEFAULT;this.updateMatrices=()=>{var e;if(((e=this.viewer)===null||e===void 0?void 0:e.frame)!=null){const{camera:e}=this.viewer.frame.scene;const t=this.boxLength/2;this.triadPosition=r.create(-t-5,-t-5,-t-5);const i=3.125;const o=this.boxLength*i;const a=21.5;this.camera=new s(r.scale(o,r.negate(e.direction)),r.origin(),e.up,.1,100,1,a);this.worldOrientation=this.viewer.frame.scene.worldOrientation}}}handleViewerChanged(e,t){t===null||t===void 0?void 0:t.removeEventListener("frameDrawn",this.updateMatrices);e===null||e===void 0?void 0:e.addEventListener("frameDrawn",this.updateMatrices);this.updateMatrices()}handleStandardView(e){if(this.standardViewsOff){return async()=>undefined}else{return async()=>{if(this.viewer!=null){const t=await this.viewer.scene();const i=this.animationDuration>0?{animation:{milliseconds:this.animationDuration}}:{};const o=e.transformMatrix(this.worldOrientation.matrix);const a=t.boundingBox();if(!this.viewAll){t.camera().standardViewFixedLookAt(o).render(i)}else if((a===null||a===void 0?void 0:a.max)!=null&&r.isEqual(a.max,r.origin())&&r.isEqual(a.min,r.origin())){t.camera().standardView(o).render(i)}else{t.camera().standardView(o).viewAll().render(i)}}}}}componentWillLoad(){this.handleViewerChanged(this.viewer)}componentDidLoad(){if(this.rendererEl!=null){const e=new ResizeObserver((()=>this.handleRendererResized()));e.observe(this.rendererEl);this.handleRendererResized()}}handleRendererResized(){n((()=>{if(this.rendererEl!=null){const e=this.rendererEl.getBoundingClientRect();this.boxLength=Math.min(e.width,e.height)}}))}render(){return e(o,{key:"a3cea27b2376c4ffbe255168515b8c3f0e7ab5aa"},e("vertex-viewer-dom-renderer",{key:"7f1560abaf53c1dc5b8f43b9dade445917861656",ref:e=>this.rendererEl=e,class:"renderer",camera:this.camera},!this.triadOff&&e("vertex-viewer-dom-group",{key:"0671f7678ab3197709e98649d0ac36a1703614c6",class:"triad",position:this.triadPosition},e(h,{key:"b65eddeb99f9b93120246f8143886ac937afb57a",label:"X",length:this.boxLength,rotationAxis:r.origin()}),e(h,{key:"ba49dbda3e18e90e033453d06b509f31336fffe8",label:"Y",length:this.boxLength,rotationAxis:r.back()}),e(h,{key:"ff765198e6e11cc6b7b2d466766809b055c5ccdf",label:"Z",length:this.boxLength,rotationAxis:r.down()})),e("vertex-viewer-dom-group",{key:"0dd9aab195029c25a3090f35ee39c04ed45da8f8",class:"cube",matrix:this.worldOrientation.matrix},e(w,{key:"995e2af8e70518edcf949d5df72387463ff3cc0e",length:this.boxLength+10}),e(g,{key:"0864a044b3d79b9a483cd492b7a04a20fcf64f42",label:this.zPositiveLabel,length:this.boxLength,side:"front",onPointerDown:this.handleStandardView(f.FRONT),disabled:this.standardViewsOff}),e(g,{key:"8f9110528267a00b802f97a8543a896d9fc333f7",label:this.zNegativeLabel,length:this.boxLength,side:"back",onPointerDown:this.handleStandardView(f.BACK),disabled:this.standardViewsOff}),e(g,{key:"6848e1e273bc815ee40e0218cc15bdc80d1f2715",label:this.xNegativeLabel,length:this.boxLength,side:"left",onPointerDown:this.handleStandardView(f.LEFT),disabled:this.standardViewsOff}),e(g,{key:"825624a992f4d31d9faf7506c8e964392da041ab",label:this.xPositiveLabel,length:this.boxLength,side:"right",onPointerDown:this.handleStandardView(f.RIGHT),disabled:this.standardViewsOff}),e(g,{key:"f59f5693ce4f1b4a794f4665b3f920bf29c1f159",label:this.yPositiveLabel,length:this.boxLength,side:"top",onPointerDown:this.handleStandardView(f.TOP),disabled:this.standardViewsOff}),e(g,{key:"65b8c8a2f8cc5cbc7974ca0dc3e6c328e2ca0649",label:this.yNegativeLabel,length:this.boxLength,side:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM),disabled:this.standardViewsOff}),e(u,{key:"0923dfc3696b2c76e69069156c0f57d6cd4f8285",length:this.boxLength,face1Side:"top",face1Edge:"bottom",face2Side:"front",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_FRONT),disabled:this.standardViewsOff}),e(u,{key:"6bf8058fbb4e35b9a1ed8dc5ff772ed2d2995add",length:this.boxLength,face1Side:"front",face1Edge:"right",face2Side:"right",face2Edge:"left",onPointerDown:this.handleStandardView(f.FRONT_LEFT),disabled:this.standardViewsOff}),e(u,{key:"61f28c6cd18661c643ec1510305a8603efbd5cdb",length:this.boxLength,face1Side:"bottom",face1Edge:"top",face2Side:"front",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_FRONT),disabled:this.standardViewsOff}),e(u,{key:"6c62acdf92f6397ec3c381d10078215cf6a29ebb",length:this.boxLength,face1Side:"front",face1Edge:"left",face2Side:"left",face2Edge:"right",onPointerDown:this.handleStandardView(f.FRONT_RIGHT),disabled:this.standardViewsOff}),e(u,{key:"a94dc61cea93cae54e148c4f1ffc73a42717f986",length:this.boxLength,face1Side:"top",face1Edge:"right",face2Side:"right",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_LEFT),disabled:this.standardViewsOff}),e(u,{key:"4a97659a3aad5b162252091401ec666727d204be",length:this.boxLength,face1Side:"back",face1Edge:"left",face2Side:"right",face2Edge:"right",onPointerDown:this.handleStandardView(f.BACK_LEFT),disabled:this.standardViewsOff}),e(u,{key:"422acd7e4689eb7ae0403726a29a3784637bdfd6",length:this.boxLength,face1Side:"bottom",face1Edge:"right",face2Side:"right",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_LEFT),disabled:this.standardViewsOff}),e(u,{key:"afa5fb1b78c1fcbb78a48f040d5c868a4dd338fc",length:this.boxLength,face1Side:"top",face1Edge:"top",face2Side:"back",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_BACK),disabled:this.standardViewsOff}),e(u,{key:"e1aa294c3ed0a6e105929a7094cfbdeab26fe7c0",length:this.boxLength,face1Side:"back",face1Edge:"right",face2Side:"left",face2Edge:"left",onPointerDown:this.handleStandardView(f.BACK_RIGHT),disabled:this.standardViewsOff}),e(u,{key:"e3a83623df735d9987a279ef2e055d1f962cafbe",length:this.boxLength,face1Side:"bottom",face1Edge:"bottom",face2Side:"back",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_BACK),disabled:this.standardViewsOff}),e(u,{key:"ad1d8915f046ba5df73240489c2daf1703b6a310",length:this.boxLength,face1Side:"top",face1Edge:"left",face2Side:"left",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_RIGHT),disabled:this.standardViewsOff}),e(u,{key:"f0b94c0f3517d1f54cf0c23f74fa681607da3532",length:this.boxLength,face1Side:"bottom",face1Edge:"left",face2Side:"left",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"c814db371a4b47ba50084e69879845921eb6ba91",length:this.boxLength,face1Side:"top",face1Corner:"bottom-left",face2Side:"front",face2Corner:"top-left",face3Side:"left",face3Corner:"top-right",onPointerDown:this.handleStandardView(f.TOP_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"b0f81f620127d1533eeb675c66d74e1b3019cb3b",length:this.boxLength,face1Side:"top",face1Corner:"bottom-right",face2Side:"front",face2Corner:"top-right",face3Side:"right",face3Corner:"top-left",onPointerDown:this.handleStandardView(f.TOP_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{key:"254834f0214afa786b8997274e0dcbc4f1e5e31c",length:this.boxLength,face1Side:"bottom",face1Corner:"top-right",face2Side:"front",face2Corner:"bottom-right",face3Side:"right",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(f.BOTTOM_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{key:"847425b3886582ddb596408fbfcd2fcd9e424641",length:this.boxLength,face1Side:"bottom",face1Corner:"top-left",face2Side:"front",face2Corner:"bottom-left",face3Side:"left",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(f.BOTTOM_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"fe6eaffd1f06fe45a9fa3fb680d638f3623187aa",length:this.boxLength,face1Side:"top",face1Corner:"top-right",face2Side:"back",face2Corner:"top-left",face3Side:"right",face3Corner:"top-right",onPointerDown:this.handleStandardView(f.TOP_BACK_LEFT),disabled:this.standardViewsOff}),e(v,{key:"e4b8004047f4f1da2decc4b17d86297a67e38e9d",length:this.boxLength,face1Side:"top",face1Corner:"top-left",face2Side:"back",face2Corner:"top-right",face3Side:"left",face3Corner:"top-left",onPointerDown:this.handleStandardView(f.TOP_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"c06a8465a3b39828bf114faaa0039c8e32196441",length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-left",face2Side:"back",face2Corner:"bottom-right",face3Side:"left",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(f.BOTTOM_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"2ea208573579fd18a3b7fde9f0bbc3a5834e2652",length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-right",face2Side:"back",face2Corner:"bottom-left",face3Side:"right",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(f.BOTTOM_BACK_LEFT),disabled:this.standardViewsOff}))))}static get watchers(){return{viewer:[{handleViewerChanged:0}]}}};m.style=p();export{m as vertex_viewer_view_cube};
5
- //# sourceMappingURL=p-48020de1.entry.js.map
4
+ import{h as e,F as t,r as i,H as o}from"./p-CCVkga9Q.js";import{q as a,v as r,h as c}from"./p-2UsvOTHJ.js";import{r as n}from"./p-BxtKMwBH.js";import{O as d,g as s,S as f}from"./p-Cc3XhAoA.js";import"./p-BAhfr1Nx.js";import{c as b}from"./p-Dw4-tG-V.js";import"./p-5kcpg4MZ.js";import"./p-CG9AChtV.js";import"./p-CDM7zNn0.js";const l={front:{direction:r.back(),quaternion:a.create()},back:{direction:r.forward(),quaternion:a.fromAxisAngle(r.up(),Math.PI)},left:{direction:r.left(),quaternion:a.fromAxisAngle(r.down(),Math.PI/2)},right:{direction:r.right(),quaternion:a.fromAxisAngle(r.up(),Math.PI/2)},top:{direction:r.up(),quaternion:a.fromAxisAngle(r.right(),-Math.PI/2)},bottom:{direction:r.down(),quaternion:a.fromAxisAngle(r.left(),-Math.PI/2)}};const h=({label:i,length:o,rotationAxis:n})=>{const d={width:`${o+5}px`};const s=a.fromAxisAngle(n,Math.PI/2);const f=r.scale(o+15,r.right());return e(t,null,e("vertex-viewer-dom-group",{quaternion:s},e("vertex-viewer-dom-element",{style:d,billboardOff:true,interactionsOff:true},e("div",{class:`triad-axis triad-axis-${i.toLowerCase()}`})),e("vertex-viewer-dom-element",{rotation:c.create({x:Math.PI/2,y:0,z:0}),style:d,billboardOff:true,interactionsOff:true},e("div",{class:`triad-axis triad-axis-${i.toLowerCase()}`})),e("vertex-viewer-dom-element",{position:f,interactionsOff:true},e("div",{class:`triad-label triad-label-${i.toLowerCase()}`},i))))};const g=({label:t,length:i,side:o,disabled:a,onPointerDown:c})=>{const{direction:n,quaternion:d}=l[o];const s=r.scale(i/2-.1,n);return e("vertex-viewer-dom-element",{class:b("cube-side",{disabled:a}),position:s,quaternion:d,style:{width:`${i}px`,height:`${i}px`},onPointerDown:c,billboardOff:true},e("div",{class:`cube-side-face cube-side-face-${t.toLowerCase()}`},t))};const v=({length:t,face1Side:i,face1Corner:o,face2Side:a,face2Corner:c,face3Side:n,face3Corner:d,disabled:s,onPointerDown:f})=>{const{direction:h,quaternion:g}=l[i];const{direction:v,quaternion:u}=l[a];const{direction:w,quaternion:p}=l[n];const m=r.scale(t/2,h);const x=r.scale(t/2,v);const y=r.scale(t/2,w);const k={width:`${t}px`,height:`${t}px`};return e("vertex-viewer-dom-group",{class:b("cube-corner",{disabled:s}),onPointerDown:f},e("vertex-viewer-dom-element",{position:m,quaternion:g,style:k,billboardOff:true},e("div",{class:`cube-corner-face ${o}`})),e("vertex-viewer-dom-element",{position:x,quaternion:u,style:k,billboardOff:true},e("div",{class:`cube-corner-face ${c}`})),e("vertex-viewer-dom-element",{position:y,quaternion:p,style:k,billboardOff:true},e("div",{class:`cube-corner-face ${d}`})))};const u=({length:t,face1Side:i,face2Side:o,face1Edge:a,face2Edge:c,disabled:n,onPointerDown:d})=>{const{direction:s,quaternion:f}=l[i];const{direction:h,quaternion:g}=l[o];const v=r.scale(t/2,s);const u=r.scale(t/2,h);const w={width:`${t}px`,height:`${t}px`};return e("vertex-viewer-dom-group",{class:b("cube-edge",{disabled:n}),onPointerDown:d},e("vertex-viewer-dom-element",{position:v,quaternion:f,style:w,billboardOff:true},e("div",{class:`cube-edge-face ${a}`})),e("vertex-viewer-dom-element",{position:u,quaternion:g,style:w,billboardOff:true},e("div",{class:`cube-edge-face ${c}`})))};const w=({length:t})=>{const{direction:i,quaternion:o}=l.top;const a=r.scale(-t/2,i);return e("vertex-viewer-dom-element",{class:"cube-shadow",position:a,quaternion:o,style:{width:`${t}px`,height:`${t}px`},billboardOff:true,interactionsOff:true},e("div",{class:"cube-shadow-face"}))};const p=()=>`:host{--viewer-view-cube-side-background:var(--white);--viewer-view-cube-side-background-hover:var(--blue-500);--viewer-view-cube-side-background-hover-opacity:0.25;--viewer-view-cube-side-border:1.5px solid var(--neutral-500);--viewer-view-cube-edge-length:12px;--viewer-view-cube-opacity:0.8;--viewer-view-cube-triad-x-axis-color:var(--x-axis-color);--viewer-view-cube-triad-y-axis-color:var(--y-axis-color);--viewer-view-cube-triad-z-axis-color:var(--z-axis-color);color:var(--neutral-700);width:80px;height:80px;margin:20px;position:relative;display:flex;align-items:center;justify-content:center;user-select:none}.renderer{position:unset;width:100%;height:100%;overflow:visible !important}.reference-point{width:5px;height:5px;border-radius:50%;background-color:black}.triad{pointer-events:none}.triad-axis{width:100%;height:1.5px;outline:1px solid transparent;transform:translateX(50%)}.triad-axis-x{background-color:#ea3324}.triad-axis-y{background-color:#4faf32}.triad-axis-z{background-color:#0000ff}.triad-label{font-family:Arial, Helvetica, sans-serif;font-size:0.6875rem}.triad-label-x{color:var(--viewer-view-cube-triad-x-axis-color)}.triad-label-y{color:var(--viewer-view-cube-triad-y-axis-color)}.triad-label-z{color:var(--viewer-view-cube-triad-z-axis-color)}.cube{pointer-events:initial}.cube:hover .cube-side-face{opacity:1}.cube-side{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-side-face{box-sizing:border-box;font-size:0.875rem;text-transform:uppercase;width:100%;height:100%;background-color:var(--viewer-view-cube-side-background);border:var(--viewer-view-cube-side-border);display:flex;align-items:center;justify-content:center;outline:1px solid transparent;opacity:var(--viewer-view-cube-opacity);transition:opacity 0.2s ease-in-out}.cube-side-face::before{content:'';position:absolute;left:calc(var(--viewer-view-cube-edge-length) - 4px);right:calc(var(--viewer-view-cube-edge-length) - 4px);top:calc(var(--viewer-view-cube-edge-length) - 4px);bottom:calc(var(--viewer-view-cube-edge-length) - 4px)}.cube-corner,.cube-edge{position:relative}.cube-corner-face,.cube-edge-face{position:absolute;backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-edge-face.top{top:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.bottom{bottom:0;left:var(--viewer-view-cube-edge-length);right:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-edge-face.left{left:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-edge-face.right{right:0;top:var(--viewer-view-cube-edge-length);bottom:var(--viewer-view-cube-edge-length);width:var(--viewer-view-cube-edge-length)}.cube-corner-face{width:var(--viewer-view-cube-edge-length);height:var(--viewer-view-cube-edge-length)}.cube-corner-face.top-left{top:0;left:0}.cube-corner-face.top-right{top:0;right:0}.cube-corner-face.bottom-right{bottom:0;right:0}.cube-corner-face.bottom-left{bottom:0;left:0}.cube-shadow{backface-visibility:hidden;-webkit-backface-visibility:hidden}.cube-shadow-face{position:absolute;left:4px;right:4px;top:4px;bottom:4px;background-color:black;opacity:0.12;filter:blur(4px)}.cube-side-face,.cube-corner-face,.cube-edge-face{pointer-events:initial}.cube-corner .cube-corner-face,.cube-edge .cube-edge-face,.cube-side .cube-side-face::before{background:var(--viewer-view-cube-side-background-hover);opacity:0}.cube-corner:hover .cube-corner-face,.cube-edge:hover .cube-edge-face,.cube-side:hover .cube-side-face::before{opacity:var(--viewer-view-cube-side-background-hover-opacity)}.cube-corner.disabled,.cube-edge.disabled,.cube-side.disabled{pointer-events:none}`;const m=class{constructor(e){i(this,e);this.boxLength=80;this.triadPosition=r.origin();this.xPositiveLabel="Right";this.xNegativeLabel="Left";this.yPositiveLabel="Top";this.yNegativeLabel="Bottom";this.zPositiveLabel="Front";this.zNegativeLabel="Back";this.standardViewsOff=false;this.viewAll=true;this.animationDuration=500;this.triadOff=false;this.worldOrientation=d.DEFAULT;this.updateMatrices=()=>{var e;if(((e=this.viewer)===null||e===void 0?void 0:e.frame)!=null){const{camera:e}=this.viewer.frame.scene;const t=this.boxLength/2;this.triadPosition=r.create(-t-5,-t-5,-t-5);const i=3.125;const o=this.boxLength*i;const a=21.5;this.camera=new s(r.scale(o,r.negate(e.direction)),r.origin(),e.up,.1,100,1,a);this.worldOrientation=this.viewer.frame.scene.worldOrientation}}}handleViewerChanged(e,t){t===null||t===void 0?void 0:t.removeEventListener("frameDrawn",this.updateMatrices);e===null||e===void 0?void 0:e.addEventListener("frameDrawn",this.updateMatrices);this.updateMatrices()}handleStandardView(e){if(this.standardViewsOff){return async()=>undefined}else{return async()=>{if(this.viewer!=null){const t=await this.viewer.scene();const i=this.animationDuration>0?{animation:{milliseconds:this.animationDuration}}:{};const o=e.transformMatrix(this.worldOrientation.matrix);const a=t.boundingBox();if(!this.viewAll){t.camera().standardViewFixedLookAt(o).render(i)}else if((a===null||a===void 0?void 0:a.max)!=null&&r.isEqual(a.max,r.origin())&&r.isEqual(a.min,r.origin())){t.camera().standardView(o).render(i)}else{t.camera().standardView(o).viewAll().render(i)}}}}}componentWillLoad(){this.handleViewerChanged(this.viewer)}componentDidLoad(){if(this.rendererEl!=null){const e=new ResizeObserver((()=>this.handleRendererResized()));e.observe(this.rendererEl);this.handleRendererResized()}}handleRendererResized(){n((()=>{if(this.rendererEl!=null){const e=this.rendererEl.getBoundingClientRect();this.boxLength=Math.min(e.width,e.height)}}))}render(){return e(o,{key:"a3cea27b2376c4ffbe255168515b8c3f0e7ab5aa"},e("vertex-viewer-dom-renderer",{key:"7f1560abaf53c1dc5b8f43b9dade445917861656",ref:e=>this.rendererEl=e,class:"renderer",camera:this.camera},!this.triadOff&&e("vertex-viewer-dom-group",{key:"0671f7678ab3197709e98649d0ac36a1703614c6",class:"triad",position:this.triadPosition},e(h,{key:"b65eddeb99f9b93120246f8143886ac937afb57a",label:"X",length:this.boxLength,rotationAxis:r.origin()}),e(h,{key:"ba49dbda3e18e90e033453d06b509f31336fffe8",label:"Y",length:this.boxLength,rotationAxis:r.back()}),e(h,{key:"ff765198e6e11cc6b7b2d466766809b055c5ccdf",label:"Z",length:this.boxLength,rotationAxis:r.down()})),e("vertex-viewer-dom-group",{key:"0dd9aab195029c25a3090f35ee39c04ed45da8f8",class:"cube",matrix:this.worldOrientation.matrix},e(w,{key:"995e2af8e70518edcf949d5df72387463ff3cc0e",length:this.boxLength+10}),e(g,{key:"0864a044b3d79b9a483cd492b7a04a20fcf64f42",label:this.zPositiveLabel,length:this.boxLength,side:"front",onPointerDown:this.handleStandardView(f.FRONT),disabled:this.standardViewsOff}),e(g,{key:"8f9110528267a00b802f97a8543a896d9fc333f7",label:this.zNegativeLabel,length:this.boxLength,side:"back",onPointerDown:this.handleStandardView(f.BACK),disabled:this.standardViewsOff}),e(g,{key:"6848e1e273bc815ee40e0218cc15bdc80d1f2715",label:this.xNegativeLabel,length:this.boxLength,side:"left",onPointerDown:this.handleStandardView(f.LEFT),disabled:this.standardViewsOff}),e(g,{key:"825624a992f4d31d9faf7506c8e964392da041ab",label:this.xPositiveLabel,length:this.boxLength,side:"right",onPointerDown:this.handleStandardView(f.RIGHT),disabled:this.standardViewsOff}),e(g,{key:"f59f5693ce4f1b4a794f4665b3f920bf29c1f159",label:this.yPositiveLabel,length:this.boxLength,side:"top",onPointerDown:this.handleStandardView(f.TOP),disabled:this.standardViewsOff}),e(g,{key:"65b8c8a2f8cc5cbc7974ca0dc3e6c328e2ca0649",label:this.yNegativeLabel,length:this.boxLength,side:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM),disabled:this.standardViewsOff}),e(u,{key:"0923dfc3696b2c76e69069156c0f57d6cd4f8285",length:this.boxLength,face1Side:"top",face1Edge:"bottom",face2Side:"front",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_FRONT),disabled:this.standardViewsOff}),e(u,{key:"6bf8058fbb4e35b9a1ed8dc5ff772ed2d2995add",length:this.boxLength,face1Side:"front",face1Edge:"right",face2Side:"right",face2Edge:"left",onPointerDown:this.handleStandardView(f.FRONT_LEFT),disabled:this.standardViewsOff}),e(u,{key:"61f28c6cd18661c643ec1510305a8603efbd5cdb",length:this.boxLength,face1Side:"bottom",face1Edge:"top",face2Side:"front",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_FRONT),disabled:this.standardViewsOff}),e(u,{key:"6c62acdf92f6397ec3c381d10078215cf6a29ebb",length:this.boxLength,face1Side:"front",face1Edge:"left",face2Side:"left",face2Edge:"right",onPointerDown:this.handleStandardView(f.FRONT_RIGHT),disabled:this.standardViewsOff}),e(u,{key:"a94dc61cea93cae54e148c4f1ffc73a42717f986",length:this.boxLength,face1Side:"top",face1Edge:"right",face2Side:"right",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_LEFT),disabled:this.standardViewsOff}),e(u,{key:"4a97659a3aad5b162252091401ec666727d204be",length:this.boxLength,face1Side:"back",face1Edge:"left",face2Side:"right",face2Edge:"right",onPointerDown:this.handleStandardView(f.BACK_LEFT),disabled:this.standardViewsOff}),e(u,{key:"422acd7e4689eb7ae0403726a29a3784637bdfd6",length:this.boxLength,face1Side:"bottom",face1Edge:"right",face2Side:"right",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_LEFT),disabled:this.standardViewsOff}),e(u,{key:"afa5fb1b78c1fcbb78a48f040d5c868a4dd338fc",length:this.boxLength,face1Side:"top",face1Edge:"top",face2Side:"back",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_BACK),disabled:this.standardViewsOff}),e(u,{key:"e1aa294c3ed0a6e105929a7094cfbdeab26fe7c0",length:this.boxLength,face1Side:"back",face1Edge:"right",face2Side:"left",face2Edge:"left",onPointerDown:this.handleStandardView(f.BACK_RIGHT),disabled:this.standardViewsOff}),e(u,{key:"e3a83623df735d9987a279ef2e055d1f962cafbe",length:this.boxLength,face1Side:"bottom",face1Edge:"bottom",face2Side:"back",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_BACK),disabled:this.standardViewsOff}),e(u,{key:"ad1d8915f046ba5df73240489c2daf1703b6a310",length:this.boxLength,face1Side:"top",face1Edge:"left",face2Side:"left",face2Edge:"top",onPointerDown:this.handleStandardView(f.TOP_RIGHT),disabled:this.standardViewsOff}),e(u,{key:"f0b94c0f3517d1f54cf0c23f74fa681607da3532",length:this.boxLength,face1Side:"bottom",face1Edge:"left",face2Side:"left",face2Edge:"bottom",onPointerDown:this.handleStandardView(f.BOTTOM_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"c814db371a4b47ba50084e69879845921eb6ba91",length:this.boxLength,face1Side:"top",face1Corner:"bottom-left",face2Side:"front",face2Corner:"top-left",face3Side:"left",face3Corner:"top-right",onPointerDown:this.handleStandardView(f.TOP_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"b0f81f620127d1533eeb675c66d74e1b3019cb3b",length:this.boxLength,face1Side:"top",face1Corner:"bottom-right",face2Side:"front",face2Corner:"top-right",face3Side:"right",face3Corner:"top-left",onPointerDown:this.handleStandardView(f.TOP_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{key:"254834f0214afa786b8997274e0dcbc4f1e5e31c",length:this.boxLength,face1Side:"bottom",face1Corner:"top-right",face2Side:"front",face2Corner:"bottom-right",face3Side:"right",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(f.BOTTOM_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{key:"847425b3886582ddb596408fbfcd2fcd9e424641",length:this.boxLength,face1Side:"bottom",face1Corner:"top-left",face2Side:"front",face2Corner:"bottom-left",face3Side:"left",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(f.BOTTOM_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"fe6eaffd1f06fe45a9fa3fb680d638f3623187aa",length:this.boxLength,face1Side:"top",face1Corner:"top-right",face2Side:"back",face2Corner:"top-left",face3Side:"right",face3Corner:"top-right",onPointerDown:this.handleStandardView(f.TOP_BACK_LEFT),disabled:this.standardViewsOff}),e(v,{key:"e4b8004047f4f1da2decc4b17d86297a67e38e9d",length:this.boxLength,face1Side:"top",face1Corner:"top-left",face2Side:"back",face2Corner:"top-right",face3Side:"left",face3Corner:"top-left",onPointerDown:this.handleStandardView(f.TOP_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"c06a8465a3b39828bf114faaa0039c8e32196441",length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-left",face2Side:"back",face2Corner:"bottom-right",face3Side:"left",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(f.BOTTOM_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{key:"2ea208573579fd18a3b7fde9f0bbc3a5834e2652",length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-right",face2Side:"back",face2Corner:"bottom-left",face3Side:"right",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(f.BOTTOM_BACK_LEFT),disabled:this.standardViewsOff}))))}static get watchers(){return{viewer:[{handleViewerChanged:0}]}}};m.style=p();export{m as vertex_viewer_view_cube};
5
+ //# sourceMappingURL=p-a94b626c.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{r as e,h as t,F as i,H as s}from"./p-CCVkga9Q.js";import{p as r,a}from"./p-2UsvOTHJ.js";import"./p-D2IEHEGM.js";import"./p-BNuMPeJ8.js";import"./p-ux1ckSDN.js";import"./p-5kcpg4MZ.js";import"./p-BhKTTmpL.js";import{M as n}from"./p-DyL2wWm6.js";import{t as l}from"./p-CEDqc5sS.js";import"./p-CDM7zNn0.js";import"./p-CG9AChtV.js";import"./p-BAhfr1Nx.js";const o=()=>`:host{display:block;--viewer-measurement-line-stroke:var(--white);--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:1.25px;--viewer-measurement-line-fill:var(--neutral-900);--viewer-measurement-line-fill-width:2px;--viewer-measurement-line-start-cap-visibility:initial;--viewer-measurement-line-end-cap-visibility:initial}svg{width:100%;height:100%}.line-stroke{stroke-width:calc( var(--viewer-measurement-line-fill-width) + var(--viewer-measurement-line-stroke-width) );stroke:var(--viewer-measurement-line-stroke);opacity:var(--viewer-measurement-line-stroke-opacity)}.line-fill{stroke-width:var(--viewer-measurement-line-fill-width);stroke:var(--viewer-measurement-line-fill)}.start-cap{visibility:var(--viewer-measurement-line-start-cap-visibility)}.end-cap{visibility:var(--viewer-measurement-line-end-cap-visibility)}`;const c=class{constructor(t){e(this,t);this.start=r.create();this.end=r.create();this.capLength=0;this.pointerEvents="none"}render(){const e=a.fromPoints(this.start,this.end);const i=v(this.start,this.end,e,this.capLength);const s=v(this.start,this.end,e,this.capLength+1);return t("svg",{key:"323aa791a7c2bdc86782e2f8b760814d77be2425"},t("g",{key:"8cd508b94de3a13ffc310d3b473af23282f8a738",class:"line-stroke","pointer-events":this.pointerEvents},t("line",{key:"bac6d7aba6fd4291de05724f32d2fe98951d0689",class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),t("line",{key:"1737e250c626425bd6957d999093f52554306f51",class:"start-cap",x1:s.startEndCap.start.x,y1:s.startEndCap.start.y,x2:s.startEndCap.end.x,y2:s.startEndCap.end.y}),t("line",{key:"493750b2fcfbddc3e3babfc49b021fba02137553",class:"end-cap",x1:s.endEndCap.start.x,y1:s.endEndCap.start.y,x2:s.endEndCap.end.x,y2:s.endEndCap.end.y})),t("g",{key:"12e2f699db1b0dfdea6dbc2c1c3ce59f18208f72",class:"line-fill","pointer-events":this.pointerEvents},t("line",{key:"df123676bd96bb1393c2650a17fbab7df314e543",class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),t("line",{key:"8349df59c4a3bcb7b5c0be89f46e1088c9e4b76c",class:"start-cap",x1:i.startEndCap.start.x,y1:i.startEndCap.start.y,x2:i.startEndCap.end.x,y2:i.startEndCap.end.y}),t("line",{key:"2c3a122698d55e69c391cf859c8e5cd3a0b032f3",class:"end-cap",x1:i.endEndCap.start.x,y1:i.endEndCap.start.y,x2:i.endEndCap.end.x,y2:i.endEndCap.end.y})))}};function v(e,t,i,s){return{startEndCap:m(e,i,s),endEndCap:m(t,i,s)}}function m(e,t,i){const s=t+Math.PI/2;const a=r.add(e,r.polar(i/2,s));const n=r.add(e,r.polar(i/2,s+Math.PI));return{start:a,end:n}}c.style=o();const d=({overlay:e,viewport:i,camera:s})=>{if(e.type==="line"){return t(h,{overlay:e,viewport:i,camera:s})}else{return t(u,{overlay:e,viewport:i,camera:s})}};const h=({overlay:e,camera:i,viewport:s})=>{const{start:r,end:a}=l(e,{camera:i,viewport:s});return t("vertex-viewer-measurement-line",{class:"measurement-line",start:r,end:a})};const u=({overlay:{x:e,y:s,z:r},camera:a,viewport:n})=>{const o={camera:a,viewport:n};const{start:c,end:v}=l(e,o);const{start:m,end:d}=l(s,o);const{start:h,end:u}=l(r,o);return t(i,null,t("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-x",start:c,end:v}),t("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-y",start:m,end:d}),t("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-z",start:h,end:u}))};const p=()=>`:host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;--viewer-measurement-overlays-x-axis-color:var(--x-axis-color);--viewer-measurement-overlays-y-axis-color:var(--y-axis-color);--viewer-measurement-overlays-z-axis-color:var(--z-axis-color)}.measurement-line{position:absolute;width:100%;height:100%}.measurement-line.distance-vector-x{--viewer-measurement-line-fill:var( --viewer-measurement-overlays-x-axis-color )}.measurement-line.distance-vector-y{--viewer-measurement-line-fill:var( --viewer-measurement-overlays-y-axis-color )}.measurement-line.distance-vector-z{--viewer-measurement-line-fill:var( --viewer-measurement-overlays-z-axis-color )}`;const y=class{constructor(t){e(this,t);this.measurementOverlays=new n;this.overlays=[];this.updateCamera=()=>{var e,t;this.camera=(t=(e=this.viewer)===null||e===void 0?void 0:e.frame)===null||t===void 0?void 0:t.scene.camera}}handleMeasurementOverlaysChanged(){this.removeModelListeners();this.addModelListeners();this.updateOverlays()}handleViewerChanged(e,t){this.removeViewerListeners(t);this.addViewerListeners();this.updateCamera()}componentWillLoad(){this.addModelListeners();this.addViewerListeners();this.updateOverlays();this.updateCamera()}addModelListeners(){this.onOverlaysChangedListener=this.measurementOverlays.onOverlaysChanged((()=>this.updateOverlays()))}removeModelListeners(){var e;(e=this.onOverlaysChangedListener)===null||e===void 0?void 0:e.dispose();this.onOverlaysChangedListener=undefined}addViewerListeners(){var e;(e=this.viewer)===null||e===void 0?void 0:e.addEventListener("frameReceived",this.updateCamera)}removeViewerListeners(e){e===null||e===void 0?void 0:e.removeEventListener("frameReceived",this.updateCamera)}updateOverlays(){this.overlays=this.measurementOverlays.getOverlays()}render(){return t(s,{key:"965a86f907cfe18797db57f488d38ac29bae8682"},this.overlays.map((e=>{if(this.camera!=null&&this.viewer!=null){return t(d,{overlay:e,viewport:this.viewer.viewport,camera:this.camera})}})))}static get watchers(){return{measurementOverlays:[{handleMeasurementOverlaysChanged:0}],viewer:[{handleViewerChanged:0}]}}};y.style=p();export{c as vertex_viewer_measurement_line,y as vertex_viewer_measurement_overlays};
5
- //# sourceMappingURL=p-b79c295a.entry.js.map
4
+ import{r as e,h as t,F as i,H as s}from"./p-CCVkga9Q.js";import{p as r,a}from"./p-2UsvOTHJ.js";import"./p-Br21pGVj.js";import"./p-BNuMPeJ8.js";import"./p-ux1ckSDN.js";import"./p-5kcpg4MZ.js";import"./p-Cc3XhAoA.js";import{M as n}from"./p-DyL2wWm6.js";import{t as l}from"./p-CEDqc5sS.js";import"./p-CDM7zNn0.js";import"./p-CG9AChtV.js";import"./p-BAhfr1Nx.js";const o=()=>`:host{display:block;--viewer-measurement-line-stroke:var(--white);--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:1.25px;--viewer-measurement-line-fill:var(--neutral-900);--viewer-measurement-line-fill-width:2px;--viewer-measurement-line-start-cap-visibility:initial;--viewer-measurement-line-end-cap-visibility:initial}svg{width:100%;height:100%}.line-stroke{stroke-width:calc( var(--viewer-measurement-line-fill-width) + var(--viewer-measurement-line-stroke-width) );stroke:var(--viewer-measurement-line-stroke);opacity:var(--viewer-measurement-line-stroke-opacity)}.line-fill{stroke-width:var(--viewer-measurement-line-fill-width);stroke:var(--viewer-measurement-line-fill)}.start-cap{visibility:var(--viewer-measurement-line-start-cap-visibility)}.end-cap{visibility:var(--viewer-measurement-line-end-cap-visibility)}`;const c=class{constructor(t){e(this,t);this.start=r.create();this.end=r.create();this.capLength=0;this.pointerEvents="none"}render(){const e=a.fromPoints(this.start,this.end);const i=v(this.start,this.end,e,this.capLength);const s=v(this.start,this.end,e,this.capLength+1);return t("svg",{key:"323aa791a7c2bdc86782e2f8b760814d77be2425"},t("g",{key:"8cd508b94de3a13ffc310d3b473af23282f8a738",class:"line-stroke","pointer-events":this.pointerEvents},t("line",{key:"bac6d7aba6fd4291de05724f32d2fe98951d0689",class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),t("line",{key:"1737e250c626425bd6957d999093f52554306f51",class:"start-cap",x1:s.startEndCap.start.x,y1:s.startEndCap.start.y,x2:s.startEndCap.end.x,y2:s.startEndCap.end.y}),t("line",{key:"493750b2fcfbddc3e3babfc49b021fba02137553",class:"end-cap",x1:s.endEndCap.start.x,y1:s.endEndCap.start.y,x2:s.endEndCap.end.x,y2:s.endEndCap.end.y})),t("g",{key:"12e2f699db1b0dfdea6dbc2c1c3ce59f18208f72",class:"line-fill","pointer-events":this.pointerEvents},t("line",{key:"df123676bd96bb1393c2650a17fbab7df314e543",class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),t("line",{key:"8349df59c4a3bcb7b5c0be89f46e1088c9e4b76c",class:"start-cap",x1:i.startEndCap.start.x,y1:i.startEndCap.start.y,x2:i.startEndCap.end.x,y2:i.startEndCap.end.y}),t("line",{key:"2c3a122698d55e69c391cf859c8e5cd3a0b032f3",class:"end-cap",x1:i.endEndCap.start.x,y1:i.endEndCap.start.y,x2:i.endEndCap.end.x,y2:i.endEndCap.end.y})))}};function v(e,t,i,s){return{startEndCap:m(e,i,s),endEndCap:m(t,i,s)}}function m(e,t,i){const s=t+Math.PI/2;const a=r.add(e,r.polar(i/2,s));const n=r.add(e,r.polar(i/2,s+Math.PI));return{start:a,end:n}}c.style=o();const d=({overlay:e,viewport:i,camera:s})=>{if(e.type==="line"){return t(h,{overlay:e,viewport:i,camera:s})}else{return t(u,{overlay:e,viewport:i,camera:s})}};const h=({overlay:e,camera:i,viewport:s})=>{const{start:r,end:a}=l(e,{camera:i,viewport:s});return t("vertex-viewer-measurement-line",{class:"measurement-line",start:r,end:a})};const u=({overlay:{x:e,y:s,z:r},camera:a,viewport:n})=>{const o={camera:a,viewport:n};const{start:c,end:v}=l(e,o);const{start:m,end:d}=l(s,o);const{start:h,end:u}=l(r,o);return t(i,null,t("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-x",start:c,end:v}),t("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-y",start:m,end:d}),t("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-z",start:h,end:u}))};const p=()=>`:host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none;--viewer-measurement-overlays-x-axis-color:var(--x-axis-color);--viewer-measurement-overlays-y-axis-color:var(--y-axis-color);--viewer-measurement-overlays-z-axis-color:var(--z-axis-color)}.measurement-line{position:absolute;width:100%;height:100%}.measurement-line.distance-vector-x{--viewer-measurement-line-fill:var( --viewer-measurement-overlays-x-axis-color )}.measurement-line.distance-vector-y{--viewer-measurement-line-fill:var( --viewer-measurement-overlays-y-axis-color )}.measurement-line.distance-vector-z{--viewer-measurement-line-fill:var( --viewer-measurement-overlays-z-axis-color )}`;const y=class{constructor(t){e(this,t);this.measurementOverlays=new n;this.overlays=[];this.updateCamera=()=>{var e,t;this.camera=(t=(e=this.viewer)===null||e===void 0?void 0:e.frame)===null||t===void 0?void 0:t.scene.camera}}handleMeasurementOverlaysChanged(){this.removeModelListeners();this.addModelListeners();this.updateOverlays()}handleViewerChanged(e,t){this.removeViewerListeners(t);this.addViewerListeners();this.updateCamera()}componentWillLoad(){this.addModelListeners();this.addViewerListeners();this.updateOverlays();this.updateCamera()}addModelListeners(){this.onOverlaysChangedListener=this.measurementOverlays.onOverlaysChanged((()=>this.updateOverlays()))}removeModelListeners(){var e;(e=this.onOverlaysChangedListener)===null||e===void 0?void 0:e.dispose();this.onOverlaysChangedListener=undefined}addViewerListeners(){var e;(e=this.viewer)===null||e===void 0?void 0:e.addEventListener("frameReceived",this.updateCamera)}removeViewerListeners(e){e===null||e===void 0?void 0:e.removeEventListener("frameReceived",this.updateCamera)}updateOverlays(){this.overlays=this.measurementOverlays.getOverlays()}render(){return t(s,{key:"965a86f907cfe18797db57f488d38ac29bae8682"},this.overlays.map((e=>{if(this.camera!=null&&this.viewer!=null){return t(d,{overlay:e,viewport:this.viewer.viewport,camera:this.camera})}})))}static get watchers(){return{measurementOverlays:[{handleMeasurementOverlaysChanged:0}],viewer:[{handleViewerChanged:0}]}}};y.style=p();export{c as vertex_viewer_measurement_line,y as vertex_viewer_measurement_overlays};
5
+ //# sourceMappingURL=p-ced98004.entry.js.map
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{r as i,c as t,h as e,H as n,a as o}from"./p-CCVkga9Q.js";import{p as a}from"./p-2UsvOTHJ.js";import{c as s}from"./p-Dw4-tG-V.js";import{g as r}from"./p-D0aTA_2m.js";import{t as l,c as h,a as d,P as v,g as p,b}from"./p-CxBXErQ8.js";import{r as c}from"./p-BxtKMwBH.js";import"./p-CG9AChtV.js";import"./p-CDM7zNn0.js";function u(i){return window.getComputedStyle(i)}const w=()=>`:host{--viewer-annotations-pin-label-background-color:var( --viewer-annotations-pin-accent-color );--viewer-annotations-pin-label-border-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-focused-border-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-color:var(--white);--viewer-annotations-pin-label-padding-y:0.375em;--viewer-annotations-pin-label-padding-x:0.5em;--viewer-annotations-pin-label-border-width:2px;--viewer-annotations-pin-label-border-style:solid;--viewer-annotations-pin-label-border-radius:0.25em;--viewer-annotations-pin-label-min-width:2rem;--viewer-annotations-pin-label-max-width:25rem;--viewer-annotations-pin-label-max-height:50rem;overflow:hidden;pointer-events:none}:host([mode='']) .pin-label{color:var(--viewer-annotations-pin-label-color);background:var(--viewer-annotations-pin-label-background-color)}.pin-label-text{font-family:Arial, Helvetica, sans-serif;font-size:0.875rem;line-height:1rem;word-break:break-word;white-space:pre-wrap}.pin-label-input-wrapper{display:flex;position:absolute;pointer-events:auto;box-sizing:border-box;min-width:var(--viewer-annotations-pin-label-min-width);max-width:var(--viewer-annotations-pin-label-max-width);max-height:var(--viewer-annotations-pin-label-max-height);background:var(--viewer-annotations-pin-label-background-color);border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);border-radius:var(--viewer-annotations-pin-label-border-radius)}.pin-label-input-wrapper.focused{min-width:var(--viewer-annotations-pin-label-max-width);border-color:var(--viewer-annotations-pin-label-focused-border-color)}.pin-input-drag-target{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.pin-label-input{resize:none;position:relative;outline:none;border:none;word-break:break-word;padding:0 0 0 0;background-color:transparent;margin:var(--viewer-annotations-pin-label-padding-y) var(--viewer-annotations-pin-label-padding-x);width:var(--viewer-annotations-pin-label-min-width);flex-grow:1;overflow:hidden;max-width:calc( var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)) )}.pin-label-input.readonly{pointer-events:auto;color:black;cursor:pointer}.pin-label-hidden{position:absolute;visibility:hidden;pointer-events:none;width:auto;height:auto;box-sizing:border-box;border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);margin:var(--viewer-annotations-pin-label-padding-y) 0;padding:0 var(--viewer-annotations-pin-label-padding-x);max-width:calc( var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)) )}`;const f=class{constructor(e){i(this,e);this.labelChanged=t(this,"labelChanged");this.labelFocused=t(this,"labelFocused");this.labelBlurred=t(this,"labelBlurred");this.value="";this.focused=false;this.textareaRows=1;this.computeContentSize=()=>{c((()=>{if(this.contentEl!=null){this.contentElBounds=this.contentEl.getBoundingClientRect();const i=u(this.contentEl);this.textareaRows=Math.max(1,Math.ceil((Number.parseFloat(i.getPropertyValue("height"))-Number.parseFloat(i.getPropertyValue("borderWidth"))*2)/Number.parseFloat(i.getPropertyValue("lineHeight"))))}}))};this.handleInputKeyDown=i=>{i.stopPropagation();if(i.key==="Enter"&&(i.ctrlKey||i.metaKey||i.shiftKey)){this.textareaRows+=1;this.value+="\n"}else if(i.key==="Enter"){i.preventDefault();this.submit()}};this.handlePointerDown=i=>{var t;if(!this.focused){if(this.elementBounds!=null){if(i.buttons!==2){i.preventDefault();i.stopPropagation()}this.relativePointerDownPosition=l(r(i,this.elementBounds),this.elementBounds);this.pinPointerDownPosition=(t=this.pin)===null||t===void 0?void 0:t.label.point;window.addEventListener("pointermove",this.handlePointerMove);window.addEventListener("pointerup",this.handlePointerUp)}}};this.handlePointerMove=i=>{var t;if(this.elementBounds!=null&&this.relativePointerDownPosition&&this.pinPointerDownPosition!=null){i.preventDefault();i.stopPropagation();const e=r(i,this.elementBounds);const n=l(e,this.elementBounds);const o=a.subtract(n,this.relativePointerDownPosition);const s=this.pin!=null?{...this.pin,label:{...this.pin.label,point:a.add(this.pinPointerDownPosition,o)}}:undefined;if(s){(t=this.pinController)===null||t===void 0?void 0:t.updatePin(s);this.computeScreenPosition()}}};this.handlePointerUp=i=>{var t,e;if(((t=this.pinController)===null||t===void 0?void 0:t.getToolMode())==="edit"&&this.relativePointerDownPosition!=null&&this.elementBounds!=null){const t=h(this.relativePointerDownPosition,this.elementBounds);const n=a.distance(t,r(i,this.elementBounds));if(n<=2){this.focused=true;this.labelFocused.emit((e=this.pin)===null||e===void 0?void 0:e.id)}}this.relativePointerDownPosition=undefined;this.pinPointerDownPosition=undefined;window.removeEventListener("pointermove",this.handlePointerMove);window.removeEventListener("pointerup",this.handlePointerUp)};this.handleTextBlur=()=>{this.submit()};this.handleTextInput=i=>{const t=i.target;this.value=t.value}}async setFocus(){var i,t,e;if(typeof((i=this.inputEl)===null||i===void 0?void 0:i.focus)==="function"){this.focused=true;this.labelFocused.emit((t=this.pin)===null||t===void 0?void 0:t.id);(e=this.inputEl)===null||e===void 0?void 0:e.focus()}}async submit(){var i,t;this.focused=false;this.labelBlurred.emit((i=this.pin)===null||i===void 0?void 0:i.id);if(this.pin!=null){(t=this.pinController)===null||t===void 0?void 0:t.updatePin({...this.pin,label:{point:this.pin.label.point,text:this.value}})}}watchFocusChange(){var i,t;this.labelChanged.emit();if(this.focused){(i=this.pinController)===null||i===void 0?void 0:i.setSelectedPinId((t=this.pin)===null||t===void 0?void 0:t.id)}}watchPinChange(){var i,t;this.value=(t=(i=this.pin)===null||i===void 0?void 0:i.label.text)!==null&&t!==void 0?t:"";this.computeScreenPosition()}watchElementBoundsChange(){this.computeScreenPosition()}componentWillLoad(){var i,t;this.value=(t=(i=this.pin)===null||i===void 0?void 0:i.label.text)!==null&&t!==void 0?t:"";this.computeScreenPosition();if(this.pinController==null){this.pinController=new d(new v)}}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>{this.labelChanged.emit()}));this.contentResizeObserver=new ResizeObserver(this.computeContentSize);if(this.hostEl!=null){this.resizeObserver.observe(this.hostEl)}if(this.contentEl!=null){this.contentResizeObserver.observe(this.contentEl)}}disconnectedCallback(){var i,t;(i=this.resizeObserver)===null||i===void 0?void 0:i.disconnect();(t=this.contentResizeObserver)===null||t===void 0?void 0:t.disconnect()}componentDidRender(){if(this.focused&&this.inputEl!=null){this.setFocus()}}render(){var i,t,o;const{primaryColor:a,accentColor:r}=p(this.pin);return e(n,{key:"2eeca89781ad06fce5403bee5d967496c4886201"},e("div",{key:"9f6ca00bfadf8b6090db219ce05ec2eae28f341f",class:s("pin-label-input-wrapper",{focused:this.focused}),onPointerDown:this.handlePointerDown,style:{top:`${((i=this.computedScreenPosition)===null||i===void 0?void 0:i.y.toString())||0}px`,left:`${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.x.toString())||0}px`,minWidth:this.computeMinWidth(),maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight(),borderColor:a,background:r}},e("textarea",{key:"faee5e02d2f9bd18dd2e367e4e52b4325ac3c782",id:`pin-label-input-${(o=this.pin)===null||o===void 0?void 0:o.id}`,class:s("pin-label-input","pin-label-text",{["readonly"]:!this.focused}),disabled:!this.focused,ref:i=>this.inputEl=i,value:this.value,rows:this.textareaRows,onKeyDown:this.handleInputKeyDown,onInput:this.handleTextInput,onBlur:this.handleTextBlur}),!this.focused&&e("div",{key:"2851d39b6cf87c64ef585a9f1967c689f01d030e",class:"pin-input-drag-target",onPointerDown:this.handlePointerDown})),e("div",{key:"a7c2e114227e9fe744b0ef4e42c3fd5abd5c626e",ref:i=>this.contentEl=i,class:s("pin-label-text","pin-label-hidden"),style:{maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},this.hiddenContent()))}hiddenContent(){return this.value.includes("\n")?this.value.split("\n").reduce(((i,t)=>[...i,t,e("br",null)]),[]):[this.value]}computeMinWidth(){if(this.contentElBounds!=null){const i=`${this.contentElBounds.width+8}px`;return`min(${i}, ${this.computeMaxWidth()})`}else{return`var(--viewer-annotations-pin-label-min-width)`}}computeMaxWidth(){const i=`var(--viewer-annotations-pin-label-max-width)`;return`min(${i}, ${this.computeRemainingWidth()})`}computeMaxHeight(){const i=`var(--viewer-annotations-pin-label-max-height)`;return`min(${i}, ${this.computeRemainingHeight()})`}computeRemainingWidth(){var i,t;return`calc(${((i=this.elementBounds)===null||i===void 0?void 0:i.width.toString())||0}px - ${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.x.toString())||0}px)`}computeRemainingHeight(){var i,t;return`calc(${((i=this.elementBounds)===null||i===void 0?void 0:i.height.toString())||0}px - ${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.y.toString())||0}px)`}computeScreenPosition(){this.computedScreenPosition=b(this.pin)&&this.elementBounds!=null&&this.pin.label.point!=null?h(this.pin.label.point,this.elementBounds):undefined}get hostEl(){return o(this)}static get watchers(){return{focused:[{watchFocusChange:0}],pin:[{watchPinChange:0}],elementBounds:[{watchElementBoundsChange:0}]}}};f.style=w();const m=()=>`:host{--viewer-annotations-pin-label-line-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-line-width:1;overflow:hidden;pointer-events:none}.label-line{pointer-events:auto;stroke:var(--viewer-annotations-pin-label-line-color);stroke-width:var(--viewer-annotations-pin-label-line-width);cursor:default}.svg{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;height:100%;width:100%}`;const g=class{constructor(t){i(this,t)}render(){var i,t,o,a;const{primaryColor:s}=p(this.pin);return e(n,{key:"daf863da93b542c252fdedcf3a6effc95d86942c"},e("svg",{key:"4a1b04fd9fb7a04b3a46cdbaf2b5ded7efa0bc2c",class:"svg"},e("line",{key:"809a20f602e6c459f3d8988b931406ca63770337",class:"label-line",style:{stroke:s},x1:(i=this.labelPoint)===null||i===void 0?void 0:i.x,y1:(t=this.labelPoint)===null||t===void 0?void 0:t.y,x2:(o=this.pinPoint)===null||o===void 0?void 0:o.x,y2:(a=this.pinPoint)===null||a===void 0?void 0:a.y})))}};g.style=m();export{f as vertex_viewer_pin_label,g as vertex_viewer_pin_label_line};
5
- //# sourceMappingURL=p-32a51a21.entry.js.map
4
+ import{r as i,c as t,h as n,H as e,a as o}from"./p-CCVkga9Q.js";import{p as a}from"./p-2UsvOTHJ.js";import{c as s}from"./p-Dw4-tG-V.js";import{g as r}from"./p-D0aTA_2m.js";import{t as l,c as h,a as d,P as v,g as p,b}from"./p-CxBXErQ8.js";import{r as c}from"./p-BxtKMwBH.js";import"./p-CG9AChtV.js";import"./p-CDM7zNn0.js";function u(i){return window.getComputedStyle(i)}const w=()=>`:host{--viewer-annotations-pin-label-background-color:var( --viewer-annotations-pin-accent-color );--viewer-annotations-pin-label-border-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-focused-border-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-color:var(--white);--viewer-annotations-pin-label-padding-y:0.375em;--viewer-annotations-pin-label-padding-x:0.5em;--viewer-annotations-pin-label-border-width:2px;--viewer-annotations-pin-label-border-style:solid;--viewer-annotations-pin-label-border-radius:0.25em;--viewer-annotations-pin-label-min-width:2rem;--viewer-annotations-pin-label-max-width:25rem;--viewer-annotations-pin-label-max-height:50rem;overflow:hidden;pointer-events:none}:host([mode='']) .pin-label{color:var(--viewer-annotations-pin-label-color);background:var(--viewer-annotations-pin-label-background-color)}.pin-label-text{font-family:Arial, Helvetica, sans-serif;font-size:0.875rem;line-height:1rem;word-break:break-word;white-space:pre-wrap}.pin-label-input-wrapper{display:flex;position:absolute;pointer-events:auto;box-sizing:border-box;min-width:var(--viewer-annotations-pin-label-min-width);max-width:var(--viewer-annotations-pin-label-max-width);max-height:var(--viewer-annotations-pin-label-max-height);background:var(--viewer-annotations-pin-label-background-color);border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);border-radius:var(--viewer-annotations-pin-label-border-radius)}.pin-label-input-wrapper.focused{min-width:var(--viewer-annotations-pin-label-max-width);border-color:var(--viewer-annotations-pin-label-focused-border-color)}.pin-input-drag-target{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.pin-label-input{resize:none;position:relative;outline:none;border:none;word-break:break-word;padding:0 0 0 0;background-color:transparent;margin:var(--viewer-annotations-pin-label-padding-y) var(--viewer-annotations-pin-label-padding-x);width:var(--viewer-annotations-pin-label-min-width);flex-grow:1;overflow:hidden;max-width:calc( var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)) )}.pin-label-input.readonly{pointer-events:auto;color:black;cursor:pointer}.pin-label-hidden{position:absolute;visibility:hidden;pointer-events:none;width:auto;height:auto;box-sizing:border-box;border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);margin:var(--viewer-annotations-pin-label-padding-y) 0;padding:0 var(--viewer-annotations-pin-label-padding-x);max-width:calc( var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)) )}`;const f=class{constructor(n){i(this,n);this.labelChanged=t(this,"labelChanged");this.labelFocused=t(this,"labelFocused");this.labelBlurred=t(this,"labelBlurred");this.value="";this.focused=false;this.textareaRows=1;this.computeContentSize=()=>{c((()=>{if(this.contentEl!=null){this.contentElBounds=this.contentEl.getBoundingClientRect();const i=u(this.contentEl);this.textareaRows=Math.max(1,Math.ceil((Number.parseFloat(i.getPropertyValue("height"))-Number.parseFloat(i.getPropertyValue("borderWidth"))*2)/Number.parseFloat(i.getPropertyValue("lineHeight"))))}}))};this.handleInputKeyDown=i=>{i.stopPropagation();if(i.key==="Enter"&&(i.ctrlKey||i.metaKey||i.shiftKey)){this.textareaRows+=1;this.value+="\n"}else if(i.key==="Enter"){i.preventDefault();this.submit()}};this.handlePointerDown=i=>{var t;if(!this.focused){if(this.elementBounds!=null){if(i.buttons!==2){i.preventDefault();i.stopPropagation()}this.relativePointerDownPosition=l(r(i,this.elementBounds),this.elementBounds);this.pinPointerDownPosition=(t=this.pin)===null||t===void 0?void 0:t.label.point;window.addEventListener("pointermove",this.handlePointerMove);window.addEventListener("pointerup",this.handlePointerUp)}}};this.handlePointerMove=i=>{var t;if(this.elementBounds!=null&&this.relativePointerDownPosition&&this.pinPointerDownPosition!=null){i.preventDefault();i.stopPropagation();const n=r(i,this.elementBounds);const e=l(n,this.elementBounds);const o=a.subtract(e,this.relativePointerDownPosition);const s=this.pin!=null?{...this.pin,label:{...this.pin.label,point:a.add(this.pinPointerDownPosition,o)}}:undefined;if(s){(t=this.pinController)===null||t===void 0?void 0:t.updatePin(s);this.computeScreenPosition()}}};this.handlePointerUp=i=>{var t,n;if(((t=this.pinController)===null||t===void 0?void 0:t.getToolMode())==="edit"&&this.relativePointerDownPosition!=null&&this.elementBounds!=null){const t=h(this.relativePointerDownPosition,this.elementBounds);const e=a.distance(t,r(i,this.elementBounds));if(e<=2){this.focused=true;this.labelFocused.emit((n=this.pin)===null||n===void 0?void 0:n.id)}}this.relativePointerDownPosition=undefined;this.pinPointerDownPosition=undefined;window.removeEventListener("pointermove",this.handlePointerMove);window.removeEventListener("pointerup",this.handlePointerUp)};this.handleTextBlur=()=>{this.submit()};this.handleTextInput=i=>{const t=i.target;this.value=t.value}}async setFocus(){var i,t,n;if(typeof((i=this.inputEl)===null||i===void 0?void 0:i.focus)==="function"){this.focused=true;this.labelFocused.emit((t=this.pin)===null||t===void 0?void 0:t.id);(n=this.inputEl)===null||n===void 0?void 0:n.focus()}}async submit(){var i,t;this.focused=false;this.labelBlurred.emit((i=this.pin)===null||i===void 0?void 0:i.id);if(this.pin!=null){(t=this.pinController)===null||t===void 0?void 0:t.updatePin({...this.pin,label:{point:this.pin.label.point,text:this.value}})}}watchFocusChange(){var i,t;this.labelChanged.emit();if(this.focused){(i=this.pinController)===null||i===void 0?void 0:i.setSelectedPinId((t=this.pin)===null||t===void 0?void 0:t.id)}}watchPinChange(){var i,t;this.value=(t=(i=this.pin)===null||i===void 0?void 0:i.label.text)!==null&&t!==void 0?t:"";this.computeScreenPosition()}watchElementBoundsChange(){this.computeScreenPosition()}componentWillLoad(){var i,t;this.value=(t=(i=this.pin)===null||i===void 0?void 0:i.label.text)!==null&&t!==void 0?t:"";this.computeScreenPosition();if(this.pinController==null){this.pinController=new d(new v)}}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>{this.labelChanged.emit()}));this.contentResizeObserver=new ResizeObserver(this.computeContentSize);if(this.hostEl!=null){this.resizeObserver.observe(this.hostEl)}if(this.contentEl!=null){this.contentResizeObserver.observe(this.contentEl)}}disconnectedCallback(){var i,t;(i=this.resizeObserver)===null||i===void 0?void 0:i.disconnect();(t=this.contentResizeObserver)===null||t===void 0?void 0:t.disconnect()}componentDidRender(){if(this.focused&&this.inputEl!=null){this.setFocus()}}render(){var i,t,o;const{primaryColor:a,accentColor:r}=p(this.pin);return n(e,{key:"2eeca89781ad06fce5403bee5d967496c4886201"},n("div",{key:"9f6ca00bfadf8b6090db219ce05ec2eae28f341f",class:s("pin-label-input-wrapper",{focused:this.focused}),onPointerDown:this.handlePointerDown,style:{top:`${((i=this.computedScreenPosition)===null||i===void 0?void 0:i.y.toString())||0}px`,left:`${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.x.toString())||0}px`,minWidth:this.computeMinWidth(),maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight(),borderColor:a,background:r}},n("textarea",{key:"beaf273457ceeadd30f709fff580f2af5b1c366a",id:`pin-label-input-${(o=this.pin)===null||o===void 0?void 0:o.id}`,class:s("pin-label-input","pin-label-text",{["readonly"]:!this.focused}),disabled:!this.focused,ref:i=>this.inputEl=i,value:this.value,rows:this.textareaRows,onKeyDown:this.handleInputKeyDown,onInput:this.handleTextInput,onBlur:this.handleTextBlur,"aria-label":"Pin label input"}),!this.focused&&n("div",{key:"6ba9750253ae2e9de2a48a9b2ce31f6971b7b0a1",class:"pin-input-drag-target",onPointerDown:this.handlePointerDown})),n("div",{key:"7a474943d854cda9fe7859a30441bcc06a758010",ref:i=>this.contentEl=i,class:s("pin-label-text","pin-label-hidden"),style:{maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},this.hiddenContent()))}hiddenContent(){return this.value.includes("\n")?this.value.split("\n").reduce(((i,t)=>[...i,t,n("br",null)]),[]):[this.value]}computeMinWidth(){if(this.contentElBounds!=null){const i=`${this.contentElBounds.width+8}px`;return`min(${i}, ${this.computeMaxWidth()})`}else{return`var(--viewer-annotations-pin-label-min-width)`}}computeMaxWidth(){const i=`var(--viewer-annotations-pin-label-max-width)`;return`min(${i}, ${this.computeRemainingWidth()})`}computeMaxHeight(){const i=`var(--viewer-annotations-pin-label-max-height)`;return`min(${i}, ${this.computeRemainingHeight()})`}computeRemainingWidth(){var i,t;return`calc(${((i=this.elementBounds)===null||i===void 0?void 0:i.width.toString())||0}px - ${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.x.toString())||0}px)`}computeRemainingHeight(){var i,t;return`calc(${((i=this.elementBounds)===null||i===void 0?void 0:i.height.toString())||0}px - ${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.y.toString())||0}px)`}computeScreenPosition(){this.computedScreenPosition=b(this.pin)&&this.elementBounds!=null&&this.pin.label.point!=null?h(this.pin.label.point,this.elementBounds):undefined}get hostEl(){return o(this)}static get watchers(){return{focused:[{watchFocusChange:0}],pin:[{watchPinChange:0}],elementBounds:[{watchElementBoundsChange:0}]}}};f.style=w();const m=()=>`:host{--viewer-annotations-pin-label-line-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-line-width:1;overflow:hidden;pointer-events:none}.label-line{pointer-events:auto;stroke:var(--viewer-annotations-pin-label-line-color);stroke-width:var(--viewer-annotations-pin-label-line-width);cursor:default}.svg{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;height:100%;width:100%}`;const g=class{constructor(t){i(this,t)}render(){var i,t,o,a;const{primaryColor:s}=p(this.pin);return n(e,{key:"daf863da93b542c252fdedcf3a6effc95d86942c"},n("svg",{key:"4a1b04fd9fb7a04b3a46cdbaf2b5ded7efa0bc2c",class:"svg"},n("line",{key:"809a20f602e6c459f3d8988b931406ca63770337",class:"label-line",style:{stroke:s},x1:(i=this.labelPoint)===null||i===void 0?void 0:i.x,y1:(t=this.labelPoint)===null||t===void 0?void 0:t.y,x2:(o=this.pinPoint)===null||o===void 0?void 0:o.x,y2:(a=this.pinPoint)===null||a===void 0?void 0:a.y})))}};g.style=m();export{f as vertex_viewer_pin_label,g as vertex_viewer_pin_label_line};
5
+ //# sourceMappingURL=p-dcb6ddfe.entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getComputedStyle","el","window","viewerPinLabelCss","VertexPinLabel","constructor","hostRef","this","value","focused","textareaRows","computeContentSize","readDOM","contentEl","contentElBounds","getBoundingClientRect","computedStyles","Math","max","ceil","Number","parseFloat","getPropertyValue","handleInputKeyDown","event","stopPropagation","key","ctrlKey","metaKey","shiftKey","preventDefault","submit","handlePointerDown","elementBounds","buttons","relativePointerDownPosition","translatePointToRelative","getMouseClientPosition","pinPointerDownPosition","_a","pin","label","point","addEventListener","handlePointerMove","handlePointerUp","relative","relativeDelta","Point","subtract","myUpdatedPin","add","undefined","pinController","updatePin","computeScreenPosition","getToolMode","pointerDownScreen","translatePointToScreen","distanceBetweenStartAndEndPoint","distance","labelFocused","emit","_b","id","removeEventListener","handleTextBlur","handleTextInput","input","target","setFocus","inputEl","focus","_c","labelBlurred","text","watchFocusChange","labelChanged","setSelectedPinId","watchPinChange","watchElementBoundsChange","componentWillLoad","PinController","PinModel","componentDidLoad","resizeObserver","ResizeObserver","contentResizeObserver","hostEl","observe","disconnectedCallback","disconnect","componentDidRender","render","primaryColor","accentColor","getPinColors","h","Host","class","classNames","onPointerDown","style","top","computedScreenPosition","y","toString","left","x","minWidth","computeMinWidth","maxWidth","computeMaxWidth","maxHeight","computeMaxHeight","borderColor","background","disabled","ref","rows","onKeyDown","onInput","onBlur","hiddenContent","includes","split","reduce","res","str","expected","width","computeRemainingWidth","computeRemainingHeight","height","isTextPin","viewerPinLabelLineCss","VertexPinLabelLine","stroke","x1","labelPoint","y1","x2","pinPoint","y2","_d"],"sources":["src/components/viewer-pin-label/utils.ts","src/components/viewer-pin-label/viewer-pin-label.css?tag=vertex-viewer-pin-label","src/components/viewer-pin-label/viewer-pin-label.tsx","src/components/viewer-pin-label-line/viewer-pin-label-line.css?tag=vertex-viewer-pin-label-line","src/components/viewer-pin-label-line/viewer-pin-label-line.tsx"],"sourcesContent":["export function getComputedStyle(el: HTMLElement): CSSStyleDeclaration {\n return window.getComputedStyle(el);\n}\n",":host {\n /**\n * @prop --viewer-annotations-pin-label-background-color: A CSS color that\n * specifies the color of the label background\n */\n --viewer-annotations-pin-label-background-color: var(\n --viewer-annotations-pin-accent-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-border-color: A CSS color that\n * specifies the color of the label's border\n */\n --viewer-annotations-pin-label-border-color: var(\n --viewer-annotations-pin-primary-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-focused-border-color: A CSS color that\n * specifies the color of the label's border when focused. \n */\n --viewer-annotations-pin-label-focused-border-color: var(\n --viewer-annotations-pin-primary-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-color: A CSS color that\n * specifies the color of the label \n */\n --viewer-annotations-pin-label-color: var(--white);\n\n /**\n * @prop --viewer-annotations-pin-label-padding-y: A var that\n * specifies the vertical padding of the label\n */\n --viewer-annotations-pin-label-padding-y: 0.375em;\n\n /**\n * @prop --viewer-annotations-pin-label-padding-x: A var that\n * specifies the horizontal padding of the label\n */\n --viewer-annotations-pin-label-padding-x: 0.5em;\n\n /**\n * @prop --viewer-annotations-pin-label-border-width: A CSS length that\n * specifies the width of the border on this label. Defaults to `2px`.\n */\n --viewer-annotations-pin-label-border-width: 2px;\n\n /**\n * @prop --viewer-annotations-pin-label-border-style: A CSS variable that\n * specifies the style of border on this label. Defaults to `solid`.\n */\n --viewer-annotations-pin-label-border-style: solid;\n\n /**\n * @prop --viewer-annotations-pin-label-border-radius: A var that\n * specifies the border radius of the label\n */\n --viewer-annotations-pin-label-border-radius: 0.25em;\n\n /**\n * @prop --viewer-annotations-pin-label-min-width: A CSS length that\n * specifies the minimum width of the label. Defaults to `2rem`.\n */\n --viewer-annotations-pin-label-min-width: 2rem;\n\n /**\n * @prop --viewer-annotations-pin-label-max-width: A CSS length that\n * specifies the maximum width of the label. Defaults to `25rem`.\n */\n --viewer-annotations-pin-label-max-width: 25rem;\n\n /**\n * @prop --viewer-annotations-pin-label-max-height: A CSS length that\n * specifies the maximum height of the label. Defaults to `50rem`.\n */\n --viewer-annotations-pin-label-max-height: 50rem;\n\n overflow: hidden;\n pointer-events: none;\n}\n\n:host([mode='']) .pin-label {\n color: var(--viewer-annotations-pin-label-color);\n background: var(--viewer-annotations-pin-label-background-color);\n}\n\n.pin-label-text {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 0.875rem;\n line-height: 1rem;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.pin-label-input-wrapper {\n display: flex;\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n min-width: var(--viewer-annotations-pin-label-min-width);\n max-width: var(--viewer-annotations-pin-label-max-width);\n max-height: var(--viewer-annotations-pin-label-max-height);\n background: var(--viewer-annotations-pin-label-background-color);\n border-width: var(--viewer-annotations-pin-label-border-width);\n border-style: var(--viewer-annotations-pin-label-border-style);\n border-color: var(--viewer-annotations-pin-label-border-color);\n border-radius: var(--viewer-annotations-pin-label-border-radius);\n}\n\n.pin-label-input-wrapper.focused {\n min-width: var(--viewer-annotations-pin-label-max-width);\n border-color: var(--viewer-annotations-pin-label-focused-border-color);\n}\n\n.pin-input-drag-target {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n\n.pin-label-input {\n resize: none;\n position: relative;\n outline: none;\n border: none;\n word-break: break-word;\n padding: 0 0 0 0;\n background-color: transparent;\n margin: var(--viewer-annotations-pin-label-padding-y)\n var(--viewer-annotations-pin-label-padding-x);\n width: var(--viewer-annotations-pin-label-min-width);\n flex-grow: 1;\n overflow: hidden;\n max-width: calc(\n var(--viewer-annotations-pin-label-max-width) -\n calc(2 * var(--viewer-annotations-pin-label-padding-x))\n );\n}\n\n.pin-label-input.readonly {\n pointer-events: auto;\n color: black;\n cursor: pointer;\n}\n\n.pin-label-hidden {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n width: auto;\n height: auto;\n box-sizing: border-box;\n border-width: var(--viewer-annotations-pin-label-border-width);\n border-style: var(--viewer-annotations-pin-label-border-style);\n border-color: var(--viewer-annotations-pin-label-border-color);\n margin: var(--viewer-annotations-pin-label-padding-y) 0;\n padding: 0 var(--viewer-annotations-pin-label-padding-x);\n max-width: calc(\n var(--viewer-annotations-pin-label-max-width) -\n calc(2 * var(--viewer-annotations-pin-label-padding-x))\n );\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h,\n Host,\n JSX,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Point } from '@vertexvis/geometry';\nimport classNames from 'classnames';\n\nimport { getMouseClientPosition } from '../../lib/dom';\nimport { PinController } from '../../lib/pins/controller';\nimport {\n getPinColors,\n isTextPin,\n PinModel,\n TextPin,\n} from '../../lib/pins/model';\nimport { readDOM } from '../../lib/stencil';\nimport {\n translatePointToRelative,\n translatePointToScreen,\n} from '../viewer-pin-tool/utils';\nimport { getComputedStyle } from './utils';\n\n@Component({\n tag: 'vertex-viewer-pin-label',\n styleUrl: 'viewer-pin-label.css',\n shadow: false,\n})\nexport class VertexPinLabel {\n /**\n * The pin to draw for the group\n */\n @Prop()\n public pin?: TextPin;\n\n /**\n * The dimensions of the canvas for the pins\n */\n @Prop()\n public elementBounds?: DOMRect;\n\n /**\n * The current text value of the component. Value is updated on user\n * interaction.\n */\n @Prop({ mutable: true })\n public value = '';\n\n /**\n * The controller that drives behavior for pin operations\n */\n @Prop({ mutable: true })\n public pinController?: PinController;\n\n /**\n * @internal\n */\n @Event({ bubbles: true })\n public labelChanged!: EventEmitter<void>;\n\n /**\n * Emitted whenever the label is focused, with the ID of the\n * associated pin (or undefined if no pin is provided).\n */\n @Event({ bubbles: true })\n public labelFocused!: EventEmitter<string | undefined>;\n\n /**\n * Emitted whenever the label is blurred, with the ID of the\n * associated pin (or undefined if no pin is provided).\n */\n @Event({ bubbles: true })\n public labelBlurred!: EventEmitter<string | undefined>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n @State()\n private focused = false;\n\n @State()\n private computedScreenPosition?: Point.Point;\n\n @State()\n private textareaRows = 1;\n\n @State()\n private contentElBounds?: DOMRect;\n\n private relativePointerDownPosition?: Point.Point;\n private pinPointerDownPosition?: Point.Point;\n\n private inputEl?: HTMLTextAreaElement;\n private contentEl?: HTMLDivElement;\n\n private resizeObserver?: ResizeObserver;\n private contentResizeObserver?: ResizeObserver;\n\n /**\n * Gives focus to the component's internal text input.\n */\n @Method()\n public async setFocus(): Promise<void> {\n // HTMLInputElement.focus() doesn't exist in tests.\n if (typeof this.inputEl?.focus === 'function') {\n this.focused = true;\n this.labelFocused.emit(this.pin?.id);\n this.inputEl?.focus();\n }\n }\n\n /**\n * @internal\n * submits the current text, unfocuses the input and emits the blur event to consumers\n */\n @Method()\n public async submit(): Promise<void> {\n this.focused = false;\n this.labelBlurred.emit(this.pin?.id);\n if (this.pin != null) {\n this.pinController?.updatePin({\n ...this.pin,\n label: {\n point: this.pin.label.point,\n text: this.value,\n },\n });\n }\n }\n\n @Watch('focused')\n protected watchFocusChange(): void {\n this.labelChanged.emit();\n\n if (this.focused) {\n this.pinController?.setSelectedPinId(this.pin?.id);\n }\n }\n\n @Watch('pin')\n protected watchPinChange(): void {\n this.value = this.pin?.label.text ?? '';\n this.computeScreenPosition();\n }\n\n @Watch('elementBounds')\n protected watchElementBoundsChange(): void {\n this.computeScreenPosition();\n }\n\n protected componentWillLoad(): void {\n this.value = this.pin?.label.text ?? '';\n this.computeScreenPosition();\n\n if (this.pinController == null) {\n this.pinController = new PinController(new PinModel());\n }\n }\n\n protected componentDidLoad(): void {\n this.resizeObserver = new ResizeObserver(() => {\n this.labelChanged.emit();\n });\n\n this.contentResizeObserver = new ResizeObserver(this.computeContentSize);\n\n if (this.hostEl != null) {\n this.resizeObserver.observe(this.hostEl);\n }\n\n if (this.contentEl != null) {\n this.contentResizeObserver.observe(this.contentEl);\n }\n }\n\n protected disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n this.contentResizeObserver?.disconnect();\n }\n\n protected componentDidRender(): void {\n if (this.focused && this.inputEl != null) {\n this.setFocus();\n }\n }\n\n protected render(): JSX.Element {\n const { primaryColor, accentColor } = getPinColors(this.pin);\n return (\n <Host>\n <div\n class={classNames('pin-label-input-wrapper', {\n focused: this.focused,\n })}\n onPointerDown={this.handlePointerDown}\n style={{\n top: `${this.computedScreenPosition?.y.toString() || 0}px`,\n left: `${this.computedScreenPosition?.x.toString() || 0}px`,\n minWidth: this.computeMinWidth(),\n maxWidth: this.computeMaxWidth(),\n maxHeight: this.computeMaxHeight(),\n borderColor: primaryColor,\n background: accentColor,\n }}\n >\n <textarea\n id={`pin-label-input-${this.pin?.id}`}\n class={classNames('pin-label-input', 'pin-label-text', {\n ['readonly']: !this.focused,\n })}\n disabled={!this.focused}\n ref={(ref) => (this.inputEl = ref)}\n value={this.value}\n rows={this.textareaRows}\n onKeyDown={this.handleInputKeyDown}\n onInput={this.handleTextInput}\n onBlur={this.handleTextBlur}\n aria-label=\"Pin label input\"\n />\n {/* This corrects for a behavior in Firefox where setting the `disabled` attribute to true */}\n {/* prevents any events from propagating. */}\n {!this.focused && (\n <div\n class=\"pin-input-drag-target\"\n onPointerDown={this.handlePointerDown}\n />\n )}\n </div>\n <div\n ref={(el) => (this.contentEl = el)}\n class={classNames('pin-label-text', 'pin-label-hidden')}\n style={{\n maxWidth: this.computeMaxWidth(),\n maxHeight: this.computeMaxHeight(),\n }}\n >\n {this.hiddenContent()}\n </div>\n </Host>\n );\n }\n\n private hiddenContent(): Array<string | HTMLBRElement> {\n // This corrects some inconsistencies in how a newline character\n // is represented in a div. Leveraging `<br>`s results in a more\n // consistent representation of the newlines in a textarea.\n return this.value.includes('\\n')\n ? this.value\n .split('\\n')\n .reduce(\n (res, str) => [...res, str, <br />],\n [] as Array<string | HTMLBRElement>,\n )\n : [this.value];\n }\n\n private computeMinWidth(): string {\n if (this.contentElBounds != null) {\n const expected = `${this.contentElBounds.width + 8}px`;\n\n return `min(${expected}, ${this.computeMaxWidth()})`;\n } else {\n return `var(--viewer-annotations-pin-label-min-width)`;\n }\n }\n\n private computeMaxWidth(): string {\n const expected = `var(--viewer-annotations-pin-label-max-width)`;\n\n return `min(${expected}, ${this.computeRemainingWidth()})`;\n }\n\n private computeMaxHeight(): string {\n const expected = `var(--viewer-annotations-pin-label-max-height)`;\n\n return `min(${expected}, ${this.computeRemainingHeight()})`;\n }\n\n private computeRemainingWidth(): string {\n return `calc(${this.elementBounds?.width.toString() || 0}px - ${\n this.computedScreenPosition?.x.toString() || 0\n }px)`;\n }\n\n private computeRemainingHeight(): string {\n return `calc(${this.elementBounds?.height.toString() || 0}px - ${\n this.computedScreenPosition?.y.toString() || 0\n }px)`;\n }\n\n private computeScreenPosition(): void {\n this.computedScreenPosition =\n isTextPin(this.pin) &&\n this.elementBounds != null &&\n this.pin.label.point != null\n ? translatePointToScreen(this.pin.label.point, this.elementBounds)\n : undefined;\n }\n\n private computeContentSize = (): void => {\n readDOM(() => {\n if (this.contentEl != null) {\n this.contentElBounds = this.contentEl.getBoundingClientRect();\n const computedStyles = getComputedStyle(this.contentEl);\n this.textareaRows = Math.max(\n 1,\n Math.ceil(\n (Number.parseFloat(computedStyles.getPropertyValue('height')) -\n Number.parseFloat(\n computedStyles.getPropertyValue('borderWidth'),\n ) *\n 2) /\n Number.parseFloat(computedStyles.getPropertyValue('lineHeight')),\n ),\n );\n }\n });\n };\n\n private handleInputKeyDown = (event: KeyboardEvent): void => {\n event.stopPropagation();\n if (\n event.key === 'Enter' &&\n (event.ctrlKey || event.metaKey || event.shiftKey)\n ) {\n this.textareaRows += 1;\n this.value += '\\n';\n } else if (event.key === 'Enter') {\n event.preventDefault();\n this.submit();\n }\n };\n\n private handlePointerDown = (event: PointerEvent): void => {\n if (!this.focused) {\n if (this.elementBounds != null) {\n if (event.buttons !== 2) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.relativePointerDownPosition = translatePointToRelative(\n getMouseClientPosition(event, this.elementBounds),\n this.elementBounds,\n );\n this.pinPointerDownPosition = this.pin?.label.point;\n\n window.addEventListener('pointermove', this.handlePointerMove);\n window.addEventListener('pointerup', this.handlePointerUp);\n }\n }\n };\n\n private handlePointerMove = (event: PointerEvent): void => {\n if (\n this.elementBounds != null &&\n this.relativePointerDownPosition &&\n this.pinPointerDownPosition != null\n ) {\n // Prevent selection of any text while interacting with the label\n event.preventDefault();\n event.stopPropagation();\n\n const point = getMouseClientPosition(event, this.elementBounds);\n const relative = translatePointToRelative(point, this.elementBounds);\n\n const relativeDelta = Point.subtract(\n relative,\n this.relativePointerDownPosition,\n );\n\n const myUpdatedPin =\n this.pin != null\n ? {\n ...this.pin,\n label: {\n ...this.pin.label,\n point: Point.add(this.pinPointerDownPosition, relativeDelta),\n },\n }\n : undefined;\n\n if (myUpdatedPin) {\n this.pinController?.updatePin(myUpdatedPin);\n this.computeScreenPosition();\n }\n }\n };\n\n private handlePointerUp = (event: PointerEvent): void => {\n if (\n this.pinController?.getToolMode() === 'edit' &&\n this.relativePointerDownPosition != null &&\n this.elementBounds != null\n ) {\n const pointerDownScreen = translatePointToScreen(\n this.relativePointerDownPosition,\n this.elementBounds,\n );\n const distanceBetweenStartAndEndPoint = Point.distance(\n pointerDownScreen,\n getMouseClientPosition(event, this.elementBounds),\n );\n\n if (distanceBetweenStartAndEndPoint <= 2) {\n this.focused = true;\n this.labelFocused.emit(this.pin?.id);\n }\n }\n\n this.relativePointerDownPosition = undefined;\n this.pinPointerDownPosition = undefined;\n\n window.removeEventListener('pointermove', this.handlePointerMove);\n window.removeEventListener('pointerup', this.handlePointerUp);\n };\n\n private handleTextBlur = (): void => {\n this.submit();\n };\n\n private handleTextInput = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n };\n}\n",":host {\n /**\n * @prop --viewer-annotations-pin-label-line-color: A CSS color that\n * specifies the color of the label line\n */\n --viewer-annotations-pin-label-line-color: var(\n --viewer-annotations-pin-primary-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-line-width: A CSS color that\n * specifies the width of the label line\n */\n --viewer-annotations-pin-label-line-width: 1;\n\n overflow: hidden;\n pointer-events: none;\n}\n\n.label-line {\n pointer-events: auto;\n stroke: var(--viewer-annotations-pin-label-line-color);\n stroke-width: var(--viewer-annotations-pin-label-line-width);\n cursor: default;\n}\n\n.svg {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n height: 100%;\n width: 100%;\n}\n","import {\n Component,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h,\n Host,\n JSX,\n Prop,\n} from '@stencil/core';\nimport { Point } from '@vertexvis/geometry';\n\nimport { getPinColors, Pin } from '../../lib/pins/model';\n\n@Component({\n tag: 'vertex-viewer-pin-label-line',\n styleUrl: 'viewer-pin-label-line.css',\n shadow: false,\n})\nexport class VertexPinLabelLine {\n @Prop()\n public pinPoint: Point.Point | undefined;\n\n @Prop()\n public labelPoint: Point.Point | undefined;\n\n @Prop()\n public pin: Pin | undefined;\n\n protected render(): JSX.Element {\n const { primaryColor } = getPinColors(this.pin);\n return (\n <Host>\n <svg class=\"svg\">\n <line\n class=\"label-line\"\n style={{\n stroke: primaryColor,\n }}\n x1={this.labelPoint?.x}\n y1={this.labelPoint?.y}\n x2={this.pinPoint?.x}\n y2={this.pinPoint?.y}\n />\n </svg>\n </Host>\n );\n }\n}\n"],"mappings":";;;kUAAM,SAAUA,EAAiBC,GAC/B,OAAOC,OAAOF,iBAAiBC,EACjC,CCFA,MAAME,EAAoB,IAAM,y5F,MCqCnBC,EAAc,MAL3B,WAAAC,CAAAC,G,qIAuBSC,KAAAC,MAAQ,GAgCPD,KAAAE,QAAU,MAMVF,KAAAG,aAAe,EAuNfH,KAAAI,mBAAqB,KAC3BC,GAAQ,KACN,GAAIL,KAAKM,WAAa,KAAM,CAC1BN,KAAKO,gBAAkBP,KAAKM,UAAUE,wBACtC,MAAMC,EAAiBhB,EAAiBO,KAAKM,WAC7CN,KAAKG,aAAeO,KAAKC,IACvB,EACAD,KAAKE,MACFC,OAAOC,WAAWL,EAAeM,iBAAiB,WACjDF,OAAOC,WACLL,EAAeM,iBAAiB,gBAEhC,GACFF,OAAOC,WAAWL,EAAeM,iBAAiB,gB,IAI1D,EAGIf,KAAAgB,mBAAsBC,IAC5BA,EAAMC,kBACN,GACED,EAAME,MAAQ,UACbF,EAAMG,SAAWH,EAAMI,SAAWJ,EAAMK,UACzC,CACAtB,KAAKG,cAAgB,EACrBH,KAAKC,OAAS,I,MACT,GAAIgB,EAAME,MAAQ,QAAS,CAChCF,EAAMM,iBACNvB,KAAKwB,Q,GAIDxB,KAAAyB,kBAAqBR,I,MAC3B,IAAKjB,KAAKE,QAAS,CACjB,GAAIF,KAAK0B,eAAiB,KAAM,CAC9B,GAAIT,EAAMU,UAAY,EAAG,CACvBV,EAAMM,iBACNN,EAAMC,iB,CAERlB,KAAK4B,4BAA8BC,EACjCC,EAAuBb,EAAOjB,KAAK0B,eACnC1B,KAAK0B,eAEP1B,KAAK+B,wBAAyBC,EAAAhC,KAAKiC,OAAG,MAAAD,SAAA,SAAAA,EAAEE,MAAMC,MAE9CxC,OAAOyC,iBAAiB,cAAepC,KAAKqC,mBAC5C1C,OAAOyC,iBAAiB,YAAapC,KAAKsC,gB,IAKxCtC,KAAAqC,kBAAqBpB,I,MAC3B,GACEjB,KAAK0B,eAAiB,MACtB1B,KAAK4B,6BACL5B,KAAK+B,wBAA0B,KAC/B,CAEAd,EAAMM,iBACNN,EAAMC,kBAEN,MAAMiB,EAAQL,EAAuBb,EAAOjB,KAAK0B,eACjD,MAAMa,EAAWV,EAAyBM,EAAOnC,KAAK0B,eAEtD,MAAMc,EAAgBC,EAAMC,SAC1BH,EACAvC,KAAK4B,6BAGP,MAAMe,EACJ3C,KAAKiC,KAAO,KACR,IACKjC,KAAKiC,IACRC,MAAO,IACFlC,KAAKiC,IAAIC,MACZC,MAAOM,EAAMG,IAAI5C,KAAK+B,uBAAwBS,KAGlDK,UAEN,GAAIF,EAAc,EAChBX,EAAAhC,KAAK8C,iBAAa,MAAAd,SAAA,SAAAA,EAAEe,UAAUJ,GAC9B3C,KAAKgD,uB,IAKHhD,KAAAsC,gBAAmBrB,I,QACzB,KACEe,EAAAhC,KAAK8C,iBAAa,MAAAd,SAAA,SAAAA,EAAEiB,iBAAkB,QACtCjD,KAAK4B,6BAA+B,MACpC5B,KAAK0B,eAAiB,KACtB,CACA,MAAMwB,EAAoBC,EACxBnD,KAAK4B,4BACL5B,KAAK0B,eAEP,MAAM0B,EAAkCX,EAAMY,SAC5CH,EACApB,EAAuBb,EAAOjB,KAAK0B,gBAGrC,GAAI0B,GAAmC,EAAG,CACxCpD,KAAKE,QAAU,KACfF,KAAKsD,aAAaC,MAAKC,EAAAxD,KAAKiC,OAAG,MAAAuB,SAAA,SAAAA,EAAEC,G,EAIrCzD,KAAK4B,4BAA8BiB,UACnC7C,KAAK+B,uBAAyBc,UAE9BlD,OAAO+D,oBAAoB,cAAe1D,KAAKqC,mBAC/C1C,OAAO+D,oBAAoB,YAAa1D,KAAKsC,gBAAgB,EAGvDtC,KAAA2D,eAAiB,KACvB3D,KAAKwB,QAAQ,EAGPxB,KAAA4D,gBAAmB3C,IACzB,MAAM4C,EAAQ5C,EAAM6C,OACpB9D,KAAKC,MAAQ4D,EAAM5D,KAAK,CAE3B,CAlUQ,cAAM8D,G,UAEX,WAAW/B,EAAAhC,KAAKgE,WAAO,MAAAhC,SAAA,SAAAA,EAAEiC,SAAU,WAAY,CAC7CjE,KAAKE,QAAU,KACfF,KAAKsD,aAAaC,MAAKC,EAAAxD,KAAKiC,OAAG,MAAAuB,SAAA,SAAAA,EAAEC,KACjCS,EAAAlE,KAAKgE,WAAO,MAAAE,SAAA,SAAAA,EAAED,O,EASX,YAAMzC,G,QACXxB,KAAKE,QAAU,MACfF,KAAKmE,aAAaZ,MAAKvB,EAAAhC,KAAKiC,OAAG,MAAAD,SAAA,SAAAA,EAAEyB,IACjC,GAAIzD,KAAKiC,KAAO,KAAM,EACpBuB,EAAAxD,KAAK8C,iBAAa,MAAAU,SAAA,SAAAA,EAAET,UAAU,IACzB/C,KAAKiC,IACRC,MAAO,CACLC,MAAOnC,KAAKiC,IAAIC,MAAMC,MACtBiC,KAAMpE,KAAKC,Q,EAOT,gBAAAoE,G,QACRrE,KAAKsE,aAAaf,OAElB,GAAIvD,KAAKE,QAAS,EAChB8B,EAAAhC,KAAK8C,iBAAa,MAAAd,SAAA,SAAAA,EAAEuC,kBAAiBf,EAAAxD,KAAKiC,OAAG,MAAAuB,SAAA,SAAAA,EAAEC,G,EAKzC,cAAAe,G,QACRxE,KAAKC,OAAQuD,GAAAxB,EAAAhC,KAAKiC,OAAG,MAAAD,SAAA,SAAAA,EAAEE,MAAMkC,QAAI,MAAAZ,SAAA,EAAAA,EAAI,GACrCxD,KAAKgD,uB,CAIG,wBAAAyB,GACRzE,KAAKgD,uB,CAGG,iBAAA0B,G,QACR1E,KAAKC,OAAQuD,GAAAxB,EAAAhC,KAAKiC,OAAG,MAAAD,SAAA,SAAAA,EAAEE,MAAMkC,QAAI,MAAAZ,SAAA,EAAAA,EAAI,GACrCxD,KAAKgD,wBAEL,GAAIhD,KAAK8C,eAAiB,KAAM,CAC9B9C,KAAK8C,cAAgB,IAAI6B,EAAc,IAAIC,E,EAIrC,gBAAAC,GACR7E,KAAK8E,eAAiB,IAAIC,gBAAe,KACvC/E,KAAKsE,aAAaf,MAAM,IAG1BvD,KAAKgF,sBAAwB,IAAID,eAAe/E,KAAKI,oBAErD,GAAIJ,KAAKiF,QAAU,KAAM,CACvBjF,KAAK8E,eAAeI,QAAQlF,KAAKiF,O,CAGnC,GAAIjF,KAAKM,WAAa,KAAM,CAC1BN,KAAKgF,sBAAsBE,QAAQlF,KAAKM,U,EAIlC,oBAAA6E,G,SACRnD,EAAAhC,KAAK8E,kBAAc,MAAA9C,SAAA,SAAAA,EAAEoD,cACrB5B,EAAAxD,KAAKgF,yBAAqB,MAAAxB,SAAA,SAAAA,EAAE4B,Y,CAGpB,kBAAAC,GACR,GAAIrF,KAAKE,SAAWF,KAAKgE,SAAW,KAAM,CACxChE,KAAK+D,U,EAIC,MAAAuB,G,UACR,MAAMC,aAAEA,EAAYC,YAAEA,GAAgBC,EAAazF,KAAKiC,KACxD,OACEyD,EAACC,EAAI,CAAAxE,IAAA,4CACHuE,EAAA,OAAAvE,IAAA,2CACEyE,MAAOC,EAAW,0BAA2B,CAC3C3F,QAASF,KAAKE,UAEhB4F,cAAe9F,KAAKyB,kBACpBsE,MAAO,CACLC,IAAK,KAAGhE,EAAAhC,KAAKiG,0BAAsB,MAAAjE,SAAA,SAAAA,EAAEkE,EAAEC,aAAc,MACrDC,KAAM,KAAG5C,EAAAxD,KAAKiG,0BAAsB,MAAAzC,SAAA,SAAAA,EAAE6C,EAAEF,aAAc,MACtDG,SAAUtG,KAAKuG,kBACfC,SAAUxG,KAAKyG,kBACfC,UAAW1G,KAAK2G,mBAChBC,YAAarB,EACbsB,WAAYrB,IAGdE,EAAA,YAAAvE,IAAA,2CACEsC,GAAI,oBAAmBS,EAAAlE,KAAKiC,OAAG,MAAAiC,SAAA,SAAAA,EAAET,KACjCmC,MAAOC,EAAW,kBAAmB,iBAAkB,CACrD,CAAC,aAAc7F,KAAKE,UAEtB4G,UAAW9G,KAAKE,QAChB6G,IAAMA,GAAS/G,KAAKgE,QAAU+C,EAC9B9G,MAAOD,KAAKC,MACZ+G,KAAMhH,KAAKG,aACX8G,UAAWjH,KAAKgB,mBAChBkG,QAASlH,KAAK4D,gBACduD,OAAQnH,KAAK2D,eAAc,aAChB,qBAIX3D,KAAKE,SACLwF,EAAA,OAAAvE,IAAA,2CACEyE,MAAM,wBACNE,cAAe9F,KAAKyB,qBAI1BiE,EAAA,OAAAvE,IAAA,2CACE4F,IAAMrH,GAAQM,KAAKM,UAAYZ,EAC/BkG,MAAOC,EAAW,iBAAkB,oBACpCE,MAAO,CACLS,SAAUxG,KAAKyG,kBACfC,UAAW1G,KAAK2G,qBAGjB3G,KAAKoH,iB,CAMN,aAAAA,GAIN,OAAOpH,KAAKC,MAAMoH,SAAS,MACvBrH,KAAKC,MACFqH,MAAM,MACNC,QACC,CAACC,EAAKC,IAAQ,IAAID,EAAKC,EAAK/B,EAAA,aAC5B,IAEJ,CAAC1F,KAAKC,M,CAGJ,eAAAsG,GACN,GAAIvG,KAAKO,iBAAmB,KAAM,CAChC,MAAMmH,EAAW,GAAG1H,KAAKO,gBAAgBoH,MAAQ,MAEjD,MAAO,OAAOD,MAAa1H,KAAKyG,oB,KAC3B,CACL,MAAO,+C,EAIH,eAAAA,GACN,MAAMiB,EAAW,gDAEjB,MAAO,OAAOA,MAAa1H,KAAK4H,0B,CAG1B,gBAAAjB,GACN,MAAMe,EAAW,iDAEjB,MAAO,OAAOA,MAAa1H,KAAK6H,2B,CAG1B,qBAAAD,G,QACN,MAAO,UAAQ5F,EAAAhC,KAAK0B,iBAAa,MAAAM,SAAA,SAAAA,EAAE2F,MAAMxB,aAAc,WACrD3C,EAAAxD,KAAKiG,0BAAsB,MAAAzC,SAAA,SAAAA,EAAE6C,EAAEF,aAAc,M,CAIzC,sBAAA0B,G,QACN,MAAO,UAAQ7F,EAAAhC,KAAK0B,iBAAa,MAAAM,SAAA,SAAAA,EAAE8F,OAAO3B,aAAc,WACtD3C,EAAAxD,KAAKiG,0BAAsB,MAAAzC,SAAA,SAAAA,EAAE0C,EAAEC,aAAc,M,CAIzC,qBAAAnD,GACNhD,KAAKiG,uBACH8B,EAAU/H,KAAKiC,MACfjC,KAAK0B,eAAiB,MACtB1B,KAAKiC,IAAIC,MAAMC,OAAS,KACpBgB,EAAuBnD,KAAKiC,IAAIC,MAAMC,MAAOnC,KAAK0B,eAClDmB,S,8KCjTV,MAAMmF,EAAwB,IAAM,wc,MCiBvBC,EAAkB,M,yBAUnB,MAAA3C,G,YACR,MAAMC,aAAEA,GAAiBE,EAAazF,KAAKiC,KAC3C,OACEyD,EAACC,EAAI,CAAAxE,IAAA,4CACHuE,EAAA,OAAAvE,IAAA,2CAAKyE,MAAM,OACTF,EAAA,QAAAvE,IAAA,2CACEyE,MAAM,aACNG,MAAO,CACLmC,OAAQ3C,GAEV4C,IAAInG,EAAAhC,KAAKoI,cAAU,MAAApG,SAAA,SAAAA,EAAEqE,EACrBgC,IAAI7E,EAAAxD,KAAKoI,cAAU,MAAA5E,SAAA,SAAAA,EAAE0C,EACrBoC,IAAIpE,EAAAlE,KAAKuI,YAAQ,MAAArE,SAAA,SAAAA,EAAEmC,EACnBmC,IAAIC,EAAAzI,KAAKuI,YAAQ,MAAAE,SAAA,SAAAA,EAAEvC,K","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  /*!
2
2
  * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import{h as t,r as e,c as i,H as s,a as n}from"./p-CCVkga9Q.js";import{v as r,a,p as o,l as h}from"./p-2UsvOTHJ.js";import{m as l}from"./p-DxMDDbmh.js";import{a as c,g as d}from"./p-D0aTA_2m.js";import"./p-D2IEHEGM.js";import"./p-BNuMPeJ8.js";import"./p-ux1ckSDN.js";import"./p-5kcpg4MZ.js";import{o as u,D as m}from"./p-BhKTTmpL.js";import{M as v}from"./p-BY3lpCm6.js";import{M as p}from"./p-DyL2wWm6.js";import{m as w}from"./p-_qi2VkC2.js";import"./p-BAhfr1Nx.js";import{V as f}from"./p-CeZe0Qql.js";import{E as g,m as b}from"./p-CDM7zNn0.js";import{g as y}from"./p-CEDqc5sS.js";import{c as C}from"./p-Dw4-tG-V.js";import"./p-CG9AChtV.js";const P=16;const E=10;function M(t){return t.getBoundingClientRect()}class D{constructor(t,e,i,s){this.stencil=t;this.depthBuffer=e;this.viewport=i;this.camera=s}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 s=this.stencil.snapToNearestPixel(i,e);return this.viewport.transformPointToViewport(s,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 x{constructor(t){this.model=t}newMeasurement(t,e){const i=e.hitTester().transformPointToWorld(t);return i!=null?new j(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 I(e,this.model):new S(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 k{constructor(){this.measurementChanged=new g;this.indicatorChanged=new g}static empty(){return new k}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 s=i?T(t,e):V(t,e);this.setMeasurement(s)}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 j{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 L(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 s=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const n=e.hitTester().hitTest(t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;if(s==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!this.hitWorldValid||!n){this.model.setIndicator(s);this.setMeasurement(V(r,s))}else{this.model.setIndicator(s);this.setMeasurement(T(r,s))}}}async finish(t,e){var i;this.preventUpdate=true;this.fetchStartIfMissing(e);await this.pendingStart;this.model.setIndicator(undefined);const s=await e.raycaster();const n=await L(s,t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;this.preventUpdate=false;if(n==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,n))}else{return this.setMeasurement(T(r,n))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class A{constructor(t,e){this.measurement=t;this.model=e}update(t,e){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const s=e.hitTester().hitTest(t);if(i==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!s){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 s=await L(i,t);this.model.setIndicator(undefined);if(s==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(s))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class I extends A{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return V(t,this.measurement.end)}getValidMeasurement(t){return T(t,this.measurement.end)}}class S extends A{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return V(this.measurement.start,t)}getValidMeasurement(t){return T(this.measurement.start,t)}}async function L(t,e){var i;const s=await t.hitItems(e);const[n]=(i=s===null||s===void 0?void 0:s.hits)!==null&&i!==void 0?i:[];if((n===null||n===void 0?void 0:n.hitPoint)!=null){const t=u(n.hitPoint);if(b.isInvalid(t)){throw new Error(`Invalid hit response [${t.errors.join(",")}]`)}return t}else return undefined}function T(t,e){return{start:t,end:e,distance:r.distance(t,e),valid:true}}function V(t,e){return{start:t,end:e,valid:false}}const B=({startPt:e,endPt:i,centerPt:s,indicatorPt:n,distance:r,anchorLabelOffset:h,lineCapLength:l,linePointerEvents:d,hideStartAnchor:u,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=e!=null&&i!=null?a.fromPoints(e,i):undefined;const f=w!=null&&e!=null&&h!=null?o.add(e,o.polar(-h,w)):undefined;const g=w!=null&&i!=null&&h!=null?o.add(i,o.polar(h,w)):undefined;return t("div",null,e!=null&&i!=null&&t("vertex-viewer-measurement-line",{class:C("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"})),s!=null&&t("div",{id:"label",class:"distance-label",style:{transform:c(s)}},r),n!=null&&t("div",{class:"indicator",style:{transform:c(n)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))};const H=()=>`: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 O=3;const z=class{constructor(t){e(this,t);this.editBegin=i(this,"editBegin");this.editEnd=i(this,"editEnd");this.showAxisReferenceLines=false;this.snapDistance=P;this.units="millimeters";this.fractionalDigits=2;this.anchorLabelOffset=20;this.lineCapLength=E;this.mode="";this.interactingAnchor="none";this.invalid=false;this.measurementModel=new v;this.viewport=new f(0,0);this.interactionCount=0;this.invalidateStateCounter=0;this.stateMap={};this.measurementUnits=new m(this.units);this.model=k.empty();this.controller=new x(this.model);this.overlays=new p;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=d(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",s)};const i=async()=>{e();t()};const s=t=>{if(t.buttons>0){e()}};window.addEventListener("pointermove",s);window.addEventListener("pointerup",i)};const i=t=>{let e=o.create(0,0);const i=i=>{const s=o.distance(e,d(i,this.elementBounds));if(s>=O){t()}};const s=()=>{window.removeEventListener("pointermove",i);window.removeEventListener("pointerup",n)};const n=()=>s();const r=t=>{e=d(t,this.elementBounds);window.addEventListener("pointermove",i);window.addEventListener("pointerup",n)};window.addEventListener("pointerdown",r);return{dispose:()=>window.removeEventListener("pointerdown",r)}};const s=()=>{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",s);window.removeEventListener("pointerup",n);t.dispose()};const s=this.createInteractionMoveHandler();const n=async t=>{var i;if(t.button===0){if(this.isUserInteractingWithModel){this.isUserInteractingWithModel=false}else{const s=this.getHitProvider();if(s!=null){const n=d(t,this.elementBounds);const r=this.snapPoint(n,t);await((i=this.interaction)===null||i===void 0?void 0:i.finish(r,s));e();this.updateMeasurementPropsFromModel();this.endEditing()}}}};this.beginEditing("replace","end");this.newInteractionHandler={dispose:e};window.addEventListener("pointermove",s);window.addEventListener("pointerup",n)};const n=this.getHitProvider();if(n!=null){const i=d(t,this.elementBounds);const r=this.snapPoint(i,t);this.interaction=this.controller.newMeasurement(r,n);if(this.interaction!=null){e(s)}}}}}async computeElementMetrics(){var t,e,i;const s=(t=this.hostEl.shadowRoot)===null||t===void 0?void 0:t.getElementById("start-anchor");const n=(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(s!=null&&n!=null&&r!=null){return{startAnchor:s.getBoundingClientRect(),endAnchor:n.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(s,{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:s,labelPt:n,indicatorPt:r,hideStart:a,hideEnd:o}=e;const h=this.formatDistance(this.distance);if(this.mode==="edit"||this.mode==="replace"){return t(B,{startPt:i,endPt:s,centerPt:n,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(B,{startPt:i,endPt:s,centerPt:n,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 m(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(h.create(t))}else{return{}}}computeReplaceElementPositions(){if(this.internalCamera!=null){const t=this.model.getMeasurement();const e=t!=null?this.computeLineElementPositions(h.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 y(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=M(this.hostEl);this.viewport=new f(t.width,t.height);this.elementBounds=t}updatePropsFromJson(){var t,e;this.start=N((t=this.startJson)!==null&&t!==void 0?t:this.start);this.end=N((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 s;const n=this.getHitProvider();if(n!=null){window.removeEventListener("pointermove",e);window.removeEventListener("pointerup",i);const r=d(t,this.elementBounds);const a=this.snapPoint(r,t);await((s=this.interaction)===null||s===void 0?void 0:s.finish(a,n));this.updateMeasurementPropsFromModel();this.endEditing()}};return async s=>{await this.getStencilBuffer();if(s.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 s=d(t,this.elementBounds);const n=this.snapPoint(s,t);(e=this.interaction)===null||e===void 0?void 0:e.update(n,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:[w(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 D(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 s=i==null||!this.controller.moveIndicator(t,i);if(s){(e=this.stateMap.hoverCursor)===null||e===void 0?void 0:e.dispose()}else{await this.setCursor(l)}}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 n(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}]}}};function N(t){return typeof t==="string"?r.fromJson(t):t}z.style=H();export{z as vertex_viewer_measurement_distance};
5
- //# sourceMappingURL=p-cc835213.entry.js.map
4
+ import{h as t,r as e,c as i,H as s,a as n}from"./p-CCVkga9Q.js";import{v as r,a,p as o,l as h}from"./p-2UsvOTHJ.js";import{m as l}from"./p-DxMDDbmh.js";import{a as c,g as d}from"./p-D0aTA_2m.js";import"./p-Br21pGVj.js";import"./p-BNuMPeJ8.js";import"./p-ux1ckSDN.js";import"./p-5kcpg4MZ.js";import{o as u,D as m}from"./p-Cc3XhAoA.js";import{M as v}from"./p-BY3lpCm6.js";import{M as p}from"./p-DyL2wWm6.js";import{m as w}from"./p-_qi2VkC2.js";import"./p-BAhfr1Nx.js";import{V as f}from"./p-CeZe0Qql.js";import{E as g,m as b}from"./p-CDM7zNn0.js";import{g as y}from"./p-CEDqc5sS.js";import{c as C}from"./p-Dw4-tG-V.js";import"./p-CG9AChtV.js";const P=16;const E=10;function M(t){return t.getBoundingClientRect()}class x{constructor(t,e,i,s){this.stencil=t;this.depthBuffer=e;this.viewport=i;this.camera=s}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 s=this.stencil.snapToNearestPixel(i,e);return this.viewport.transformPointToViewport(s,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 D{constructor(t){this.model=t}newMeasurement(t,e){const i=e.hitTester().transformPointToWorld(t);return i!=null?new A(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 I(e,this.model):new S(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 k{constructor(){this.measurementChanged=new g;this.indicatorChanged=new g}static empty(){return new k}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 s=i?V(t,e):T(t,e);this.setMeasurement(s)}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 A{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 L(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 s=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const n=e.hitTester().hitTest(t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;if(s==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!this.hitWorldValid||!n){this.model.setIndicator(s);this.setMeasurement(T(r,s))}else{this.model.setIndicator(s);this.setMeasurement(V(r,s))}}}async finish(t,e){var i;this.preventUpdate=true;this.fetchStartIfMissing(e);await this.pendingStart;this.model.setIndicator(undefined);const s=await e.raycaster();const n=await L(s,t);const r=(i=this.hitWorld)!==null&&i!==void 0?i:this.world;this.preventUpdate=false;if(n==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(T(r,i))}else if(!this.hitWorldValid){return this.setMeasurement(T(r,n))}else{return this.setMeasurement(V(r,n))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class j{constructor(t,e){this.measurement=t;this.model=e}update(t,e){const i=e.hitTester().transformPointToWorld(t,{ignoreHitTest:true});const s=e.hitTester().hitTest(t);if(i==null){throw new Error("Cannot update new measurement interaction. End point is empty.")}else if(!s){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 s=await L(i,t);this.model.setIndicator(undefined);if(s==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(s))}}setMeasurement(t){this.model.setMeasurement(t);return t}}class I extends j{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return T(t,this.measurement.end)}getValidMeasurement(t){return V(t,this.measurement.end)}}class S extends j{constructor(t,e){super(t,e)}getInvalidMeasurement(t){return T(this.measurement.start,t)}getValidMeasurement(t){return V(this.measurement.start,t)}}async function L(t,e){var i;const s=await t.hitItems(e);const[n]=(i=s===null||s===void 0?void 0:s.hits)!==null&&i!==void 0?i:[];if((n===null||n===void 0?void 0:n.hitPoint)!=null){const t=u(n.hitPoint);if(b.isInvalid(t)){throw new Error(`Invalid hit response [${t.errors.join(",")}]`)}return t}else return undefined}function V(t,e){return{start:t,end:e,distance:r.distance(t,e),valid:true}}function T(t,e){return{start:t,end:e,valid:false}}const B=({startPt:e,endPt:i,centerPt:s,indicatorPt:n,distance:r,anchorLabelOffset:h,lineCapLength:l,linePointerEvents:d,hideStartAnchor:u,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=e!=null&&i!=null?a.fromPoints(e,i):undefined;const f=w!=null&&e!=null&&h!=null?o.add(e,o.polar(-h,w)):undefined;const g=w!=null&&i!=null&&h!=null?o.add(i,o.polar(h,w)):undefined;return t("div",null,e!=null&&i!=null&&t("vertex-viewer-measurement-line",{class:C("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"})),s!=null&&t("div",{id:"label",class:"distance-label",style:{transform:c(s)}},r),n!=null&&t("div",{class:"indicator",style:{transform:c(n)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))};const H=()=>`: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 O=3;const z=class{constructor(t){e(this,t);this.editBegin=i(this,"editBegin");this.editEnd=i(this,"editEnd");this.showAxisReferenceLines=false;this.snapDistance=P;this.units="millimeters";this.fractionalDigits=2;this.anchorLabelOffset=20;this.lineCapLength=E;this.mode="";this.interactingAnchor="none";this.invalid=false;this.measurementModel=new v;this.viewport=new f(0,0);this.interactionCount=0;this.invalidateStateCounter=0;this.stateMap={};this.measurementUnits=new m(this.units);this.model=k.empty();this.controller=new D(this.model);this.overlays=new p;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=d(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",s)};const i=async()=>{e();t()};const s=t=>{if(t.buttons>0){e()}};window.addEventListener("pointermove",s);window.addEventListener("pointerup",i)};const i=t=>{let e=o.create(0,0);const i=i=>{const s=o.distance(e,d(i,this.elementBounds));if(s>=O){t()}};const s=()=>{window.removeEventListener("pointermove",i);window.removeEventListener("pointerup",n)};const n=()=>s();const r=t=>{e=d(t,this.elementBounds);window.addEventListener("pointermove",i);window.addEventListener("pointerup",n)};window.addEventListener("pointerdown",r);return{dispose:()=>window.removeEventListener("pointerdown",r)}};const s=()=>{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",s);window.removeEventListener("pointerup",n);t.dispose()};const s=this.createInteractionMoveHandler();const n=async t=>{var i;if(t.button===0){if(this.isUserInteractingWithModel){this.isUserInteractingWithModel=false}else{const s=this.getHitProvider();if(s!=null){const n=d(t,this.elementBounds);const r=this.snapPoint(n,t);await((i=this.interaction)===null||i===void 0?void 0:i.finish(r,s));e();this.updateMeasurementPropsFromModel();this.endEditing()}}}};this.beginEditing("replace","end");this.newInteractionHandler={dispose:e};window.addEventListener("pointermove",s);window.addEventListener("pointerup",n)};const n=this.getHitProvider();if(n!=null){const i=d(t,this.elementBounds);const r=this.snapPoint(i,t);this.interaction=this.controller.newMeasurement(r,n);if(this.interaction!=null){e(s)}}}}}async computeElementMetrics(){var t,e,i;const s=(t=this.hostEl.shadowRoot)===null||t===void 0?void 0:t.getElementById("start-anchor");const n=(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(s!=null&&n!=null&&r!=null){return{startAnchor:s.getBoundingClientRect(),endAnchor:n.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(s,{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:s,labelPt:n,indicatorPt:r,hideStart:a,hideEnd:o}=e;const h=this.formatDistance(this.distance);if(this.mode==="edit"||this.mode==="replace"){return t(B,{startPt:i,endPt:s,centerPt:n,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(B,{startPt:i,endPt:s,centerPt:n,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 m(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(h.create(t))}else{return{}}}computeReplaceElementPositions(){if(this.internalCamera!=null){const t=this.model.getMeasurement();const e=t!=null?this.computeLineElementPositions(h.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 y(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=M(this.hostEl);this.viewport=new f(t.width,t.height);this.elementBounds=t}updatePropsFromJson(){var t,e;this.start=N((t=this.startJson)!==null&&t!==void 0?t:this.start);this.end=N((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 s;const n=this.getHitProvider();if(n!=null){window.removeEventListener("pointermove",e);window.removeEventListener("pointerup",i);const r=d(t,this.elementBounds);const a=this.snapPoint(r,t);await((s=this.interaction)===null||s===void 0?void 0:s.finish(a,n));this.updateMeasurementPropsFromModel();this.endEditing()}};return async s=>{await this.getStencilBuffer();if(s.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 s=d(t,this.elementBounds);const n=this.snapPoint(s,t);(e=this.interaction)===null||e===void 0?void 0:e.update(n,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:[w(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 x(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 s=i==null||!this.controller.moveIndicator(t,i);if(s){(e=this.stateMap.hoverCursor)===null||e===void 0?void 0:e.dispose()}else{await this.setCursor(l)}}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 n(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}]}}};function N(t){return typeof t==="string"?r.fromJson(t):t}z.style=H();export{z as vertex_viewer_measurement_distance};
5
+ //# sourceMappingURL=p-ea45c3e9.entry.js.map
@@ -0,0 +1,5 @@
1
+ /*!
2
+ * Copyright (c) 2026 Vertex Software LLC. All rights reserved.
3
+ */
4
+ import{r as t,c as e,h as i,H as s,a as n}from"./p-CCVkga9Q.js";import{c as o}from"./p-Dw4-tG-V.js";import{d as r,r as a}from"./p-BxtKMwBH.js";import{p as h}from"./p-2UsvOTHJ.js";import{_ as l}from"./p-C-NyjLsm.js";import{a as c}from"./p-DX6pEG54.js";import{i as d}from"./p-DeUGB_Ik.js";import{E as u}from"./p-CDM7zNn0.js";import"./p-CG9AChtV.js";const f=()=>`.notification-banner{background-color:var(--blue-200);padding-top:0px;padding-bottom:0px;padding-right:16px;padding-left:8px;display:flex;justify-content:space-between;font-size:0.875rem;line-height:0.5;color:var(--neutral-600)}.notification-banner-info{display:flex;align-items:center;gap:8px}.notification-banner-info .icon{color:var(--blue-600)}.notification-banner-actions{display:flex;align-items:center}.notification-banner-button{background:none;border:none;padding:0;margin:0;cursor:pointer;color:var(--blue-600);font-size:0.875rem;display:flex;align-items:center}.notification-banner-button:hover{color:var(--blue-800)}`;const v=class{constructor(i){t(this,i);this.action=e(this,"action")}render(){return i(s,{key:"097d901352c02a0f1580ca1e8069a09e2d8a0f99"},i("div",{key:"a2f0c563cc060dbd1067129820cc3a3d548edf7a",class:"notification-banner"},i("div",{key:"d4eaf47fd6b494a6ed400fc68e56daf41322ff3a",class:"notification-banner-info"},i("vertex-viewer-icon",{key:"b05fc97116087cde16673019f4845d6f93481b81",class:"icon",name:"info",size:"sm"}),i("p",{key:"48fbfa73c639e8f762b105a0c8e7cf530ff95456"},this.message)),this.actionLabel!=null&&i("div",{key:"6f2c8a07c730e3d1eab820beba978d7b7232fe3a",class:"notification-banner-actions"},i("button",{key:"23aeb9e7071847cd62a19d7a61df6b30ee48d834",class:"notification-banner-button",onClick:()=>this.action.emit()},this.actionLabel))))}};v.style=f();const p=()=>`button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{--scene-tree-search-search-icon-offset:8px;--scene-tree-search-clear-button-offset:8px;--scene-tree-search-input-padding:0.5rem 32px;--scene-tree-search-input-border:none;--scene-tree-search-input-border-radius:0.25rem;--scene-tree-search-input-background:none;--scene-tree-search-focused-input-background:var(--neutral-200);--scene-tree-search-focused-input-outline:none;display:block;width:100%;font-size:0.875rem}.root{width:100%;position:relative}.input{background:var(--scene-tree-search-input-background);border:var(--scene-tree-search-input-border);border-radius:var(--scene-tree-search-input-border-radius);box-sizing:border-box;font-size:inherit;padding:var(--scene-tree-search-input-padding);outline:none;width:100%}.input.background{background:var(--scene-tree-search-focused-input-background);outline:var(--scene-tree-search-focused-input-outline)}.overlay{position:absolute;top:0;bottom:0;display:flex;align-items:center;justify-content:center;pointer-events:none}.overlay-clear{display:none;right:var(--scene-tree-search-clear-button-offset)}.overlay-clear.show{display:flex}.icon{color:var(--neutral-700)}.icon-search{position:absolute;left:var(--scene-tree-search-search-icon-offset);pointer-events:none}.clear-btn{display:flex;align-items:center;justify-content:center;pointer-events:initial;cursor:pointer}.clear-btn:hover{color:var(--neutral-800)}.clear-btn:disabled{pointer-events:none;opacity:0.5}`;const b=class{constructor(i){t(this,i);this.search=e(this,"search");this.searchCompleted=e(this,"searchCompleted");this.disabled=false;this.placeholder=undefined;this.value="";this.focused=false;this.isSearching=false;this.handleTextInput=t=>{const e=t.target;this.value=e.value;if(this.debounce!=null||this.value===""){this.emitCurrentValue()}};this.handleTextFocus=()=>{this.focused=true};this.handleTextBlur=()=>{var t;this.focused=false;(t=this.searchDisposable)===null||t===void 0?void 0:t.dispose();if(this.value!==this.lastEmittedValue){this.emitCurrentValue()}};this.handleKeyPress=t=>{var e;if(t.key==="Enter"){(e=this.searchDisposable)===null||e===void 0?void 0:e.dispose();this.emitCurrentValue()}};this.handleClear=t=>{var e;t.preventDefault();this.value="";(e=this.searchDisposable)===null||e===void 0?void 0:e.dispose();this.emitCurrentValue();this.setFocus()}}async setFocus(){var t,e;if(typeof((t=this.inputEl)===null||t===void 0?void 0:t.focus)==="function"){(e=this.inputEl)===null||e===void 0?void 0:e.focus()}}controllerChanged(t){this.setupController()}componentDidLoad(){this.handleDebounceChanged();this.setupController()}disconnectedCallback(){var t;(t=this.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose()}async clear(){var t;this.value="";(t=this.searchDisposable)===null||t===void 0?void 0:t.dispose();this.emitCurrentValue()}render(){return i(s,{key:"763e2f4c7ab3d80a197b94c123f61b25eba41b24"},i("div",{key:"14b5f4af01483f0d31ee77f03fc36fd1ff46e525",class:"root"},i("div",{key:"a1ebe30b97a16c83c9443402998e0f3f761d687d",class:"overlay icon icon-search"},i("slot",{key:"41073c4ecd626c3b4a38b0e62d95c6317cd2e98a",name:"search-icon"},this.isSearching?i("vertex-viewer-spinner",{slot:"search-icon",size:"xs"}):i("vertex-viewer-icon",{name:"search",size:"sm"}))),i("input",{key:"173d13b8d597425fdff082eb872225279e99bd34",class:o("input",{background:this.focused||this.value.length>0}),type:"text",ref:t=>this.inputEl=t,placeholder:this.placeholder,disabled:this.disabled,value:this.value,onInput:this.handleTextInput,onFocus:this.handleTextFocus,onBlur:this.handleTextBlur,onKeyPress:this.handleKeyPress}),i("div",{key:"f5b0de0431a9c8b051f61fcd76ce9eb430c0a0c9",class:o("overlay overlay-clear",{show:this.value.length>0})},i("button",{key:"dffb9ffaba79c003552a53122a0feda46894fa2e",class:"clear-btn icon",tabIndex:-1,onMouseDown:this.handleClear,disabled:this.disabled,"aria-label":"Clear search"},i("slot",{key:"9185057767cff4df0098ea056f19bd931f6ef4c7",name:"clear-icon"},i("vertex-viewer-icon",{key:"5ec1fe210b9c82b98e609bce9da02d8f2055ec66",name:"close-circle",size:"sm"}))))))}handleDebounceChanged(){var t,e;(t=this.searchDisposable)===null||t===void 0?void 0:t.dispose();const i=r(this.search,(e=this.debounce)!==null&&e!==void 0?e:0);this.search=i;this.searchDisposable=i}setupController(){var t,e;(t=this.onStateChangeDisposable)===null||t===void 0?void 0:t.dispose();this.onStateChangeDisposable=(e=this.controller)===null||e===void 0?void 0:e.onStateChange.on((t=>{if(this.isSearching&&!t.isSearching){this.searchCompleted.emit(this.value)}this.isSearching=t.isSearching}))}emitCurrentValue(){this.lastEmittedValue=this.value;this.search.emit(this.value)}static get watchers(){return{controller:[{controllerChanged:0}]}}};b.style=p();function m(t){return t.toLowerCase()}var y=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var w=/[^A-Z0-9]+/gi;function g(t,e){if(e===void 0){e={}}var i=e.splitRegexp,s=i===void 0?y:i,n=e.stripRegexp,o=n===void 0?w:n,r=e.transform,a=r===void 0?m:r,h=e.delimiter,l=h===void 0?" ":h;var c=x(x(t,s,"$1\0$2"),o,"\0");var d=0;var u=c.length;while(c.charAt(d)==="\0")d++;while(c.charAt(u-1)==="\0")u--;return c.slice(d,u).split("\0").map(a).join(l)}function x(t,e,i){if(e instanceof RegExp)return t.replace(e,i);return e.reduce((function(t,e){return t.replace(e,i)}),t)}function k(t,e){var i=t.charAt(0);var s=t.substr(1).toLowerCase();if(e>0&&i>="0"&&i<="9"){return"_"+i+s}return""+i.toUpperCase()+s}function C(t,e){if(e===void 0){e={}}return g(t,l({delimiter:"",transform:k},e))}function z(t,e){if(e===0)return t.toLowerCase();return k(t,e)}function D(t,e){if(e===void 0){e={}}return C(t,l({transform:z},e))}const $=/{{(.+)}}/;class R{constructor(t){this.bindings=t}bind(t){this.bindings.forEach((e=>e.bind(t)))}}class _{constructor(t,e){this.node=t;this.expr=e}}class M extends _{constructor(t,e){super(t,e)}bind(t){const e=P(t,this.expr);if(e!==this.node.textContent){this.node.textContent=e}}}class L extends _{constructor(t,e,i){super(t,e);this.attr=i}bind(t){const e=P(t,this.expr);const i=this.node.getAttribute(this.attr);if(i!==e){this.node.setAttribute(this.attr,e)}}}class j extends _{constructor(t,e,i){super(t,e);this.prop=i}bind(t){const e=A(t,this.expr);const i=this.node[this.prop];if(i!==e){this.node[this.prop]=e}}}class E extends _{constructor(t,e,i){super(t,e);this.eventName=i}bind(t){var e;const i=V(this.expr);if(i!=null){(e=this.disposable)===null||e===void 0?void 0:e.dispose();const s=I(t,i,true);this.node.addEventListener(this.eventName,s);this.disposable={dispose:()=>{this.node.removeEventListener(this.eventName,s)}}}}}function H(t){const e=[];if(t.nodeType===Node.ELEMENT_NODE){const i=t;const s=T(i);s.forEach((t=>{if(t.name.startsWith("event:")){const s=D(t.name.replace("event:",""));e.push(new E(i,t.value,s))}else if(t.name.startsWith("attr:")){e.push(new L(i,t.value,t.name.replace("attr:","")))}else if(t.name.startsWith("prop:")){const s=D(t.name.replace("prop:",""));e.push(new j(i,t.value,s))}}))}else if(t.nodeType===Node.TEXT_NODE&&t.textContent!=null&&$.test(t.textContent)){e.push(new M(t,t.textContent))}for(let i=0;i<t.childNodes.length;i++){e.push(...H(t.childNodes[i]))}return e}function T(t){return Array.from(t.attributes).filter((t=>$.test(t.value)))}function V(t){const e=$.exec(t);return e!=null?e[1]:undefined}function P(t,e){const i=V(e);if(i!=null){const s=I(t,i,true);return e.replace(`{{${i}}}`,s===null||s===void 0?void 0:s.toString())}else{return e}}function A(t,e){const i=V(e);if(i!=null){const e=I(t,i,true);return e}else{return e}}function I(t,e,i=false){const[s,...n]=e.split(".");if(i&&n.length===0){return t}else if(i&&n.length>0){return I(t,n.join("."),false)}else{const e=t[s];if(n.length>0){return I(e,n.join("."),false)}else{return e}}}class W{constructor(t,e){this.container=t;this.elementFactory=e;this.instanceMap=new Map;this.elements=[]}swapHeadToTail(t){const e=this.elements.splice(0,t);this.elements.splice(this.elements.length,0,...e);return this.elements.concat()}swapTailToHead(t){const e=this.elements.splice(-t,t);this.elements.splice(0,0,...e);return this.elements.concat()}updateElements(t){const e=t-this.elements.length;if(e>0){for(let t=0;t<e;t++){this.createElement()}}else{for(let t=0;t<-e;t++){this.deleteElement()}}return this.elements.concat()}updateData(t){this.elements.forEach(((e,i)=>{const s=this.instanceMap.get(e);const n=t(i);s===null||s===void 0?void 0:s.bindings.bind(n)}))}updateElementFactory(t){this.elementFactory=t;this.updateElements(0)}iterateElements(t){this.elements.forEach(((e,i)=>{const s=this.instanceMap.get(e);t(e,s.bindings,i)}))}createElement(){const t=this.elementFactory();this.elements.push(t.element);this.instanceMap.set(t.element,t);this.container.append(t.element);return t}deleteElement(){const t=this.elements.pop();if(t!=null){this.instanceMap.delete(t);t.remove()}}}function N(t){const e=t.content.cloneNode(true);const i=e.firstElementChild;const s=new R(H(e));return{element:i,bindings:s}}function G(t){var e;return(e=t.getBoundingClientRect().top)!==null&&e!==void 0?e:0}function B(t){return t.clientWidth}function U(t,e,i){t.scrollTo({top:e,...i})}class Z{constructor(){this.onStateChange=new u}setHovered(t){this.onStateChange.emit(t)}stateChanged(t){return this.onStateChange.on(t)}}function F(t,e,i=200){window.clearTimeout(e);return window.setTimeout(t,i)}const O=()=>`:host{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;font-size:0.825rem;--scene-tree-table-row-padding:2px 0px;--scene-tree-table-column-gap:0.5rem;--scene-tree-table-column-resize-cursor:col-resize}.header{position:relative;display:grid;width:100%;border-bottom:var(--scene-tree-toolbar-separator)}.table{position:relative;display:grid;width:100%;height:100%;overflow:auto}.resize-overlay{position:absolute;top:0;cursor:var(--scene-tree-table-column-resize-cursor);z-index:1000;width:100%;height:100%}.divider-overlay{position:absolute;top:0;display:grid;pointer-events:none;z-index:2000;width:100%;height:100%}`;const K=class{constructor(i){t(this,i);this.layoutRendered=e(this,"layoutRendered");this.columnsResized=e(this,"columnsResized");this.rows=[];this.totalRows=0;this.rowHeight=24;this.overScanCount=25;this.layoutOffset=0;this.scrollOffset=0;this.viewportStartIndex=0;this.viewportEndIndex=0;this.columnGridLayout="1fr";this.columnGridFixedLayout="";this.isComputingCellHeight=true;this.isScrolling=false;this.stateMap={viewportRows:[],columnWidths:[],columnWidthPercentages:[]};this.lastStartIndex=0;this.columnElements=[];this.cellHoverController=new Z;this.layoutColumns=()=>{const t=this.viewportEndIndex-this.viewportStartIndex+1;const e=this.viewportStartIndex-this.lastStartIndex;this.lastStartIndex=this.viewportStartIndex;this.iterateColumns(((i,s,n)=>{s.updateElements(t);if(e>0){s.swapHeadToTail(e)}else{s.swapTailToHead(-e)}i.style.minHeight=`${this.rowHeight*this.totalRows}px`;const o=n===0?t=>`calc(${t} * 0.5rem)`:()=>`0`;s.iterateElements(((t,e,i)=>{const s=this.stateMap.viewportRows[i];if(d(s)){this.updateCell(s,t,e,i,o)}}))}))};this.updateCell=(t,e,i,s,n)=>{e.style.position="absolute";e.style.top=`${(this.viewportStartIndex+s)*this.rowHeight}px`;e.style.boxSizing="border-box";e.style.height=`${this.rowHeight}px`;e.style.width="100%";e.style.paddingLeft=n(t.node.depth);e.tree=this.tree;e.node=t.node;e.hoverController=this.cellHoverController;e.isScrolling=this.isScrolling;i.bind(t)};this.updateLayoutPosition=()=>{a((()=>{if(this.tableElement!=null){this.layoutOffset=G(this.tableElement)}}))};this.recomputeColumnWidths=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidths=this.stateMap.columnWidthPercentages.map((e=>e*t));this.columnsResized.emit(this.stateMap.columnWidths)}};this.recomputeColumnPercentages=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidthPercentages=this.stateMap.columnWidths.map((e=>e/t))}};this.computeInitialColumnWidths=()=>{this.stateMap.columnWidths=this.columnElements.map((t=>{var e;return(e=t.initialWidth)!==null&&e!==void 0?e:100}));const t=this.getLayoutWidth();if(t!=null){const e=this.stateMap.columnWidths.reduce(((t,e)=>t+e),0);const i=this.stateMap.columnWidths.map((i=>i*(t/e)));this.stateMap.columnWidthPercentages=i.map((e=>e/t));this.stateMap.columnWidths=i}};this.updateColumnElements=()=>{this.columnElements=Array.from(this.hostEl.querySelectorAll("vertex-scene-tree-table-column"))};this.computeCellHeight=async()=>{var t;if(this.isComputingCellHeight&&this.columnElements.length>0){const e={index:0,node:{id:{hex:""},name:"Dummy row",expanded:false,selected:false,visible:false,partiallyVisible:false,isLeaf:false,depth:0,columnsList:[],filterHit:false,hasGeometry:false,phantom:false,endItem:false},metadata:{},data:{}};const{bindings:i,element:s}=this.createColumnCellInstance(this.columnElements[0]);i.bind(e);s.style.visibility="hidden";(t=this.columnElements[0])===null||t===void 0?void 0:t.appendChild(s);if(typeof s.componentOnReady==="function"){await s.componentOnReady()}let n=s.clientHeight;if(n===0){n=await new Promise((t=>{setTimeout((()=>t(s.getBoundingClientRect().height)),5)}))}this.rowHeight=n!==null&&n!==void 0?n:this.rowHeight;s.remove();this.isComputingCellHeight=this.rowHeight===0}};this.computeHeaderHeight=()=>{var t;if(this.stateMap.headerHeight==null){this.stateMap.headerHeight=(t=this.headerElement)===null||t===void 0?void 0:t.getBoundingClientRect().height;this.hostEl.style.setProperty("--header-height",`${this.stateMap.headerHeight}px`)}};this.computeColumnGridLayout=()=>{if(this.stateMap.columnWidths.length===0){this.stateMap.columnWidths=this.columnElements.map((t=>{var e;return(e=t.initialWidth)!==null&&e!==void 0?e:100}))}const t=this.getLayoutWidth();if(t!=null){if(this.stateMap.columnWidthPercentages.length===0){this.stateMap.columnWidthPercentages=this.columnElements.map((e=>{var i;return((i=e.initialWidth)!==null&&i!==void 0?i:100)/t}))}}this.columnGridLayout=`${this.stateMap.columnWidths.slice(0,-1).reduce(((t,e)=>`${t} ${e}px`),"")} 1fr`;this.columnGridFixedLayout=`${this.stateMap.columnWidths.reduce(((t,e)=>`${t} ${e}px`),"")}`};this.bindHeaderData=()=>{if(this.stateMap.headerInstances==null){this.stateMap.headerInstances=this.columnElements.map(((t,e)=>{var i;const s=this.createHeaderInstance(t);if(s!=null){s.element.style.paddingRight=e===this.columnElements.length-1?`0`:`var(--scene-tree-table-column-gap)`;s.element.slot="header";s.element.style.gridColumnStart=`${e+1}`;s.element.style.gridColumnEnd=`${e+2}`;(i=this.hostEl)===null||i===void 0?void 0:i.appendChild(s.element)}return s})).filter((t=>t!=null))}if(this.stateMap.headerDividerInstances==null){this.stateMap.headerDividerInstances=this.columnElements.slice(0,-1).map(((t,e)=>{var i;const s=this.createDividerInstance();s.element.slot="divider";s.element.style.position="absolute";s.element.style.right="0";s.element.style.pointerEvents="auto";s.element.style.gridColumnStart=`${e+1}`;s.element.style.gridColumnEnd=`${e+2}`;(i=this.hostEl)===null||i===void 0?void 0:i.appendChild(s.element);return s}))}};this.rebindHeaderData=()=>{var t,e;this.removeDividerDragListeners();(t=this.stateMap.headerInstances)===null||t===void 0?void 0:t.forEach((t=>t.element.remove()));(e=this.stateMap.headerDividerInstances)===null||e===void 0?void 0:e.forEach((t=>t.element.remove()));this.stateMap.headerInstances=undefined;this.stateMap.headerDividerInstances=undefined;this.bindHeaderData();this.addDividerDragListeners()};this.createDividerPointerDownHandler=t=>e=>{var i,s;e.preventDefault();e.stopPropagation();this.lastDividerPointerPosition=h.create(Math.floor(e.clientX),Math.floor(e.clientY));this.resizingColumnIndex=t;(s=(i=this.stateMap.headerDividerInstances)===null||i===void 0?void 0:i[t])===null||s===void 0?void 0:s.element.classList.add("dragging");window.addEventListener("pointermove",this.handleDividerPointerMove);window.addEventListener("pointerup",this.handleDividerPointerUp)};this.handleDividerPointerMove=t=>{const e=h.create(Math.floor(t.clientX),Math.floor(t.clientY));if(this.lastDividerPointerPosition!=null&&this.resizingColumnIndex!=null){const t=this.resizingColumnIndex;const i=h.subtract(this.lastDividerPointerPosition,e);if(Math.abs(i.x)>=1&&this.isValidResize(i,t)){this.stateMap.columnWidths=this.stateMap.columnWidths.map(((e,s)=>s===t?e-i.x:e));if(t+1<this.stateMap.columnWidths.length){this.stateMap.columnWidths=this.stateMap.columnWidths.map(((e,s)=>s===t+1?e+i.x:e))}this.lastDividerPointerPosition=e;this.computeColumnGridLayout()}}};this.handleDividerPointerUp=()=>{var t,e;if(this.resizingColumnIndex!=null){(e=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t[this.resizingColumnIndex])===null||e===void 0?void 0:e.element.classList.remove("dragging")}this.lastDividerPointerPosition=undefined;this.resizingColumnIndex=undefined;this.recomputeColumnPercentages();this.recomputeColumnWidths();window.removeEventListener("pointermove",this.handleDividerPointerMove);window.removeEventListener("pointerup",this.handleDividerPointerUp)};this.isValidResize=(t,e)=>{var i,s,n,o;const r=this.columnElements[e];const a=this.columnElements[e+1];const h=this.stateMap.columnWidths[e];const l=this.stateMap.columnWidths[e+1];const c=(i=r.minWidth)!==null&&i!==void 0?i:0;const d=(s=r.maxWidth)!==null&&s!==void 0?s:Number.MAX_SAFE_INTEGER;const u=(n=a.minWidth)!==null&&n!==void 0?n:0;const f=(o=a.maxWidth)!==null&&o!==void 0?o:Number.MAX_SAFE_INTEGER;const v=h-t.x>c&&h-t.x<d;const p=a!=null?l+t.x>u&&l+t.x<f:true;return v&&p};this.handleScrollChanged=async t=>{this.isScrolling=true;this.scrollTimer=F((()=>{this.isScrolling=false}),this.scrollTimer);this.scrollOffset=t.target.scrollTop;await this.computeAndUpdateViewportRows()}}componentWillLoad(){this.updateColumnElements();this.createPools();this.initializeColumnLayout();this.headerResizeObserver=new ResizeObserver((()=>{this.stateMap.headerHeight=undefined;this.computeHeaderHeight();this.updateLayoutPosition()}));this.resizeObserver=new ResizeObserver((()=>{this.updateLayoutPosition();this.clearLayoutHeight();this.clearLayoutWidth();this.recomputeColumnWidths();this.computeColumnGridLayout()}))}async componentDidLoad(){var t,e,i;(t=this.tableElement)===null||t===void 0?void 0:t.addEventListener("scroll",this.handleScrollChanged,{passive:true});if(this.headerElement!=null){(e=this.headerResizeObserver)===null||e===void 0?void 0:e.observe(this.headerElement)}(i=this.resizeObserver)===null||i===void 0?void 0:i.observe(this.hostEl);await Promise.resolve();await this.initializeMeasuredLayout()}async componentWillRender(){await this.computeAndUpdateViewportRows()}componentDidRender(){this.layoutColumns();this.layoutRendered.emit()}async componentDidUpdate(){if(this.isComputingCellHeight){await this.computeCellHeight()}}disconnectedCallback(){var t,e,i;(t=this.tableElement)===null||t===void 0?void 0:t.removeEventListener("scroll",this.handleScrollChanged);this.removeDividerDragListeners();(e=this.headerResizeObserver)===null||e===void 0?void 0:e.disconnect();(i=this.resizeObserver)===null||i===void 0?void 0:i.disconnect();this.stateMap.columnWidths=[];this.stateMap.columnWidthPercentages=[]}async handleViewportRowsPropsChanged(){await this.computeAndUpdateViewportRows()}async scrollToPosition(t,e){if(this.tableElement!=null){U(this.tableElement,t,e)}}async attemptComputeCellHeight(){this.computeCellHeight()}render(){return i(s,{key:"fb503e5ce411669efe4549f3d8063fe630993341"},i("div",{key:"1b7acde237a9a7cf8d14f950cc664b82dd253486",class:"header",ref:t=>this.headerElement=t,style:{gridTemplateColumns:this.columnGridFixedLayout,display:this.columnElements.length<=1?"none":"grid"}},i("slot",{key:"ec62af4cb951011ed571418051d52b6cdf2dd152",name:"header"})),i("div",{key:"d3183a765e381d9899a00d4a70302a28bc7deddd",class:"table",ref:t=>this.tableElement=t,style:{gridTemplateColumns:this.columnGridLayout}},i("slot",{key:"5dcfa30b5f230987cd33d35e9011718c60786ad4",onSlotchange:()=>{this.ensureDividerTemplateDefined();this.updateColumnElements();this.recreateColumnPools();this.computeInitialColumnWidths();this.rebindHeaderData();this.computeColumnGridLayout()}})),i("div",{key:"df5e5e83a5d833c22e0234d36ae6b6be224b8504",class:"divider-overlay",style:{gridTemplateColumns:this.columnGridFixedLayout}},i("slot",{key:"98ea7728b5faf0dcf48464aebcb99aae0369b8cc",name:"divider"})),this.resizingColumnIndex!=null&&i("div",{key:"e146248e00f7e8c63de50efdc72bc93a02be4227",class:"resize-overlay"}))}computeViewportRows(){const t=this.getLayoutHeight();const e=t!=null&&t>0&&!this.isComputingCellHeight;if(e){const e=Math.ceil(t/this.rowHeight);const i=Math.floor(this.scrollOffset/this.rowHeight);const s=i+e;const n=Math.max(0,i-this.overScanCount);const o=Math.min(this.totalRows-1,s+this.overScanCount);const r=this.getViewportRows(n,o);this.viewportStartIndex=n;this.viewportEndIndex=o;this.stateMap.viewportRows=r}}initializeColumnLayout(){this.computeInitialColumnWidths();this.computeColumnGridLayout();this.ensureDividerTemplateDefined();this.rebindHeaderData()}async initializeMeasuredLayout(){await this.computeCellHeight();this.computeHeaderHeight()}async computeAndUpdateViewportRows(){var t;this.computeViewportRows();if(((t=this.controller)===null||t===void 0?void 0:t.isConnected)&&this.totalRows>0){await this.controller.updateActiveRowRange(this.viewportStartIndex,this.viewportEndIndex)}}createPools(){if(this.stateMap.columnElementPools==null){this.stateMap.columnElementPools=this.columnElements.reduce(((t,e)=>t.set(e,new W(e,(()=>this.createColumnCellInstance(e))))),new WeakMap)}}recreateColumnPools(){this.columnElements.forEach((t=>{var e,i,s;if(((e=this.stateMap.columnElementPools)===null||e===void 0?void 0:e.get(t))==null){(i=this.stateMap.columnElementPools)===null||i===void 0?void 0:i.set(t,new W(t,(()=>this.createColumnCellInstance(t))))}else{(s=this.stateMap.columnElementPools.get(t))===null||s===void 0?void 0:s.updateElementFactory((()=>this.createColumnCellInstance(t)))}}))}iterateColumns(t){this.columnElements.forEach(((e,i)=>{var s;const n=(s=this.stateMap.columnElementPools)===null||s===void 0?void 0:s.get(e);if(n!=null){t(e,n,i)}else{throw new Error("Cannot find pool for column")}}))}ensureDividerTemplateDefined(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t==null){const t=document.createElement("template");t.slot="divider";t.innerHTML=`\n <vertex-scene-tree-table-resize-divider slot="divider">\n </vertex-scene-tree-table-resize-divider>\n `;this.hostEl.appendChild(t)}}createHeaderInstance(t){const e=t.querySelector('template[slot="header"]');if(e!=null){return N(e)}}createDividerInstance(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t!=null){return N(t)}else{throw new Error("Table is missing divider template element")}}createColumnCellInstance(t){const e=t.querySelector('template:not([slot="header"])');if(e!=null){return N(e)}else{throw new Error("Column is missing cell template element")}}addDividerDragListeners(){var t;this.stateMap.headerDividerListeners=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.map(((t,e)=>{const i=this.createDividerPointerDownHandler(e);t.element.addEventListener("pointerdown",i);return i}))}removeDividerDragListeners(){var t;if(this.stateMap.headerDividerListeners!=null){const e=this.stateMap.headerDividerListeners;(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.forEach(((t,i)=>{const s=e[i];if(s!=null){t.element.removeEventListener("pointerdown",s)}}));this.stateMap.headerDividerListeners=undefined}}getViewportRows(t,e){const i=this.rows.slice(t,e+1);return i.map((t=>t!=null?this.populateRowData(t):t))}populateRowData(t){var e;if(this.rowData!=null&&t!=null){const i=((e=this.rowData)===null||e===void 0?void 0:e.call(this,t))||{};return{...t,data:i}}else{return t}}getLayoutHeight(){if(this.layoutHeight==null&&this.tableElement!=null){this.layoutHeight=c(this.tableElement)}return this.layoutHeight}getLayoutWidth(){if(this.layoutWidth==null){const t=B(this.hostEl);if(t>0){this.layoutWidth=t}}return this.layoutWidth}clearLayoutHeight(){this.layoutHeight=undefined}clearLayoutWidth(){this.layoutWidth=undefined}get hostEl(){return n(this)}static get watchers(){return{rows:[{handleViewportRowsPropsChanged:0}],totalRows:[{handleViewportRowsPropsChanged:0}],rowHeight:[{handleViewportRowsPropsChanged:0}]}}};K.style=O();const J=()=>`:host{--scene-tree-toolbar-content-gap:8px;display:flex;padding:0.5rem}.content{display:flex;align-items:center}.content-primary{width:100%}::slotted(:not(:first-child)){margin-left:var(--scene-tree-toolbar-content-gap)}`;const Q=class{constructor(e){t(this,e)}render(){return i(s,{key:"7a3286d46171832c1fae126645568899b1004fa1"},i("div",{key:"ac81e6da67a1c41dbb30a23ec9658ddbac0cd9ea",class:"content"},i("slot",{key:"1993b705fbeeca9f7fee213662981403d89ea4c2",name:"before"})),i("div",{key:"ee8b5cf8eccb88a4b0b029c6f3a33c9c5f20ef09",class:"content content-primary"},i("slot",{key:"2cb220546b02b8dd353aa0270bbfa7f51dc0ca95"})),i("div",{key:"cd0c977e5f42f1dbacaad42306b1705a97b50ab9",class:"content"},i("slot",{key:"0f3af32f24077fa6d0bda7cc1fce3b9921b49f70",name:"after"})))}};Q.style=J();export{v as vertex_scene_tree_notification_banner,b as vertex_scene_tree_search,K as vertex_scene_tree_table_layout,Q as vertex_scene_tree_toolbar};
5
+ //# sourceMappingURL=p-ebd9dd99.entry.js.map