@vertexvis/viewer 0.13.2-canary.9 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/cjs/{_commonjsHelpers-537d719a.js → _commonjsHelpers-dcc4cf71.js} +21 -0
  2. package/dist/cjs/{app-globals-3671e828.js → app-globals-2035678d.js} +1 -1
  3. package/dist/cjs/{browser.esm-075810bf.js → browser.esm-0bcdc581.js} +1 -1
  4. package/dist/cjs/{bundle.esm-618a5fe9.js → bundle.esm-22b6f2d6.js} +35 -1
  5. package/dist/cjs/{config-fb124bac.js → config-c63caa4f.js} +3 -2
  6. package/dist/cjs/{cursors-d71f6a74.js → cursors-f5d3c9a6.js} +13 -1
  7. package/dist/cjs/{dom-57ef84e9.js → dom-8d90bfaf.js} +1 -1
  8. package/dist/cjs/dom-d1bbd67c.js +10 -0
  9. package/dist/cjs/elementRectObserver-9b28f182.js +25 -0
  10. package/dist/cjs/entities-9eb7e608.js +41 -0
  11. package/dist/cjs/{entities-90f1347a.js → entities-e71231d8.js} +4 -4
  12. package/dist/cjs/{grpc-web-client.umd-60a79aae.js → grpc-web-client.umd-2af20c1b.js} +1 -1
  13. package/dist/cjs/{index-e100709a.js → index-4138aa2c.js} +1 -0
  14. package/dist/cjs/{index-3bc6bac0.js → index-b9d13137.js} +1 -1
  15. package/dist/cjs/index.cjs.js +25 -22
  16. package/dist/cjs/loader.cjs.js +4 -4
  17. package/dist/cjs/{mapper-80ee2957.js → mapper-08bbab48.js} +4 -4
  18. package/dist/cjs/{markup-7f7de5f2.js → markup-f7e61d16.js} +2 -2
  19. package/dist/cjs/{measurement-f1ae9248.js → measurement-3367e9b7.js} +2 -2
  20. package/dist/cjs/{model-55abd9ab.js → model-5ca87867.js} +1 -1
  21. package/dist/cjs/model-a9cfd037.js +246 -0
  22. package/dist/cjs/{overlays-68e8eff2.js → overlays-b0ba69fd.js} +2 -2
  23. package/dist/cjs/{png-decoder-076131d8.js → png-decoder-ef097f37.js} +2 -2
  24. package/dist/cjs/{results-e9496869.js → results-178e89a3.js} +1 -1
  25. package/dist/cjs/{scene-92728420.js → scene-b6b78909.js} +49 -12
  26. package/dist/cjs/{stencil-a664cd10.js → stencil-ef19638e.js} +5 -1
  27. package/dist/cjs/{streamAttributes-81eb52f2.js → streamAttributes-c343bdc8.js} +1993 -78
  28. package/dist/cjs/utils-78928e4e.js +162 -0
  29. package/dist/cjs/{utils-6397efca.js → utils-b157b0af.js} +1 -1
  30. package/dist/cjs/{utils-463cd52e.js → utils-c74b8bf0.js} +1 -1
  31. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +16 -6
  32. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +16 -14
  33. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  34. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  35. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +3 -3
  36. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-scene-tree.cjs.entry.js +154 -27
  38. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +3 -3
  39. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  40. package/dist/cjs/{vertex-viewer-dom-element_3.cjs.entry.js → vertex-viewer-dom-element_2.cjs.entry.js} +20 -178
  41. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +191 -0
  42. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +6 -3
  43. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  44. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +49 -196
  45. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +5 -5
  46. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +5 -5
  47. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +8 -7
  48. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +16 -15
  49. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +10 -9
  50. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +18 -35
  51. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +8 -7
  52. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +12 -11
  53. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +167 -0
  54. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +276 -0
  55. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +322 -0
  56. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +13272 -0
  57. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +8 -7
  58. package/dist/cjs/vertex-viewer.cjs.entry.js +119 -52
  59. package/dist/cjs/viewer.cjs.js +4 -4
  60. package/dist/cjs/{viewport-54b1389d.js → viewport-5ca619f7.js} +14 -4
  61. package/dist/collection/__mocks__/regl-shape.js +6 -0
  62. package/dist/collection/__mocks__/regl.js +3 -0
  63. package/dist/collection/collection-manifest.json +5 -0
  64. package/dist/collection/components/scene-tree/lib/controller.js +17 -5
  65. package/dist/collection/components/scene-tree/lib/errors.js +7 -1
  66. package/dist/collection/components/scene-tree/lib/viewer-ops.js +12 -1
  67. package/dist/collection/components/scene-tree/scene-tree.js +112 -22
  68. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +0 -7
  69. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +34 -12
  70. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -2
  71. package/dist/collection/components/viewer/viewer.js +79 -14
  72. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +32 -4
  73. package/dist/collection/components/viewer-dom-group/utils.js +3 -2
  74. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +30 -2
  75. package/dist/collection/components/viewer-icon/viewer-icon.js +5 -2
  76. package/dist/collection/components/viewer-markup/utils.js +3 -2
  77. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +2 -2
  78. package/dist/collection/components/viewer-pin-group/pin-renderer.js +12 -0
  79. package/dist/collection/components/viewer-pin-group/utils.js +24 -0
  80. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +83 -0
  81. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +276 -0
  82. package/dist/collection/components/viewer-pin-label/utils.js +4 -0
  83. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +154 -0
  84. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +410 -0
  85. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +36 -0
  86. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +61 -0
  87. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +9 -0
  88. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +277 -0
  89. package/dist/collection/components/viewer-transform-widget/__mocks__/widget.js +21 -0
  90. package/dist/collection/components/viewer-transform-widget/util.js +78 -0
  91. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +48 -0
  92. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +442 -0
  93. package/dist/collection/components/viewer-transform-widget/widget.js +259 -0
  94. package/dist/collection/lib/cursors.js +11 -1
  95. package/dist/collection/lib/interactions/baseInteractionHandler.js +9 -2
  96. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +4 -3
  97. package/dist/collection/lib/interactions/interactionApi.js +21 -1
  98. package/dist/collection/lib/interactions/interactionApiOrthographic.js +18 -1
  99. package/dist/collection/lib/interactions/mouseInteractionHandler.js +4 -4
  100. package/dist/collection/lib/interactions/mouseInteractions.js +24 -1
  101. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +1 -2
  102. package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
  103. package/dist/collection/lib/mappers/streamAttributes.js +4 -2
  104. package/dist/collection/lib/pins/controller.js +100 -0
  105. package/dist/collection/lib/pins/interactions.js +183 -0
  106. package/dist/collection/lib/pins/model.js +136 -0
  107. package/dist/collection/lib/rendering/canvas.js +6 -28
  108. package/dist/collection/lib/scenes/camera.js +34 -2
  109. package/dist/collection/lib/scenes/colorMaterial.js +8 -8
  110. package/dist/collection/lib/scenes/mapper.js +2 -1
  111. package/dist/collection/lib/scenes/queries.js +6 -4
  112. package/dist/collection/lib/transforms/axis-lines.js +31 -0
  113. package/dist/collection/lib/transforms/axis-rotation.js +34 -0
  114. package/dist/collection/lib/transforms/axis-translation.js +30 -0
  115. package/dist/collection/lib/transforms/controller.js +117 -0
  116. package/dist/collection/lib/transforms/drawable.js +47 -0
  117. package/dist/collection/lib/transforms/hits.js +51 -0
  118. package/dist/collection/lib/transforms/line.js +58 -0
  119. package/dist/collection/lib/transforms/mesh.js +35 -0
  120. package/dist/collection/lib/transforms/shape.js +2 -0
  121. package/dist/collection/lib/transforms/util.js +4 -0
  122. package/dist/collection/lib/types/depthBuffer.js +2 -2
  123. package/dist/collection/lib/types/frameCamera.js +4 -6
  124. package/dist/collection/lib/types/viewport.js +14 -4
  125. package/dist/custom-elements/index.d.ts +30 -0
  126. package/dist/custom-elements/index.js +16835 -335
  127. package/dist/esm/{_commonjsHelpers-9943807e.js → _commonjsHelpers-11ca3be1.js} +20 -1
  128. package/dist/esm/{app-globals-3a04a531.js → app-globals-40df99a0.js} +1 -1
  129. package/dist/esm/{browser.esm-e72d80ad.js → browser.esm-1ddb69c9.js} +1 -1
  130. package/dist/esm/{bundle.esm-8ceccb91.js → bundle.esm-ce2c7ad3.js} +36 -2
  131. package/dist/esm/{config-fb7cd8ff.js → config-7075833a.js} +3 -2
  132. package/dist/esm/{cursors-fc2deed7.js → cursors-98b7d89d.js} +12 -2
  133. package/dist/esm/{dom-2cd18856.js → dom-5b164305.js} +1 -1
  134. package/dist/esm/dom-be140992.js +8 -0
  135. package/dist/esm/elementRectObserver-39cf7b95.js +23 -0
  136. package/dist/esm/{entities-78557270.js → entities-46be90d5.js} +4 -4
  137. package/dist/esm/entities-ce81dd7f.js +41 -0
  138. package/dist/esm/{grpc-web-client.umd-5982b7b0.js → grpc-web-client.umd-5409853c.js} +1 -1
  139. package/dist/esm/{index-10c1495a.js → index-a9fb8318.js} +1 -1
  140. package/dist/esm/{index-455380d0.js → index-e841d91b.js} +1 -1
  141. package/dist/esm/index.js +15 -14
  142. package/dist/esm/index.mjs +15 -14
  143. package/dist/esm/loader.js +4 -4
  144. package/dist/esm/loader.mjs +4 -4
  145. package/dist/esm/{mapper-da36de17.js → mapper-bde6c607.js} +4 -4
  146. package/dist/esm/{markup-c313d99c.js → markup-8904f2fe.js} +2 -2
  147. package/dist/esm/{measurement-544b69d5.js → measurement-3f9b0ae0.js} +2 -2
  148. package/dist/esm/{model-2a34b443.js → model-e54b081f.js} +1 -1
  149. package/dist/esm/model-f679c493.js +241 -0
  150. package/dist/esm/{overlays-354e275c.js → overlays-ea2d45ec.js} +2 -2
  151. package/dist/esm/{png-decoder-07de80d1.js → png-decoder-d4b65417.js} +2 -2
  152. package/dist/esm/{results-4d0c3568.js → results-3b4df2cf.js} +1 -1
  153. package/dist/esm/{scene-2bfcce74.js → scene-22ebacfd.js} +49 -12
  154. package/dist/esm/{stencil-9bf7fb9e.js → stencil-8b20e5a8.js} +5 -2
  155. package/dist/esm/{streamAttributes-d0b384b3.js → streamAttributes-72a92676.js} +1982 -67
  156. package/dist/esm/{utils-3ea0acdd.js → utils-0b980078.js} +1 -1
  157. package/dist/esm/utils-c714e2f7.js +153 -0
  158. package/dist/esm/{utils-e0941c61.js → utils-f11bd6f7.js} +1 -1
  159. package/dist/esm/vertex-scene-tree-search_3.entry.js +16 -6
  160. package/dist/esm/vertex-scene-tree-table-cell.entry.js +16 -14
  161. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  162. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  163. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +3 -3
  164. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  165. package/dist/esm/vertex-scene-tree.entry.js +154 -27
  166. package/dist/esm/vertex-viewer-button_3.entry.js +3 -3
  167. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  168. package/dist/esm/{vertex-viewer-dom-element_3.entry.js → vertex-viewer-dom-element_2.entry.js} +21 -178
  169. package/dist/esm/vertex-viewer-dom-group.entry.js +187 -0
  170. package/dist/esm/vertex-viewer-icon.entry.js +6 -3
  171. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  172. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +8 -155
  173. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  174. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  175. package/dist/esm/vertex-viewer-measurement-details.entry.js +8 -7
  176. package/dist/esm/vertex-viewer-measurement-distance.entry.js +16 -15
  177. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +10 -9
  178. package/dist/esm/vertex-viewer-measurement-precise.entry.js +15 -32
  179. package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -7
  180. package/dist/esm/vertex-viewer-measurements.entry.js +12 -11
  181. package/dist/esm/vertex-viewer-pin-group.entry.js +163 -0
  182. package/dist/esm/vertex-viewer-pin-label_2.entry.js +271 -0
  183. package/dist/esm/vertex-viewer-pin-tool.entry.js +318 -0
  184. package/dist/esm/vertex-viewer-transform-widget.entry.js +13268 -0
  185. package/dist/esm/vertex-viewer-view-cube.entry.js +8 -7
  186. package/dist/esm/vertex-viewer.entry.js +118 -51
  187. package/dist/esm/viewer.js +4 -4
  188. package/dist/esm/{viewport-5cc7b128.js → viewport-e39e2eba.js} +14 -4
  189. package/dist/types/__mocks__/regl-shape.d.ts +5 -0
  190. package/dist/types/__mocks__/regl.d.ts +5 -0
  191. package/dist/types/components/scene-tree/lib/controller.d.ts +13 -1
  192. package/dist/types/components/scene-tree/lib/errors.d.ts +3 -1
  193. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -0
  194. package/dist/types/components/scene-tree/scene-tree.d.ts +16 -4
  195. package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +6 -2
  196. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +2 -0
  197. package/dist/types/components/viewer/viewer.d.ts +13 -1
  198. package/dist/types/components/viewer-dom-element/viewer-dom-element.d.ts +10 -2
  199. package/dist/types/components/viewer-dom-group/viewer-dom-group.d.ts +9 -1
  200. package/dist/types/components/viewer-icon/viewer-icon.d.ts +1 -1
  201. package/dist/types/components/viewer-pin-group/pin-renderer.d.ts +8 -0
  202. package/dist/types/components/viewer-pin-group/utils.d.ts +2 -0
  203. package/dist/types/components/viewer-pin-group/viewer-pin-group.d.ts +49 -0
  204. package/dist/types/components/viewer-pin-label/utils.d.ts +1 -0
  205. package/dist/types/components/viewer-pin-label/viewer-pin-label.d.ts +77 -0
  206. package/dist/types/components/viewer-pin-label-line/viewer-pin-label-line.d.ts +7 -0
  207. package/dist/types/components/viewer-pin-tool/viewer-pin-tool.d.ts +68 -0
  208. package/dist/types/components/viewer-transform-widget/__mocks__/widget.d.ts +11 -0
  209. package/dist/types/components/viewer-transform-widget/util.d.ts +5 -0
  210. package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +81 -0
  211. package/dist/types/components/viewer-transform-widget/widget.d.ts +74 -0
  212. package/dist/types/components.d.ts +303 -12
  213. package/dist/types/interfaces.d.ts +1 -0
  214. package/dist/types/lib/cursors.d.ts +10 -0
  215. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +4 -3
  216. package/dist/types/lib/interactions/interactionApi.d.ts +10 -1
  217. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +7 -0
  218. package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +2 -2
  219. package/dist/types/lib/interactions/mouseInteractions.d.ts +6 -0
  220. package/dist/types/lib/pins/controller.d.ts +70 -0
  221. package/dist/types/lib/pins/interactions.d.ts +30 -0
  222. package/dist/types/lib/pins/model.d.ts +104 -0
  223. package/dist/types/lib/rendering/canvas.d.ts +1 -2
  224. package/dist/types/lib/scenes/camera.d.ts +10 -0
  225. package/dist/types/lib/scenes/colorMaterial.d.ts +1 -0
  226. package/dist/types/lib/scenes/queries.d.ts +4 -2
  227. package/dist/types/lib/transforms/axis-lines.d.ts +6 -0
  228. package/dist/types/lib/transforms/axis-rotation.d.ts +6 -0
  229. package/dist/types/lib/transforms/axis-translation.d.ts +6 -0
  230. package/dist/types/lib/transforms/controller.d.ts +17 -0
  231. package/dist/types/lib/transforms/drawable.d.ts +26 -0
  232. package/dist/types/lib/transforms/hits.d.ts +10 -0
  233. package/dist/types/lib/transforms/line.d.ts +31 -0
  234. package/dist/types/lib/transforms/mesh.d.ts +23 -0
  235. package/dist/types/lib/transforms/shape.d.ts +3 -0
  236. package/dist/types/lib/transforms/util.d.ts +2 -0
  237. package/dist/types/lib/types/frameCamera.d.ts +1 -0
  238. package/dist/types/lib/types/viewport.d.ts +8 -0
  239. package/dist/types/regl-shape.d.ts +26 -0
  240. package/dist/viewer/index.esm.js +1 -1
  241. package/dist/viewer/p-058632f4.js +4 -0
  242. package/dist/viewer/p-07aeee89.js +10 -0
  243. package/dist/viewer/{p-e75bba97.js → p-083f427e.js} +1 -1
  244. package/dist/viewer/{p-a455ae02.entry.js → p-08eda2b2.entry.js} +1 -1
  245. package/dist/viewer/{p-bcb66f97.js → p-096e60bd.js} +1 -1
  246. package/dist/viewer/p-0bc4b3f7.js +4 -0
  247. package/dist/viewer/p-148c5f1a.js +4 -0
  248. package/dist/viewer/p-1db9bd1a.entry.js +4 -0
  249. package/dist/viewer/{p-70ca1ea7.entry.js → p-1f251549.entry.js} +1 -1
  250. package/dist/viewer/p-29986489.js +4 -0
  251. package/dist/viewer/{p-cafa57a6.js → p-2e581b2a.js} +1 -1
  252. package/dist/viewer/{p-d2bcf788.entry.js → p-33daeb09.entry.js} +1 -1
  253. package/dist/viewer/p-39803f8f.js +4 -0
  254. package/dist/viewer/p-465a92d9.entry.js +4 -0
  255. package/dist/viewer/p-4a65ddb3.entry.js +4 -0
  256. package/dist/viewer/{p-099fe6ca.entry.js → p-4aaf02b4.entry.js} +1 -1
  257. package/dist/viewer/{p-31658489.entry.js → p-4c3a3738.entry.js} +1 -1
  258. package/dist/viewer/{p-e38458da.js → p-4d37d97c.js} +1 -1
  259. package/dist/viewer/p-4fdf8553.entry.js +4 -0
  260. package/dist/viewer/p-5679f46b.entry.js +4 -0
  261. package/dist/viewer/p-5809b400.js +4 -0
  262. package/dist/viewer/{p-fa9a0bed.js → p-58dacdce.js} +1 -1
  263. package/dist/viewer/p-61a042f0.entry.js +4 -0
  264. package/dist/viewer/{p-b8774c9c.js → p-6c377932.js} +1 -1
  265. package/dist/viewer/p-6d379d4a.js +4 -0
  266. package/dist/viewer/p-6d70b198.entry.js +4 -0
  267. package/dist/viewer/p-6e7e094a.entry.js +4 -0
  268. package/dist/viewer/{p-661f0612.js → p-70e5e8a8.js} +1 -1
  269. package/dist/viewer/p-74102b29.entry.js +32 -0
  270. package/dist/viewer/p-7a5a9a93.entry.js +4 -0
  271. package/dist/viewer/p-7c755e0e.entry.js +4 -0
  272. package/dist/viewer/{p-3a20a038.js → p-92fe4417.js} +1 -1
  273. package/dist/viewer/{p-7e0328aa.js → p-98e6a50e.js} +1 -1
  274. package/dist/viewer/{p-388a43f7.js → p-990f98c2.js} +1 -1
  275. package/dist/viewer/{p-487e054a.js → p-99352cf0.js} +1 -1
  276. package/dist/viewer/{p-1ca95f9a.entry.js → p-99799a71.entry.js} +1 -1
  277. package/dist/viewer/p-9acd1b44.js +4 -0
  278. package/dist/viewer/{p-69058178.js → p-9bcde9c8.js} +1 -1
  279. package/dist/viewer/{p-5b342e97.js → p-a2ef15e5.js} +1 -1
  280. package/dist/viewer/{p-61b1097b.entry.js → p-a32cc378.entry.js} +1 -1
  281. package/dist/viewer/p-a380f0c2.js +4 -0
  282. package/dist/viewer/{p-41028d3b.entry.js → p-af37b63e.entry.js} +1 -1
  283. package/dist/viewer/p-b6b727a6.entry.js +4 -0
  284. package/dist/viewer/p-c2e3312b.js +4 -0
  285. package/dist/viewer/{p-4717c98e.entry.js → p-c9f91798.entry.js} +1 -1
  286. package/dist/viewer/p-ca518dcb.entry.js +4 -0
  287. package/dist/viewer/p-d828fd18.entry.js +4 -0
  288. package/dist/viewer/p-d996b1d2.entry.js +4 -0
  289. package/dist/viewer/{p-3f0f83ad.js → p-db01460a.js} +1 -1
  290. package/dist/viewer/p-db716103.entry.js +4 -0
  291. package/dist/viewer/p-df8fbe56.js +4 -0
  292. package/dist/viewer/p-dfe5a97d.js +4 -0
  293. package/dist/viewer/p-e42cb163.js +4 -0
  294. package/dist/viewer/p-eb8e5db5.js +4 -0
  295. package/dist/viewer/{p-46459921.entry.js → p-ebb801c3.entry.js} +1 -1
  296. package/dist/viewer/p-ebd85d58.entry.js +4 -0
  297. package/dist/viewer/p-eefae62a.entry.js +4 -0
  298. package/dist/viewer/viewer.esm.js +1 -1
  299. package/package.json +12 -10
  300. package/readme.md +4 -4
  301. package/dist/viewer/p-0a189e62.entry.js +0 -4
  302. package/dist/viewer/p-112455b1.js +0 -4
  303. package/dist/viewer/p-3561d910.js +0 -4
  304. package/dist/viewer/p-49d36e94.entry.js +0 -4
  305. package/dist/viewer/p-73a5eacc.entry.js +0 -4
  306. package/dist/viewer/p-77be081a.js +0 -4
  307. package/dist/viewer/p-809d09d9.js +0 -4
  308. package/dist/viewer/p-858bd2c7.entry.js +0 -4
  309. package/dist/viewer/p-89b66838.entry.js +0 -32
  310. package/dist/viewer/p-90bb0a1f.entry.js +0 -4
  311. package/dist/viewer/p-a93a63a9.js +0 -4
  312. package/dist/viewer/p-b043b076.entry.js +0 -4
  313. package/dist/viewer/p-b0ac6b3c.entry.js +0 -4
  314. package/dist/viewer/p-bcde5521.entry.js +0 -4
  315. package/dist/viewer/p-d1584404.js +0 -4
  316. package/dist/viewer/p-d32b54cb.js +0 -4
  317. package/dist/viewer/p-d3a20af4.entry.js +0 -4
  318. package/dist/viewer/p-d9f99f4d.entry.js +0 -4
  319. package/dist/viewer/p-ebd55df7.entry.js +0 -4
  320. package/dist/viewer/p-f0411993.entry.js +0 -4
  321. package/dist/viewer/p-f482325b.js +0 -10
  322. package/dist/viewer/p-fad9693e.js +0 -4
  323. package/dist/viewer/p-ffdeb08c.js +0 -4
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{o as e}from"./p-e75bba97.js";import"./p-77be081a.js";const t={network:{apiHost:"https://platform.platprod.vertexvis.io",renderingHost:"wss://stream.platprod.vertexvis.io",sceneTreeHost:"https://scene-trees.platprod.vertexvis.io",sceneViewHost:"https://scenes.platprod.vertexvis.io"},flags:{throttleFrameDelivery:!0,adaptiveRendering:!0,logWsMessages:!1,logFrameRate:!1,letterboxFrames:!1},events:{doubleTapThreshold:500,longPressThreshold:500},animation:{durationMs:500},interactions:{finePointerThreshold:1,coarsePointerThreshold:3,interactionDelay:75},EXPERIMENTAL_frameDelivery:{},EXPERIMENTAL_adaptiveRendering:{},EXPERIMENTAL_qualityOfService:{}},s=Object.assign(Object.assign({},t),{network:{apiHost:"https://platform.platdev.vertexvis.io",renderingHost:"wss://stream.platdev.vertexvis.io",sceneTreeHost:"https://scene-trees.platdev.vertexvis.io",sceneViewHost:"https://scenes.platdev.vertexvis.io"}}),r=Object.assign(Object.assign({},t),{network:{apiHost:"https://platform.platstaging.vertexvis.io",renderingHost:"wss://stream.platstaging.vertexvis.io",sceneTreeHost:"https://scene-trees.platstaging.vertexvis.io",sceneViewHost:"https://scenes.platstaging.vertexvis.io"}});function i(e){switch(e){case"platdev":return s;case"platstaging":return r;default:return t}}function o(t="platprod",s){"string"==typeof s&&(s=JSON.parse(s));const r=i(t);return null==s?r:e.defaults(Object.assign({},s),r)}export{o as p}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{h as e,F as i,r as t,H as o}from"./p-cafa57a6.js";import{v as r,t as a,u as n}from"./p-661f0612.js";import{r as c}from"./p-fad9693e.js";import{O as s,e as d,H as l}from"./p-77be081a.js";import{c as h}from"./p-f482325b.js";import"./p-e75bba97.js";import"./p-112455b1.js";const b={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)}},f=({label:t,length:o,rotationAxis:c})=>{const s={width:`${o+5}px`},d=a.fromAxisAngle(c,Math.PI/2),l=r.scale(o+15,r.right());return e(i,null,e("vertex-viewer-dom-group",{quaternion:d},e("vertex-viewer-dom-element",{style:s,billboardOff:!0,interactionsOff:!0},e("div",{class:`triad-axis triad-axis-${t.toLowerCase()}`})),e("vertex-viewer-dom-element",{rotation:n.create({x:Math.PI/2,y:0,z:0}),style:s,billboardOff:!0,interactionsOff:!0},e("div",{class:`triad-axis triad-axis-${t.toLowerCase()}`})),e("vertex-viewer-dom-element",{position:l,interactionsOff:!0},e("div",{class:`triad-label triad-label-${t.toLowerCase()}`},t))))},g=({label:i,length:t,side:o,disabled:a,onPointerDown:n})=>{const{direction:c,quaternion:s}=b[o],d=r.scale(t/2-.1,c);return e("vertex-viewer-dom-element",{class:h("cube-side",{disabled:a}),position:d,quaternion:s,style:{width:`${t}px`,height:`${t}px`},onPointerDown:n,billboardOff:!0},e("div",{class:`cube-side-face cube-side-face-${i.toLowerCase()}`},i))},v=({length:i,face1Side:t,face1Corner:o,face2Side:a,face2Corner:n,face3Side:c,face3Corner:s,disabled:d,onPointerDown:l})=>{const{direction:f,quaternion:g}=b[t],{direction:v,quaternion:u}=b[a],{direction:w,quaternion:p}=b[c],m=r.scale(i/2,f),x=r.scale(i/2,v),S=r.scale(i/2,w),y={width:`${i}px`,height:`${i}px`};return e("vertex-viewer-dom-group",{class:h("cube-corner",{disabled:d}),onPointerDown:l},e("vertex-viewer-dom-element",{position:m,quaternion:g,style:y,billboardOff:!0},e("div",{class:`cube-corner-face ${o}`})),e("vertex-viewer-dom-element",{position:x,quaternion:u,style:y,billboardOff:!0},e("div",{class:`cube-corner-face ${n}`})),e("vertex-viewer-dom-element",{position:S,quaternion:p,style:y,billboardOff:!0},e("div",{class:`cube-corner-face ${s}`})))},u=({length:i,face1Side:t,face2Side:o,face1Edge:a,face2Edge:n,disabled:c,onPointerDown:s})=>{const{direction:d,quaternion:l}=b[t],{direction:f,quaternion:g}=b[o],v=r.scale(i/2,d),u=r.scale(i/2,f),w={width:`${i}px`,height:`${i}px`};return e("vertex-viewer-dom-group",{class:h("cube-edge",{disabled:c}),onPointerDown:s},e("vertex-viewer-dom-element",{position:v,quaternion:l,style:w,billboardOff:!0},e("div",{class:`cube-edge-face ${a}`})),e("vertex-viewer-dom-element",{position:u,quaternion:g,style:w,billboardOff:!0},e("div",{class:`cube-edge-face ${n}`})))},w=({length:i})=>{const{direction:t,quaternion:o}=b.top,a=r.scale(-i/2,t);return e("vertex-viewer-dom-element",{class:"cube-shadow",position:a,quaternion:o,style:{width:`${i}px`,height:`${i}px`},billboardOff:!0,interactionsOff:!0},e("div",{class:"cube-shadow-face"}))};let p=class{constructor(e){t(this,e),this.boxLength=80,this.triadPosition=r.origin(),this.xPositiveLabel="Left",this.xNegativeLabel="Right",this.yPositiveLabel="Top",this.yNegativeLabel="Bottom",this.zPositiveLabel="Front",this.zNegativeLabel="Back",this.standardViewsOff=!1,this.animationDuration=500,this.triadOff=!1,this.worldOrientation=s.DEFAULT,this.updateMatrices=()=>{var e;if(null!=(null===(e=this.viewer)||void 0===e?void 0:e.frame)){const{camera:e}=this.viewer.frame.scene,i=this.boxLength/2;this.triadPosition=r.create(-i-5,-i-5,-i-5);const t=21.5;this.camera=new d(r.scale(3.125*this.boxLength,r.negate(e.direction)),r.origin(),e.up,.1,100,1,t),this.worldOrientation=this.viewer.frame.scene.worldOrientation}}}handleViewerChanged(e,i){null==i||i.removeEventListener("frameDrawn",this.updateMatrices),null==e||e.addEventListener("frameDrawn",this.updateMatrices),this.updateMatrices()}handleStandardView(e){return this.standardViewsOff?async()=>{}:async()=>{if(null!=this.viewer){const i=await this.viewer.scene(),t=this.animationDuration>0?{animation:{milliseconds:this.animationDuration}}:{},o=e.transformMatrix(this.worldOrientation.matrix);i.camera().standardView(o).viewAll().render(t)}}}componentWillLoad(){this.handleViewerChanged(this.viewer)}componentDidLoad(){null!=this.rendererEl&&(new ResizeObserver((()=>this.handleRendererResized())).observe(this.rendererEl),this.handleRendererResized())}handleRendererResized(){c((()=>{if(null!=this.rendererEl){const e=this.rendererEl.getBoundingClientRect();this.boxLength=Math.min(e.width,e.height)}}))}render(){return e(o,null,e("vertex-viewer-dom-renderer",{ref:e=>this.rendererEl=e,class:"renderer",camera:this.camera},!this.triadOff&&e("vertex-viewer-dom-group",{class:"triad",position:this.triadPosition},e(f,{label:"X",length:this.boxLength,rotationAxis:r.origin()}),e(f,{label:"Y",length:this.boxLength,rotationAxis:r.back()}),e(f,{label:"Z",length:this.boxLength,rotationAxis:r.down()})),e("vertex-viewer-dom-group",{class:"cube",matrix:this.worldOrientation.matrix},e(w,{length:this.boxLength+10}),e(g,{label:this.zPositiveLabel,length:this.boxLength,side:"front",onPointerDown:this.handleStandardView(l.FRONT),disabled:this.standardViewsOff}),e(g,{label:this.zNegativeLabel,length:this.boxLength,side:"back",onPointerDown:this.handleStandardView(l.BACK),disabled:this.standardViewsOff}),e(g,{label:this.xNegativeLabel,length:this.boxLength,side:"left",onPointerDown:this.handleStandardView(l.RIGHT),disabled:this.standardViewsOff}),e(g,{label:this.xPositiveLabel,length:this.boxLength,side:"right",onPointerDown:this.handleStandardView(l.LEFT),disabled:this.standardViewsOff}),e(g,{label:this.yPositiveLabel,length:this.boxLength,side:"top",onPointerDown:this.handleStandardView(l.TOP),disabled:this.standardViewsOff}),e(g,{label:this.yNegativeLabel,length:this.boxLength,side:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"bottom",face2Side:"front",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_FRONT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"front",face1Edge:"right",face2Side:"right",face2Edge:"left",onPointerDown:this.handleStandardView(l.FRONT_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"top",face2Side:"front",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_FRONT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"front",face1Edge:"left",face2Side:"left",face2Edge:"right",onPointerDown:this.handleStandardView(l.FRONT_RIGHT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"right",face2Side:"right",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"back",face1Edge:"left",face2Side:"right",face2Edge:"right",onPointerDown:this.handleStandardView(l.BACK_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"right",face2Side:"right",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_LEFT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"top",face2Side:"back",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_BACK),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"back",face1Edge:"right",face2Side:"left",face2Edge:"left",onPointerDown:this.handleStandardView(l.BACK_RIGHT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"bottom",face2Side:"back",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_BACK),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"top",face1Edge:"left",face2Side:"left",face2Edge:"top",onPointerDown:this.handleStandardView(l.TOP_RIGHT),disabled:this.standardViewsOff}),e(u,{length:this.boxLength,face1Side:"bottom",face1Edge:"left",face2Side:"left",face2Edge:"bottom",onPointerDown:this.handleStandardView(l.BOTTOM_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"bottom-left",face2Side:"front",face2Corner:"top-left",face3Side:"left",face3Corner:"top-right",onPointerDown:this.handleStandardView(l.TOP_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"bottom-right",face2Side:"front",face2Corner:"top-right",face3Side:"right",face3Corner:"top-left",onPointerDown:this.handleStandardView(l.TOP_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"top-right",face2Side:"front",face2Corner:"bottom-right",face3Side:"right",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(l.BOTTOM_FRONT_LEFT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"top-left",face2Side:"front",face2Corner:"bottom-left",face3Side:"left",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(l.BOTTOM_FRONT_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"top-right",face2Side:"back",face2Corner:"top-left",face3Side:"right",face3Corner:"top-right",onPointerDown:this.handleStandardView(l.TOP_BACK_LEFT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"top",face1Corner:"top-left",face2Side:"back",face2Corner:"top-right",face3Side:"left",face3Corner:"top-left",onPointerDown:this.handleStandardView(l.TOP_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-left",face2Side:"back",face2Corner:"bottom-right",face3Side:"left",face3Corner:"bottom-left",onPointerDown:this.handleStandardView(l.BOTTOM_BACK_RIGHT),disabled:this.standardViewsOff}),e(v,{length:this.boxLength,face1Side:"bottom",face1Corner:"bottom-right",face2Side:"back",face2Corner:"bottom-left",face3Side:"right",face3Corner:"bottom-right",onPointerDown:this.handleStandardView(l.BOTTOM_BACK_LEFT),disabled:this.standardViewsOff}))))}static get watchers(){return{viewer:["handleViewerChanged"]}}};p.style=":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);display:block;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}.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-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}";export{p as vertex_viewer_view_cube}
@@ -1,32 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{h as e,F as t,r,H as s}from"./p-cafa57a6.js";import{D as i,A as n,f as a}from"./p-77be081a.js";import{o as l,v as o}from"./p-661f0612.js";import{c as h}from"./p-f482325b.js";import"./p-e75bba97.js";import"./p-112455b1.js";
5
- /*! *****************************************************************************
6
- Copyright (c) Microsoft Corporation.
7
-
8
- Permission to use, copy, modify, and/or distribute this software for any
9
- purpose with or without fee is hereby granted.
10
-
11
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
12
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
13
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
14
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
15
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
16
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
17
- PERFORMANCE OF THIS SOFTWARE.
18
- ***************************************************************************** */var u=function(){return(u=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)},d=function(){return(d=Object.assign||function(e){for(var t,r=1,s=arguments.length;r<s;r++)for(var i in t=arguments[r])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};
19
- /*! *****************************************************************************
20
- Copyright (c) Microsoft Corporation.
21
-
22
- Permission to use, copy, modify, and/or distribute this software for any
23
- purpose with or without fee is hereby granted.
24
-
25
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
26
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
27
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
28
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
29
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
30
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
31
- PERFORMANCE OF THIS SOFTWARE.
32
- ***************************************************************************** */function v(e){return e.toLowerCase()}var m=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],c=/[^A-Z0-9]+/gi;function f(e,t,r){return t instanceof RegExp?e.replace(t,r):t.reduce((function(e,t){return e.replace(t,r)}),e)}function y(e,t){return void 0===t&&(t={}),function(e,t){void 0===t&&(t={});for(var r=t.splitRegexp,s=t.stripRegexp,i=void 0===s?c:s,n=t.transform,a=void 0===n?v:n,l=t.delimiter,o=void 0===l?" ":l,h=f(f(e,void 0===r?m:r,"$1\0$2"),i,"\0"),u=0,d=h.length;"\0"===h.charAt(u);)u++;for(;"\0"===h.charAt(d-1);)d--;return h.slice(u,d).split("\0").map(a).join(o)}(e,d({delimiter:"."},t))}const b=(t,r)=>{var s,i,{label:n}=t,a=l(t,["label"]);return e("div",Object.assign({},a,{class:"measurement-details-entry"}),e("div",{class:h("measurement-details-entry-label",(s=n,void 0===i&&(i={}),y(s,u({delimiter:"-"},i))))},n,":"),r)},g=({result:r,formatter:s,overlays:i,onShowOverlay:n,onHideOverlay:a})=>{const l=o.subtract(r.point1,r.point2);return e(t,null,e(b,{label:"Min Dist",onMouseEnter:()=>n(null==i?void 0:i.addLineFromResult(r)),onMouseLeave:a},s(r.distance)),e(b,{label:"X",onMouseEnter:()=>n(null==i?void 0:i.addDistanceVectorFromResult(r)),onMouseLeave:a},s(l.x)),e(b,{label:"Y",onMouseEnter:()=>n(null==i?void 0:i.addDistanceVectorFromResult(r)),onMouseLeave:a},s(l.y)),e(b,{label:"Z",onMouseEnter:()=>n(null==i?void 0:i.addDistanceVectorFromResult(r)),onMouseLeave:a},s(l.z)))},p=({result:t,formatter:r})=>e(b,{label:"Angle"},r(t.angle)),w=({result:t,formatter:r})=>e(b,{label:"Parallel Dist"},r(t.distance)),M=({result:t,formatter:r})=>e(b,{label:"Area"},r(t.area));let O=class{constructor(e){r(this,e),this.distanceUnits="millimeters",this.angleUnits="degrees",this.fractionalDigits=2,this.distanceMeasurementUnits=new i(this.distanceUnits),this.angleMeasurementUnits=new n(this.angleUnits),this.areaMeasurementUnits=new a(this.distanceUnits),this.handleShowOverlay=e=>{this.overlay=e},this.handleHideOverlay=()=>{var e;null===(e=this.overlay)||void 0===e||e.dispose()},this.handleOutcomeChange=()=>{this.updateStateFromModel()}}connectedCallback(){var e;this.onOutcomeChangedHandler=null===(e=this.measurementModel)||void 0===e?void 0:e.onOutcomeChanged(this.handleOutcomeChange),this.updateStateFromModel()}disconnectedCallback(){var e;null===(e=this.onOutcomeChangedHandler)||void 0===e||e.dispose()}handleDistanceUnitsChanged(){this.distanceMeasurementUnits=new i(this.distanceUnits),this.areaMeasurementUnits=new a(this.distanceUnits)}handleAngleUnitsChanged(){this.angleMeasurementUnits=new n(this.angleUnits)}handleMeasurementModelChanged(){var e,t;null===(e=this.onOutcomeChangedHandler)||void 0===e||e.dispose(),this.onOutcomeChangedHandler=null===(t=this.measurementModel)||void 0===t?void 0:t.onOutcomeChanged(this.handleOutcomeChange),this.updateStateFromModel()}handleResultTypesChanged(){this.updateStateFromModel()}render(){var t,r;const i=(null!==(r=null===(t=this.measurementOutcome)||void 0===t?void 0:t.results)&&void 0!==r?r:[]).filter((e=>{var t,r;return null===(r=null===(t=this.resultTypes)||void 0===t?void 0:t.includes(e.type))||void 0===r||r}));return e(s,null,this.renderResult("planar-angle",i,(t=>e(p,{result:t,overlays:this.measurementOverlays,formatter:this.makeAngleFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("planar-distance",i,(t=>e(w,{result:t,overlays:this.measurementOverlays,formatter:this.makeDistanceFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("surface-area",i,(t=>e(M,{result:t,overlays:this.measurementOverlays,formatter:this.makeAreaFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))),this.renderResult("minimum-distance",i,(t=>e(g,{result:t,overlays:this.measurementOverlays,formatter:this.makeDistanceFormatter(),onShowOverlay:this.handleShowOverlay,onHideOverlay:this.handleHideOverlay}))))}updateStateFromModel(){var e;this.measurementOutcome=null===(e=this.measurementModel)||void 0===e?void 0:e.getOutcome()}renderResult(e,t,r){const s=this.getResultForType(e,t);return null!=s?r(s):void 0}getResultForType(e,t){return t.find((t=>t.type===e))}makeDistanceFormatter(){return this.makeFormatter((e=>this.distanceMeasurementUnits.convertWorldValueToReal(e)),this.distanceMeasurementUnits.unit,this.distanceFormatter)}makeAngleFormatter(){return this.makeFormatter((e=>this.angleMeasurementUnits.convertTo(e)),this.angleMeasurementUnits.unit,this.angleFormatter)}makeAreaFormatter(){return this.makeFormatter((e=>this.areaMeasurementUnits.convertWorldValueToReal(e)),this.areaMeasurementUnits.unit,this.areaFormatter)}makeFormatter(e,t,r){return s=>{const i=e(s);return null!=r?r(i):this.formatValue(i,t)}}formatValue(e,t){var r,s;const i=e.toFixed(this.fractionalDigits);return`${null!==(s=null===(r=this.measurementOutcome)||void 0===r?void 0:r.isApproximate)&&void 0!==s&&s?"~"+i:i} ${t.abbreviatedName}`}static get watchers(){return{distanceUnits:["handleDistanceUnitsChanged"],angleUnits:["handleAngleUnitsChanged"],measurementModel:["handleMeasurementModelChanged"],resultTypes:["handleResultTypesChanged"]}}};O.style=":host{display:flex;flex-direction:column;--viewer-measurement-details-x-color:red;--viewer-measurement-details-y-color:var(--green-500);--viewer-measurement-details-z-color:blue}.measurement-details-entry{display:flex;align-items:center}.measurement-details-entry-label{user-select:none;padding-right:0.25rem}.measurement-details-entry-label.x{color:var(--viewer-measurement-details-x-color)}.measurement-details-entry-label.y{color:var(--viewer-measurement-details-y-color)}.measurement-details-entry-label.z{color:var(--viewer-measurement-details-z-color)}";export{O as vertex_viewer_measurement_details}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as i,c as t,h as s,H as e,g as l}from"./p-cafa57a6.js";import{c as n}from"./p-f482325b.js";import"./p-112455b1.js";let o=class{constructor(s){i(this,s),this.hovered=t(this,"hovered",7),this.expandToggled=t(this,"expandToggled",7),this.visibilityToggled=t(this,"visibilityToggled",7),this.selectionToggled=t(this,"selectionToggled",7),this.placeholder="--",this.interactionsDisabled=!1,this.recurseParentSelectionDisabled=!1,this.displayValue=()=>null==this.value||""===this.value.trim()?this.placeholder:this.value,this.handleCellPointerDown=i=>{var t,s,e,l,n,o;i.defaultPrevented||0!==i.button||this.interactionsDisabled||((i.ctrlKey||i.metaKey)&&(null===(t=this.node)||void 0===t?void 0:t.selected)?null===(s=this.tree)||void 0===s||s.deselectItem(this.node):(null===(e=this.node)||void 0===e?void 0:e.selected)&&!this.recurseParentSelectionDisabled?null===(l=this.tree)||void 0===l||l.selectItem(this.node,{recurseParent:!0}):(null===(n=this.node)||void 0===n?void 0:n.selected)||null===(o=this.tree)||void 0===o||o.selectItem(this.node,{append:i.ctrlKey||i.metaKey,range:i.shiftKey}),this.selectionToggled.emit({node:this.node,originalEvent:i}))},this.toggleExpansion=i=>{null==this.tree||null==this.node||this.interactionsDisabled||this.tree.toggleExpandItem(this.node),this.expandToggled.emit({node:this.node,originalEvent:i})},this.toggleVisibility=i=>{null==this.tree||null==this.node||this.interactionsDisabled||this.tree.toggleItemVisibility(this.node),this.visibilityToggled.emit({node:this.node,originalEvent:i})}}componentWillRender(){var i,t,s,e,l,n,o;this.toggleAttribute("is-hovered",this.hoveredNodeId===(null===(t=null===(i=this.node)||void 0===i?void 0:i.id)||void 0===t?void 0:t.hex)),this.toggleAttribute("is-hidden",!(null===(s=this.node)||void 0===s?void 0:s.visible)),this.toggleAttribute("is-selected",!!(null===(e=this.node)||void 0===e?void 0:e.selected)),this.toggleAttribute("is-partial",!!(null===(l=this.node)||void 0===l?void 0:l.partiallyVisible)),this.toggleAttribute("is-leaf",!!(null===(n=this.node)||void 0===n?void 0:n.isLeaf)),this.toggleAttribute("is-filter-hit",!!(null===(o=this.node)||void 0===o?void 0:o.filterHit))}render(){var i,t,l,o,a,h,d,r,v,c,g,u;return s(e,{onPointerEnter:i=>{this.hovered.emit({node:this.node,originalEvent:i})},onPointerLeave:()=>{this.hovered.emit(void 0)},onPointerDown:this.handleCellPointerDown},s("div",{class:"wrapper"},s("div",{class:"no-shrink"},s("slot",{name:"left-gutter"})),this.expandToggle&&s("button",{class:"expand-btn no-shrink","data-test-id":"expand-"+(null===(i=this.node)||void 0===i?void 0:i.name),onPointerDown:i=>{i.preventDefault(),this.toggleExpansion(i)}},!(null===(t=this.node)||void 0===t?void 0:t.isLeaf)&&s("div",{class:n("icon",{"icon-expanded":!(null===(l=this.node)||void 0===l?void 0:l.isLeaf)&&(null===(o=this.node)||void 0===o?void 0:o.expanded),"icon-collapsed":!(null===(a=this.node)||void 0===a?void 0:a.isLeaf)&&!(null===(h=this.node)||void 0===h?void 0:h.expanded)})})),s("div",{class:"content"},null!=this.value&&""!==this.value.trim()?s("slot",null,this.displayValue()):s("slot",{name:"placeholder"},this.placeholder)),s("button",{class:"visibility-btn no-shrink","data-test-id":"visibility-btn-"+(null===(d=this.node)||void 0===d?void 0:d.name),onPointerDown:i=>{console.log("touching the visibility toggle"),null==i||i.preventDefault(),this.toggleVisibility(i)}},s("div",{class:n("icon",{"icon-visible":!(null===(r=this.node)||void 0===r?void 0:r.partiallyVisible)&&(null===(v=this.node)||void 0===v?void 0:v.visible),"icon-hidden":!(null===(c=this.node)||void 0===c?void 0:c.partiallyVisible)&&!(null===(g=this.node)||void 0===g?void 0:g.visible),"icon-partial":null===(u=this.node)||void 0===u?void 0:u.partiallyVisible})})),s("div",{class:"no-shrink"},s("slot",{name:"right-gutter"})),!this.visibilityToggle&&s("div",{class:"column-spacer"})))}toggleAttribute(i,t){t?this.hostEl.setAttribute(i,""):this.hostEl.removeAttribute(i)}get hostEl(){return l(this)}};o.style="button{border:none;background:transparent;cursor:pointer;margin:0;padding:0}:host{display:flex;align-items:center;box-sizing:border-box;--scene-tree-cell-background-hover:var(--blue-200);--scene-tree-cell-background-selected:var(--blue-300);--scene-tree-cell-text-positioning:left;--scene-tree-cell-padding:0.25rem 0}:host([is-hovered]){background:var(--scene-tree-cell-background-hover)}:host([is-selected]){background:var(--scene-tree-cell-background-selected)}.wrapper{display:flex;align-items:center;box-sizing:border-box;width:100%;height:100%;padding:var(--scene-tree-cell-padding)}.content{width:100%;text-align:var(--scene-tree-cell-text-positioning);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.column-spacer{width:var(--scene-tree-table-column-gap)}.expand-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px}.no-shrink{flex-shrink:0}:host([is-leaf]) .expand-btn{visibility:hidden;cursor:default}.visibility-btn{cursor:pointer;display:flex;align-items:center;justify-content:center;visibility:hidden;width:24px;height:24px}:host([is-hidden]) .visibility-btn,:host([is-partial]) .visibility-btn,:host([is-hovered]) .visibility-btn{visibility:inherit}.icon{width:14px;height:14px}.icon-expanded{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' class='icon' %3E%3Cpath fill='%23444444' d='M11.88,9.17l-3.5-4a.51.51,0,0,0-.76,0l-3.5,4A.5.5,0,0,0,4.5,10h7a.5.5,0,0,0,.38-.83Z' transform='rotate(180 8 8)' /%3E%3C/svg%3E\")}.icon-collapsed{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' class='icon' %3E%3Cpath fill='%23444444' d='M10.83,7.62l-4-3.5A.5.5,0,0,0,6,4.5v7a.5.5,0,0,0,.83.38l4-3.5a.51.51,0,0,0,0-.76Z' /%3E%3C/svg%3E\")}.icon-visible{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' class='icon' %3E%3Cpath fill='%23444444' d='M8 5a3 3 0 103 3 3 3 0 00-3-3zm4.65-1.17A8.53 8.53 0 008 2.5a8.53 8.53 0 00-4.65 1.33A6.57 6.57 0 00.51 7.89v.22a6.57 6.57 0 002.84 4.06A8.53 8.53 0 008 13.5a8.53 8.53 0 004.65-1.33 6.57 6.57 0 002.84-4.06v-.22a6.57 6.57 0 00-2.84-4.06zm-.55 7.5A7.52 7.52 0 018 12.5a7.52 7.52 0 01-4.1-1.17A5.49 5.49 0 011.53 8 5.49 5.49 0 013.9 4.67 7.52 7.52 0 018 3.5a7.52 7.52 0 014.1 1.17A5.49 5.49 0 0114.47 8a5.49 5.49 0 01-2.37 3.33z' /%3E%3C/svg%3E\")}.icon-hidden{background-image:url(\"data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' class='icon' %3E%3Cpath fill='%23444444' d='M13.35 2.65a.48.48 0 00-.7 0l-.78.77a8.71 8.71 0 00-8.52.41A6.57 6.57 0 00.51 7.89v.22a6.58 6.58 0 002.71 4l-.57.58a.49.49 0 00.7.7l10-10a.48.48 0 000-.74zM9.73 5.56a3 3 0 00-4.17 4.17l-1.62 1.62A5.49 5.49 0 011.53 8 5.49 5.49 0 013.9 4.67 7.52 7.52 0 018 3.5a7.67 7.67 0 013.12.67zm3.61-1.2l-.72.72A5.45 5.45 0 0114.47 8a5.49 5.49 0 01-2.37 3.33A7.52 7.52 0 018 12.5a8.15 8.15 0 01-2.41-.38l-.78.78a8.9 8.9 0 003.19.6 8.53 8.53 0 004.65-1.33 6.57 6.57 0 002.84-4.06v-.22a6.56 6.56 0 00-2.15-3.53z' /%3E%3C/svg%3E%0A\")}.icon-partial{background-image:url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath d='M4.12 11.46A5.62 5.62 0 011.52 8 5.57 5.57 0 013.9 4.67 7.52 7.52 0 018 3.5a7.7 7.7 0 013.33.75l.74-.74A8.67 8.67 0 008 2.5a8.53 8.53 0 00-4.65 1.33A6.57 6.57 0 00.51 7.89v.22a6.54 6.54 0 002.88 4.08z' fill='%23444'/%3E%3Cpath d='M8 5a3 3 0 00-3 3 3 3 0 00.69 1.89l4.2-4.2A3 3 0 008 5zM5.88 5.88zM9.2 12.41a.51.51 0 00-.42.57.5.5 0 00.56.42.5.5 0 00.43-.57.51.51 0 00-.57-.42zM6.77 12.41a.5.5 0 00-.57.42.49.49 0 00.41.57.5.5 0 10.15-1zM14.48 5.61a.5.5 0 00-.7-.12.49.49 0 00-.12.69.5.5 0 00.82-.57zM11.5 11.68a.5.5 0 00-.22.67.51.51 0 00.68.22.5.5 0 00-.46-.89zM15.07 7.77a.52.52 0 00-.62.35.51.51 0 00.35.62.5.5 0 00.61-.35.52.52 0 00-.34-.62zM13.36 10.21a.5.5 0 10.76.64.49.49 0 00-.06-.7.51.51 0 00-.7.06z' fill='%23444'/%3E%3C/svg%3E\")}";export{o as vertex_scene_tree_table_cell}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{d as t,p as r,v as s,r as o,i as n}from"./p-661f0612.js";class i{constructor(r,s){this.width=r,this.height=s,this.center=t.center(this.dimensions)}static fromDimensions(t){return new i(t.width,t.height)}transformVectorToViewport(t){return r.create(t.x*this.center.x+this.center.x,-t.y*this.center.y+this.center.y)}transformWorldToViewport(t,r){const o=s.transformMatrix(t,r);return this.transformVectorToViewport(o)}transformPointToViewport(t,s){const{x:o,y:n}=this.calculateFrameScale(s);return r.scale(t,1*o,1*n)}transformPointToFrame(t,s){const{x:o,y:n}=this.calculateFrameScale(s);return r.scale(t,1/o,1/n)}transformPointToWorldSpace(t,r,s){const o=this.transformPointToFrame(t,r),n=this.transformPointToRay(t,r,r.camera);return r.getWorldPoint(o,n,s)}transformPointToOrthographicWorldSpace(t,r,s){const o=this.transformPointToFrame(t,r),n=this.transformPointToOrthographicRay(t,r,r.camera);return r.getOrthographicWorldPoint(o,n,s)}transformPointToRay(t,r,n){const i=this.transformScreenPointToNdc(t,r),e=s.fromMatrixPosition(n.worldMatrix),a=s.transformNdcToWorldSpace(s.create(i.x,i.y,.5),n.worldMatrix,n.projectionMatrixInverse),c=s.normalize(s.subtract(a,e));return o.create({origin:e,direction:c})}transformPointToOrthographicRay(t,r,n){const i=this.transformScreenPointToNdc(t,r),e=s.transformNdcToWorldSpace(s.create(i.x,i.y,.5),n.worldMatrix,n.projectionMatrixInverse);return o.create({origin:e,direction:s.normalize(n.viewVector)})}transformScreenPointToNdc(t,s){const o=this.transformPointToFrame(t,s);return r.create(o.x/s.imageAttr.frameDimensions.width*2-1,-o.y/s.imageAttr.frameDimensions.height*2+1)}calculateDrawRect(t){const{x:r,y:s}=this.calculateFrameScale(t);return n.scale(t.imageAttr.imageRect,r,s)}calculateFrameScale(t){const{frameDimensions:s}=t.imageAttr,o=n.fromDimensions(s),i=n.fromDimensions(this.dimensions),e=n.containFit(i,o);return r.create(e.width/o.width,e.height/o.height)}get dimensions(){return t.create(this.width,this.height)}}export{i as V}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as t,c as i,h as s,H as e,g as n}from"./p-cafa57a6.js";import{c as r}from"./p-f482325b.js";import{d as o,r as h}from"./p-fad9693e.js";import{f as l,p as a}from"./p-661f0612.js";import{a as c}from"./p-76c414a4.js";import"./p-112455b1.js";let d=class{constructor(s){t(this,s),this.search=i(this,"search",7),this.debounce=250,this.disabled=!1,this.placeholder=void 0,this.value="",this.focused=!1,this.handleTextInput=t=>{this.value=t.target.value,this.search.emit(this.value)},this.handleTextFocus=()=>{this.focused=!0},this.handleTextBlur=()=>{this.focused=!1},this.handleClear=t=>{t.preventDefault(),this.value="",this.search.emit(this.value),this.setFocus()}}async setFocus(){var t,i;"function"==typeof(null===(t=this.inputEl)||void 0===t?void 0:t.focus)&&(null===(i=this.inputEl)||void 0===i||i.focus())}componentDidLoad(){this.handleDebounceChanged()}render(){return s(e,null,s("div",{class:"root"},s("div",{class:"overlay icon icon-search"},s("slot",{name:"search-icon"},s("vertex-viewer-icon",{name:"search",size:"sm"}))),s("input",{class:r("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}),s("div",{class:r("overlay overlay-clear",{show:this.value.length>0})},s("button",{class:"clear-btn icon",tabIndex:-1,onMouseDown:this.handleClear,disabled:this.disabled},s("slot",{name:"clear-icon"},s("vertex-viewer-icon",{name:"close-circle",size:"sm"}))))))}handleDebounceChanged(){this.search=o(this.search,this.debounce)}};function u(t){return t.toLowerCase()}d.style="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}";var v=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g],p=/[^A-Z0-9]+/gi;function f(t,i,s){return i instanceof RegExp?t.replace(i,s):i.reduce((function(t,i){return t.replace(i,s)}),t)}function m(t,i){var s=t.charAt(0),e=t.substr(1).toLowerCase();return i>0&&s>="0"&&s<="9"?"_"+s+e:""+s.toUpperCase()+e}function b(t,i){return 0===i?t.toLowerCase():m(t,i)}function g(t,i){return void 0===i&&(i={}),function(t,i){return void 0===i&&(i={}),function(t,i){void 0===i&&(i={});for(var s=i.splitRegexp,e=i.stripRegexp,n=void 0===e?p:e,r=i.transform,o=void 0===r?u:r,h=i.delimiter,l=void 0===h?" ":h,a=f(f(t,void 0===s?v:s,"$1\0$2"),n,"\0"),c=0,d=a.length;"\0"===a.charAt(c);)c++;for(;"\0"===a.charAt(d-1);)d--;return a.slice(c,d).split("\0").map(o).join(l)}(t,l({delimiter:"",transform:m},i))}(t,l({transform:b},i))}const w=/{{(.+)}}/;class y{constructor(t){this.bindings=t}bind(t){this.bindings.forEach((i=>i.bind(t)))}}class x{constructor(t,i){this.node=t,this.expr=i}}class z extends x{constructor(t,i){super(t,i)}bind(t){const i=C(t,this.expr);i!==this.node.textContent&&(this.node.textContent=i)}}class $ extends x{constructor(t,i,s){super(t,i),this.attr=s}bind(t){const i=C(t,this.expr);this.node.getAttribute(this.attr)!==i&&this.node.setAttribute(this.attr,i)}}class D extends x{constructor(t,i,s){super(t,i),this.prop=s}bind(t){const i=function(t,i){const s=j(i);return null!=s?E(t,s,!0):i}(t,this.expr);this.node[this.prop]!==i&&(this.node[this.prop]=i)}}class k extends x{constructor(t,i,s){super(t,i),this.eventName=s}bind(t){var i;const s=j(this.expr);if(null!=s){null===(i=this.disposable)||void 0===i||i.dispose();const e=E(t,s,!0);this.node.addEventListener(this.eventName,e),this.disposable={dispose:()=>{this.node.removeEventListener(this.eventName,e)}}}}}function M(t){const i=[];if(t.nodeType===Node.ELEMENT_NODE){const s=t;Array.from(s.attributes).filter((t=>w.test(t.value))).forEach((t=>{if(t.name.startsWith("event:")){const e=g(t.name.replace("event:",""));i.push(new k(s,t.value,e))}else if(t.name.startsWith("attr:"))i.push(new $(s,t.value,t.name.replace("attr:","")));else if(t.name.startsWith("prop:")){const e=g(t.name.replace("prop:",""));i.push(new D(s,t.value,e))}}))}else t.nodeType===Node.TEXT_NODE&&null!=t.textContent&&w.test(t.textContent)&&i.push(new z(t,t.textContent));for(let s=0;s<t.childNodes.length;s++)i.push(...M(t.childNodes[s]));return i}function j(t){const i=w.exec(t);return null!=i?i[1]:void 0}function C(t,i){const s=j(i);if(null!=s){const e=E(t,s,!0);return i.replace(`{{${s}}}`,null==e?void 0:e.toString())}return i}function E(t,i,s=!1){const[e,...n]=i.split(".");if(s&&0===n.length)return t;if(s&&n.length>0)return E(t,n.join("."),!1);{const i=t[e];return n.length>0?E(i,n.join("."),!1):i}}class L{constructor(t,i){this.container=t,this.elementFactory=i,this.instanceMap=new Map,this.elements=[]}swapHeadToTail(t){const i=this.elements.splice(0,t);return this.elements.splice(this.elements.length,0,...i),this.elements.concat()}swapTailToHead(t){const i=this.elements.splice(-t,t);return this.elements.splice(0,0,...i),this.elements.concat()}updateElements(t){const i=t-this.elements.length;if(i>0)for(let t=0;t<i;t++)this.createElement();else for(let t=0;t<-i;t++)this.deleteElement();return this.elements.concat()}updateData(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i),n=t(s);null==e||e.bindings.bind(n)}))}updateElementFactory(t){this.elementFactory=t,this.updateElements(0)}iterateElements(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);if(null==e)throw new Error("Binding not found for element.");t(i,e.bindings,s)}))}createElement(){const t=this.elementFactory();return this.elements.push(t.element),this.instanceMap.set(t.element,t),this.container.append(t.element),t}deleteElement(){const t=this.elements.pop();null!=t&&(this.instanceMap.delete(t),t.remove())}}function R(t){const i=t.content.cloneNode(!0);return{element:i.firstElementChild,bindings:new y(M(i))}}let T=class{constructor(s){t(this,s),this.layoutRendered=i(this,"layoutRendered",7),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=!0,this.stateMap={viewportRows:[],columnWidths:[],columnWidthPercentages:[]},this.lastStartIndex=0,this.columnElements=[],this.layoutColumns=()=>{const t=this.viewportEndIndex-this.viewportStartIndex+1,i=this.viewportStartIndex-this.lastStartIndex;this.lastStartIndex=this.viewportStartIndex,this.iterateColumns(((s,e,n)=>{e.updateElements(t),i>0?e.swapHeadToTail(i):e.swapTailToHead(-i),s.style.minHeight=this.rowHeight*this.totalRows+"px";const r=0===n?t=>`calc(${t} * 0.5rem)`:()=>"0";e.iterateElements(((t,i,s)=>{const e=this.stateMap.viewportRows[s];null!=e&&this.updateCell(e,t,i,s,r)}))}))},this.updateCell=(t,i,s,e,n)=>{i.style.position="absolute",i.style.top=(this.viewportStartIndex+e)*this.rowHeight+"px",i.style.boxSizing="border-box",i.style.height=`${this.rowHeight}px`,i.style.width="100%",i.style.paddingLeft=n(t.node.depth),i.tree=this.tree,i.node=t.node,i.hoveredNodeId=this.hoveredNodeId,s.bind(t)},this.updateLayoutPosition=()=>{h((()=>{var t;null!=this.tableElement&&(this.layoutOffset=null!==(t=this.tableElement.getBoundingClientRect().top)&&void 0!==t?t:0)}))},this.recomputeColumnWidths=()=>{const t=this.getLayoutWidth();null!=t&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length&&(this.stateMap.columnWidths=this.stateMap.columnWidthPercentages.map((i=>i*t)))},this.recomputeColumnPercentages=()=>{const t=this.getLayoutWidth();null!=t&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length&&(this.stateMap.columnWidthPercentages=this.stateMap.columnWidths.map((i=>i/t)))},this.computeInitialColumnWidths=()=>{this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return null!==(i=t.initialWidth)&&void 0!==i?i:100}));const t=this.getLayoutWidth();null!=t&&(this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return(null!==(s=i.initialWidth)&&void 0!==s?s:100)/t})))},this.updateColumnElements=()=>{this.columnElements.forEach((t=>{t.removeEventListener("hovered",this.handleCellHover)})),this.columnElements=Array.from(this.hostEl.querySelectorAll("vertex-scene-tree-table-column")),this.columnElements.forEach((t=>{t.addEventListener("hovered",this.handleCellHover)}))},this.computeCellHeight=async()=>{var t;if(this.isComputingCellHeight&&this.columnElements.length>0){const i={index:0,node:{id:{hex:""},name:"Dummy row",expanded:!1,selected:!1,visible:!1,partiallyVisible:!1,isLeaf:!1,depth:0,columnsList:[],filterHit:!1},metadata:{},data:{}},{bindings:s,element:e}=this.createColumnCellInstance(this.columnElements[0]);s.bind(i),e.style.visibility="hidden",null===(t=this.columnElements[0])||void 0===t||t.appendChild(e),"function"==typeof e.componentOnReady&&await e.componentOnReady();let n=e.clientHeight,r=0;for(;0===n&&r<10;)n=await new Promise((t=>{setTimeout((()=>t(e.getBoundingClientRect().height)),5)})),r+=1;this.rowHeight=null!=n?n:this.rowHeight,e.remove(),this.isComputingCellHeight=!1}},this.computeHeaderHeight=()=>{var t;null==this.stateMap.headerHeight&&(this.stateMap.headerHeight=null===(t=this.headerElement)||void 0===t?void 0:t.getBoundingClientRect().height,this.hostEl.style.setProperty("--header-height",`${this.stateMap.headerHeight}px`))},this.computeColumnGridLayout=()=>{0===this.stateMap.columnWidths.length&&(this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return null!==(i=t.initialWidth)&&void 0!==i?i:100})));const t=this.getLayoutWidth();null!=t&&0===this.stateMap.columnWidthPercentages.length&&(this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return(null!==(s=i.initialWidth)&&void 0!==s?s:100)/t}))),this.columnGridLayout=`${this.stateMap.columnWidths.slice(0,-1).reduce(((t,i)=>`${t} ${i}px`),"")} 1fr`,this.columnGridFixedLayout=`${this.stateMap.columnWidths.reduce(((t,i)=>`${t} ${i}px`),"")}`},this.handleCellHover=t=>{var i,s,e;this.hoveredNodeId=null===(e=null===(s=null===(i=t.detail)||void 0===i?void 0:i.node)||void 0===s?void 0:s.id)||void 0===e?void 0:e.hex},this.bindHeaderData=()=>{null==this.stateMap.headerInstances&&(this.stateMap.headerInstances=this.columnElements.map(((t,i)=>{var s;const e=this.createHeaderInstance(t);return null!=e&&(e.element.style.paddingRight=i===this.columnElements.length-1?"0":"var(--scene-tree-table-column-gap)",e.element.slot="header",e.element.style.gridColumnStart=`${i+1}`,e.element.style.gridColumnEnd=`${i+2}`,null===(s=this.hostEl)||void 0===s||s.appendChild(e.element)),e})).filter((t=>null!=t))),null==this.stateMap.headerDividerInstances&&(this.stateMap.headerDividerInstances=this.columnElements.slice(0,-1).map(((t,i)=>{var s;const e=this.createDividerInstance();return e.element.slot="divider",e.element.style.position="absolute",e.element.style.right="0",e.element.style.pointerEvents="auto",e.element.style.gridColumnStart=`${i+1}`,e.element.style.gridColumnEnd=`${i+2}`,null===(s=this.hostEl)||void 0===s||s.appendChild(e.element),e})))},this.rebindHeaderData=()=>{var t,i;this.removeDividerDragListeners(),null===(t=this.stateMap.headerInstances)||void 0===t||t.forEach((t=>t.element.remove())),null===(i=this.stateMap.headerDividerInstances)||void 0===i||i.forEach((t=>t.element.remove())),this.stateMap.headerInstances=void 0,this.stateMap.headerDividerInstances=void 0,this.bindHeaderData(),this.addDividerDragListeners()},this.createDividerPointerDownHandler=t=>i=>{var s,e;i.preventDefault(),i.stopPropagation(),this.lastDividerPointerPosition=a.create(Math.floor(i.clientX),Math.floor(i.clientY)),this.resizingColumnIndex=t,null===(e=null===(s=this.stateMap.headerDividerInstances)||void 0===s?void 0:s[t])||void 0===e||e.element.classList.add("dragging"),window.addEventListener("pointermove",this.handleDividerPointerMove),window.addEventListener("pointerup",this.handleDividerPointerUp)},this.handleDividerPointerMove=t=>{const i=a.create(Math.floor(t.clientX),Math.floor(t.clientY));if(null!=this.lastDividerPointerPosition&&null!=this.resizingColumnIndex){const t=a.subtract(this.lastDividerPointerPosition,i);Math.abs(t.x)>=1&&this.isValidResize(t,this.resizingColumnIndex)&&(this.stateMap.columnWidths[this.resizingColumnIndex]-=t.x,this.resizingColumnIndex+1<this.stateMap.columnWidths.length&&(this.stateMap.columnWidths[this.resizingColumnIndex+1]+=t.x),this.lastDividerPointerPosition=i,this.computeColumnGridLayout())}},this.handleDividerPointerUp=()=>{var t,i;null!=this.resizingColumnIndex&&(null===(i=null===(t=this.stateMap.headerDividerInstances)||void 0===t?void 0:t[this.resizingColumnIndex])||void 0===i||i.element.classList.remove("dragging")),this.lastDividerPointerPosition=void 0,this.resizingColumnIndex=void 0,this.recomputeColumnPercentages(),window.removeEventListener("pointermove",this.handleDividerPointerMove),window.removeEventListener("pointerup",this.handleDividerPointerUp)},this.isValidResize=(t,i)=>{var s,e,n,r;const o=this.columnElements[i],h=this.columnElements[i+1],l=this.stateMap.columnWidths[i],a=this.stateMap.columnWidths[i+1],c=null!==(s=o.minWidth)&&void 0!==s?s:0,d=null!==(e=o.maxWidth)&&void 0!==e?e:Number.MAX_SAFE_INTEGER,u=null!==(n=h.minWidth)&&void 0!==n?n:0,v=null!==(r=h.maxWidth)&&void 0!==r?r:Number.MAX_SAFE_INTEGER;return l-t.x>c&&l-t.x<d&&(null==h||a+t.x>u&&a+t.x<v)},this.handleScrollChanged=t=>{this.scrollOffset=t.target.scrollTop,this.computeAndUpdateViewportRows()}}componentWillLoad(){this.updateColumnElements(),this.createPools(),this.columnElements.forEach((t=>{t.addEventListener("hovered",this.handleCellHover)})),this.headerResizeObserver=new ResizeObserver((()=>{this.stateMap.headerHeight=void 0,this.computeHeaderHeight()})),this.resizeObserver=new ResizeObserver((()=>{this.updateLayoutPosition(),this.clearLayoutHeight(),this.clearLayoutWidth(),this.recomputeColumnWidths(),this.computeColumnGridLayout()}))}componentDidLoad(){var t,i,s;this.computeColumnGridLayout(),this.ensureDividerTemplateDefined(),this.computeCellHeight(),this.computeHeaderHeight(),this.computeInitialColumnWidths(),this.rebindHeaderData(),null===(t=this.tableElement)||void 0===t||t.addEventListener("scroll",this.handleScrollChanged,{passive:!0}),null!=this.headerElement&&(null===(i=this.headerResizeObserver)||void 0===i||i.observe(this.headerElement)),null===(s=this.resizeObserver)||void 0===s||s.observe(this.hostEl)}async componentWillRender(){await this.computeAndUpdateViewportRows()}componentDidRender(){this.layoutColumns(),this.layoutRendered.emit()}disconnectedCallback(){var t,i,s;this.columnElements.forEach((t=>{t.removeEventListener("hovered",this.handleCellHover)})),null===(t=this.tableElement)||void 0===t||t.removeEventListener("scroll",this.handleScrollChanged),this.removeDividerDragListeners(),null===(i=this.headerResizeObserver)||void 0===i||i.disconnect(),null===(s=this.resizeObserver)||void 0===s||s.disconnect(),this.stateMap.columnWidths=[],this.stateMap.columnWidthPercentages=[]}async scrollToPosition(t,i){null!=this.tableElement&&function(t,i,s){t.scrollTo(Object.assign({top:i},s))}(this.tableElement,t,i)}render(){return s(e,null,s("div",{class:"header",ref:t=>this.headerElement=t,style:{gridTemplateColumns:this.columnGridFixedLayout,display:this.columnElements.length<=1?"none":"grid"}},s("slot",{name:"header"})),s("div",{class:"table",ref:t=>this.tableElement=t,style:{gridTemplateColumns:this.columnGridLayout}},s("slot",{onSlotchange:()=>{this.ensureDividerTemplateDefined(),this.updateColumnElements(),this.recreateColumnPools(),this.computeInitialColumnWidths(),this.rebindHeaderData(),this.computeColumnGridLayout()}})),s("div",{class:"divider-overlay",style:{gridTemplateColumns:this.columnGridFixedLayout}},s("slot",{name:"divider"})),null!=this.resizingColumnIndex&&s("div",{class:"resize-overlay"}))}computeViewportRows(){const t=this.getLayoutHeight();if(null!=t){const i=Math.ceil(t/this.rowHeight),s=Math.floor(this.scrollOffset/this.rowHeight),e=s+i,n=Math.max(0,s-this.overScanCount),r=Math.min(this.totalRows-1,e+this.overScanCount),o=this.getViewportRows(n,r);this.viewportStartIndex=n,this.viewportEndIndex=r,this.stateMap.viewportRows=o}}async computeAndUpdateViewportRows(){var t;this.computeViewportRows(),(null===(t=this.controller)||void 0===t?void 0:t.isConnected)&&await this.controller.updateActiveRowRange(this.viewportStartIndex,this.viewportEndIndex)}createPools(){null==this.stateMap.columnElementPools&&(this.stateMap.columnElementPools=this.columnElements.reduce(((t,i)=>t.set(i,new L(i,(()=>this.createColumnCellInstance(i))))),new WeakMap))}recreateColumnPools(){this.columnElements.forEach((t=>{var i,s,e;null==(null===(i=this.stateMap.columnElementPools)||void 0===i?void 0:i.get(t))?null===(s=this.stateMap.columnElementPools)||void 0===s||s.set(t,new L(t,(()=>this.createColumnCellInstance(t)))):null===(e=this.stateMap.columnElementPools.get(t))||void 0===e||e.updateElementFactory((()=>this.createColumnCellInstance(t)))}))}iterateColumns(t){this.columnElements.forEach(((i,s)=>{var e;const n=null===(e=this.stateMap.columnElementPools)||void 0===e?void 0:e.get(i);if(null==n)throw new Error("Cannot find pool for column");t(i,n,s)}))}ensureDividerTemplateDefined(){if(null==this.hostEl.querySelector('template[slot="divider"]')){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 i=t.querySelector('template[slot="header"]');if(null!=i)return R(i)}createDividerInstance(){const t=this.hostEl.querySelector('template[slot="divider"]');if(null!=t)return R(t);throw new Error("Table is missing divider template element")}createColumnCellInstance(t){const i=t.querySelector('template:not([slot="header"])');if(null!=i)return R(i);throw new Error("Column is missing cell template element")}addDividerDragListeners(){var t;this.stateMap.headerDividerListeners=null===(t=this.stateMap.headerDividerInstances)||void 0===t?void 0:t.map(((t,i)=>{const s=this.createDividerPointerDownHandler(i);return t.element.addEventListener("pointerdown",s),s}))}removeDividerDragListeners(){var t;if(null!=this.stateMap.headerDividerListeners){const i=this.stateMap.headerDividerListeners;null===(t=this.stateMap.headerDividerInstances)||void 0===t||t.forEach(((t,s)=>{const e=i[s];null!=e&&t.element.removeEventListener("pointerdown",e)})),this.stateMap.headerDividerListeners=void 0}}getViewportRows(t,i){return this.rows.slice(t,i+1).map((t=>null!=t?this.populateRowData(t):t))}populateRowData(t){var i;if(null!=this.rowData&&null!=t){const s=(null===(i=this.rowData)||void 0===i?void 0:i.call(this,t))||{};return Object.assign(Object.assign({},t),{data:s})}return t}getLayoutHeight(){return null==this.layoutHeight&&null!=this.tableElement&&(this.layoutHeight=c(this.tableElement)),this.layoutHeight}getLayoutWidth(){return null==this.layoutWidth&&(this.layoutWidth=this.hostEl.clientWidth),this.layoutWidth}clearLayoutHeight(){this.layoutHeight=void 0}clearLayoutWidth(){this.layoutWidth=void 0}get hostEl(){return n(this)}};T.style=":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%}";let _=class{constructor(i){t(this,i)}render(){return s(e,null,s("div",{class:"content"},s("slot",{name:"before"})),s("div",{class:"content content-primary"},s("slot",null)),s("div",{class:"content"},s("slot",{name:"after"})))}};_.style=":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)}";export{d as vertex_scene_tree_search,T as vertex_scene_tree_table_layout,_ as vertex_scene_tree_toolbar}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as t,h as n,H as s,g as i}from"./p-cafa57a6.js";import{v as e,t as o,m as h,u as a}from"./p-661f0612.js";import"./p-77be081a.js";import{V as r}from"./p-a93a63a9.js";import"./p-e75bba97.js";import"./p-112455b1.js";let l=class{constructor(n){t(this,n),this.position=e.origin(),this.positionJson="",this.quaternion=o.create(),this.quaternionJson="",this.scale=e.create(1,1,1),this.scaleJson="",this.matrix=h.makeIdentity(),this.occlusionOff=!1,this.occluded=!1,this.billboardOff=!1,this.interactionsOff=!1}handlePositionChange(){this.syncMatrix()}handlePositionJsonChanged(){this.syncPosition()}handleRotationChanged(){this.syncQuaternionWithRotation()}handleRotationJsonChanged(){this.syncRotation()}handleQuaternionChange(){this.syncMatrix()}handleQuaternionJsonChanged(){this.syncQuaternion()}handleScaleChange(){this.syncMatrix()}handleScaleJsonChanged(){this.syncScale()}connectedCallback(){this.syncProperties()}componentShouldUpdate(t,n,s){return"occluded"===s}syncProperties(){this.syncPosition(),this.syncRotation(),this.syncQuaternion(),this.syncScale(),this.syncMatrix()}syncPosition(){this.position=this.positionJson.length>0?this.parseJson("positionJson",this.positionJson,e.fromJson):this.position}syncRotation(){this.rotation=null!=this.rotationJson&&this.rotationJson.length>0?this.parseJson("rotationJson",this.rotationJson,a.fromJson):this.rotation,this.syncQuaternionWithRotation()}syncQuaternionWithRotation(){this.quaternion=null!=this.rotation?o.fromEuler(this.rotation):this.quaternion}syncQuaternion(){this.quaternion=this.quaternionJson.length>0?this.parseJson("quaternionJson",this.quaternionJson,o.fromJson):this.quaternion}syncScale(){this.scale=this.scaleJson.length>0?this.parseJson("scaleJson",this.scaleJson,e.fromJson):this.scale}syncMatrix(){this.matrix=h.makeTRS(this.position,this.quaternion,this.scale)}parseJson(t,n,s){try{return s(n)}catch(n){throw console.warn(`Could not parse \`${t}\`. Invalid JSON.`),n}}render(){return n(s,null,n("slot",null))}static get watchers(){return{position:["handlePositionChange"],positionJson:["handlePositionJsonChanged"],rotation:["handleRotationChanged"],rotationJson:["handleRotationJsonChanged"],quaternion:["handleQuaternionChange"],quaternionJson:["handleQuaternionJsonChanged"],scale:["handleScaleChange"],scaleJson:["handleScaleJsonChanged"]}}};l.style=":host{position:absolute;pointer-events:none}:host(:not([interactions-off]))>*{pointer-events:auto}";let d=class{constructor(n){t(this,n),this.position=e.origin(),this.positionJson="",this.quaternion=o.create(),this.quaternionJson="",this.scale=e.create(1,1,1),this.scaleJson="",this.matrix=h.makeIdentity()}handlePositionChange(){this.syncMatrix()}handlePositionJsonChanged(){this.syncPosition()}handleRotationChanged(){this.syncQuaternionWithRotation()}handleRotationJsonChanged(){this.syncRotation()}handleQuaternionChange(){this.syncMatrix()}handleQuaternionJsonChanged(){this.syncQuaternion()}handleScaleChange(){this.syncMatrix()}handleScaleJsonChanged(){this.syncScale()}componentWillLoad(){this.syncProperties()}componentShouldUpdate(){return!1}syncProperties(){this.syncPosition(),this.syncRotation(),this.syncQuaternion(),this.syncScale(),this.syncMatrix()}syncPosition(){this.position=this.positionJson.length>0?this.parseJson("positionJson",this.positionJson,e.fromJson):this.position}syncRotation(){this.rotation=null!=this.rotationJson&&this.rotationJson.length>0?this.parseJson("rotationJson",this.rotationJson,a.fromJson):this.rotation,this.syncQuaternionWithRotation()}syncQuaternionWithRotation(){this.quaternion=null!=this.rotation?o.fromEuler(this.rotation):this.quaternion}syncQuaternion(){this.quaternion=this.quaternionJson.length>0?this.parseJson("quaternionJson",this.quaternionJson,o.fromJson):this.quaternion}syncScale(){this.scale=this.scaleJson.length>0?this.parseJson("scaleJson",this.scaleJson,e.fromJson):this.scale}syncMatrix(){this.matrix=h.makeTRS(this.position,this.quaternion,this.scale)}parseJson(t,n,s){try{return s(n)}catch(n){throw console.warn(`Could not parse \`${t}\`. Invalid JSON.`),n}}render(){return n(s,null,n("slot",null))}static get watchers(){return{position:["handlePositionChange"],positionJson:["handlePositionJsonChanged"],rotation:["handleRotationChanged"],rotationJson:["handleRotationJsonChanged"],quaternion:["handleQuaternionChange"],quaternionJson:["handleQuaternionJsonChanged"],scale:["handleScaleChange"],scaleJson:["handleScaleJsonChanged"]}}};function c(t){return t instanceof HTMLElement&&"VERTEX-VIEWER-DOM-ELEMENT"===t.nodeName}function u(t){return t instanceof HTMLElement&&"VERTEX-VIEWER-DOM-GROUP"===t.nodeName}d.style=":host{display:block;transform-style:preserve-3d}";const p=(t,s)=>n("div",{class:"root-2d"},s);function g(t,n,s,i,e){const o=m(t,n,i).sort(((t,n)=>t.distanceToCamera-n.distanceToCamera));for(let t=0;t<o.length;t++){const{element:n,worldMatrix:h,worldPosition:a}=o[t],r=!n.occlusionOff&&(null==e?void 0:e.isOccluded(a,s));n.occluded=null!=r&&r,C(n,J(a,i.projectionViewMatrix,s)),f(n,t,o.length),g(n,h,s,i,e)}}function m(t,n,s){const i=[];for(let o=0;o<t.children.length;o++){const a=t.children[o];if(u(a)){const t=h.multiply(n,a.matrix);i.push(...m(a,t,s))}else if(c(a)){const t=h.multiply(n,a.matrix),o=e.fromMatrixPosition(t),r=e.distanceSquared(s.position,o);i.push({element:a,worldMatrix:t,worldPosition:o,distanceToCamera:r})}}return i}function C(t,n){t.style.transform=["translate(-50%, -50%)",`translate(${n.x}px, ${n.y}px)`].join(" ")}function f(t,n,s){t.style.zIndex=""+(s-n)}function J(t,n,s){const i=e.transformMatrix(t,n);return s.transformVectorToViewport(i)}const v=({camera:t,viewport:s},i)=>{const e=h.toObject(t.projectionMatrix),o=t.isOrthographic()?2*t.far/(2*t.fovHeight)*(s.height/2):e.m22*(s.height/2),a=[`translateZ(${o}px)`,(r=t.viewMatrix,`matrix3d(${[x(r[0]),x(-r[1]),x(r[2]),x(r[3]),x(r[4]),x(-r[5]),x(r[6]),x(r[7]),x(r[8]),x(-r[9]),x(r[10]),x(r[11]),x(r[12]),x(-r[13]),x(r[14]),x(r[15])].join(", ")})`),`translate(${s.width/2}px, ${s.height/2}px)`].join(" ");var r;return n("div",{class:"root-3d",style:{perspective:`${o}px`}},n("div",{class:"camera",style:{transform:a}},i))};function w(t,n,s,i,e){for(let o=0;o<t.children.length;o++){const h=t.children[o];c(h)?y(h,n,s,i,e):u(h)&&R(h,n,s,i,e)}}function y(t,n,s,i,o){const a=h.multiply(n,t.matrix),r=e.fromMatrixPosition(a),l=!t.occlusionOff&&(null==o?void 0:o.isOccluded(r,s));if(t.occluded=null!=l&&l,t.billboardOff)t.style.transform=P(a);else{let n=i.viewMatrix;n=h.transpose(n),n=h.position(n,a),n=h.scale(n,t.scale),n[3]=0,n[7]=0,n[11]=0,n[15]=1,t.style.transform=P(n)}w(t,a,s,i,o)}function R(t,n,s,i,e){w(t,h.multiply(n,t.matrix),s,i,e)}function P(t){return["translate(-50%, -50%)",`matrix3d(${[x(t[0]),x(t[1]),x(t[2]),x(t[3]),x(-t[4]),x(-t[5]),x(-t[6]),x(-t[7]),x(t[8]),x(t[9]),x(t[10]),x(t[11]),x(t[12]),x(t[13]),x(t[14]),x(t[15])].join(", ")})`].join(" ")}function x(t){return Math.abs(t)<1e-10?0:t}let E=class{constructor(n){t(this,n),this.drawMode="3d",this.viewport=new r(0,0),this.invalidateFrameCounter=0,this.handleViewerFrameDrawn=async()=>{this.updatePropsFromViewer()}}componentWillLoad(){new ResizeObserver((()=>this.handleResize())).observe(this.hostEl),new MutationObserver((()=>this.handleChildrenChange())).observe(this.hostEl,{childList:!0}),this.handleViewerChange(this.viewer,void 0)}render(){return null!=this.camera?n(s,null,"2d"===this.drawMode?n(p,null,n("slot",null)):n(v,{camera:this.camera,viewport:this.viewport},n("slot",null))):n(s,null)}componentDidRender(){this.updateElements()}handleViewerChange(t,n){null==n||n.removeEventListener("frameDrawn",this.handleViewerFrameDrawn),null==t||t.addEventListener("frameDrawn",this.handleViewerFrameDrawn)}handlePropertyChange(){this.invalidateFrame()}invalidateFrame(){this.invalidateFrameCounter=this.invalidateFrameCounter+1}async updateElements(){const{viewport:t,camera:n}=this,s=h.makeIdentity();null!=n&&("3d"===this.drawMode?w(this.hostEl,s,t,n,this.depthBuffer):g(this.hostEl,s,t,n,this.depthBuffer))}handleResize(){const t=this.hostEl.getBoundingClientRect();this.viewport=new r(t.width,t.height)}handleChildrenChange(){this.invalidateFrame()}async updatePropsFromViewer(){const{frame:t,depthBuffers:n}=this.viewer||{};this.depthBuffer="all"===n?await(null==t?void 0:t.depthBuffer()):void 0,this.camera=null==t?void 0:t.scene.camera}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChange"]}}};E.style=":host{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}.root-3d{width:100%;height:100%;pointer-events:inherit}.camera{transform-style:preserve-3d;pointer-events:inherit;width:100%;height:100%}";export{l as vertex_viewer_dom_element,d as vertex_viewer_dom_group,E as vertex_viewer_dom_renderer}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{h as t,r as i,c as e,H as s,g as n}from"./p-cafa57a6.js";import{v as r,h as a,p as o,l as h}from"./p-661f0612.js";import{M as l,a as d}from"./p-849bd025.js";import{m as c}from"./p-3561d910.js";import{a as u,g as m}from"./p-487e054a.js";import"./p-b8774c9c.js";import"./p-3a20a038.js";import{j as v,D as p}from"./p-77be081a.js";import{M as w}from"./p-5b342e97.js";import{M as f}from"./p-3f0f83ad.js";import{m as b}from"./p-bcb66f97.js";import{V as g}from"./p-a93a63a9.js";import{E as y,m as P}from"./p-e75bba97.js";import{g as E}from"./p-fa9a0bed.js";import{c as C}from"./p-f482325b.js";import"./p-112455b1.js";class M{constructor(t,i,e,s){this.stencil=t,this.depthBuffer=i,this.viewport=e,this.camera=s}hitTest(t){const i=this.viewport.transformPointToFrame(t,this.depthBuffer);if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil);return this.stencil.hitTest(e)||this.depthBuffer.hitTest(i)}return this.depthBuffer.hitTest(i)}snapToNearestPixel(t,i){if(null!=this.stencil){const e=this.viewport.transformPointToFrame(t,this.stencil),s=this.stencil.snapToNearestPixel(e,i);return this.viewport.transformPointToViewport(s,this.stencil)}return t}transformPointToWorld(t,{ignoreHitTest:i=!1}={}){const e=this.pickDepthBuffer(t);return null!=e?null==this.camera||this.camera.isPerspective()?this.viewport.transformPointToWorldSpace(t,e):this.viewport.transformPointToOrthographicWorldSpace(t,e):i?null==this.camera||this.camera.isPerspective()?this.viewport.transformPointToWorldSpace(t,this.depthBuffer):this.viewport.transformPointToOrthographicWorldSpace(t,this.depthBuffer):void 0}pickDepthBuffer(t){if(null!=this.stencil){const i=this.viewport.transformPointToFrame(t,this.stencil);if(this.stencil.hitTest(i))return this.stencil.depthBuffer}const i=this.viewport.transformPointToFrame(t,this.depthBuffer);return this.depthBuffer.hitTest(i)?this.depthBuffer:void 0}}class x{constructor(t){this.model=t}newMeasurement(t,i){const e=i.hitTester().transformPointToWorld(t);return null!=e?new I(t,e,this.model):void 0}editMeasurement(t){const i=this.model.getMeasurement();if(null==i)throw new Error("Cannot edit measurement. Measurement is empty.");return"start"===t?new D(i,this.model):new k(i,this.model)}clearIndicator(){this.model.setIndicator(void 0)}moveIndicator(t,i){const e=i.hitTester().transformPointToWorld(t);return this.model.setIndicator(e),null!=e}}class j{constructor(){this.measurementChanged=new y,this.indicatorChanged=new y}static empty(){return new j}getMeasurement(){return this.measurement}setMeasurement(t){this.measurement!==t&&(this.measurement=t,this.measurementChanged.emit(t))}setMeasurementFromValues(t,i,e){if(null!=t&&null!=i){const s=e?L(t,i):T(t,i);this.setMeasurement(s)}else this.setMeasurement(void 0)}onMeasurementChanged(t){return this.measurementChanged.on(t)}getIndicator(){return this.indicator}setIndicator(t){this.indicator!==t&&(this.indicator=t,this.indicatorChanged.emit(t))}onIndicatorChanged(t){return this.indicatorChanged.on(t)}}class I{constructor(t,i,e){this.pt=t,this.world=i,this.model=e,this.hitWorldValid=!0,this.preventUpdate=!1}fetchStartIfMissing(t){null==this.pendingStart&&(this.pendingStart=this.fetchStart(t))}async fetchStart(t){const i=await t.raycaster(),e=await S(i,this.pt);if(null==e){const i=t.hitTester().transformPointToWorld(this.pt);this.hitWorld=i,this.hitWorldValid=!1}else this.hitWorld=e,this.hitWorldValid=!0}update(t,i){var e;if(!this.preventUpdate){this.fetchStartIfMissing(i);const s=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),n=i.hitTester().hitTest(t),r=null!==(e=this.hitWorld)&&void 0!==e?e:this.world;if(null==s)throw new Error("Cannot update new measurement interaction. End point is empty.");this.hitWorldValid&&n?(this.model.setIndicator(s),this.setMeasurement(L(r,s))):(this.model.setIndicator(s),this.setMeasurement(T(r,s)))}}async finish(t,i){var e;this.preventUpdate=!0,this.fetchStartIfMissing(i),await this.pendingStart,this.model.setIndicator(void 0);const s=await i.raycaster(),n=await S(s,t),r=null!==(e=this.hitWorld)&&void 0!==e?e:this.world;if(this.preventUpdate=!1,null==n){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==e)throw new Error("Cannot complete new measurement interaction. End point is empty.");return this.setMeasurement(T(r,e))}return this.setMeasurement(this.hitWorldValid?L(r,n):T(r,n))}setMeasurement(t){return this.model.setMeasurement(t),t}}class A{constructor(t,i){this.measurement=t,this.model=i}update(t,i){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0}),s=i.hitTester().hitTest(t);if(null==e)throw new Error("Cannot update new measurement interaction. End point is empty.");s?(this.model.setIndicator(e),this.setMeasurement(this.getValidMeasurement(e))):(this.model.setIndicator(e),this.setMeasurement(this.getInvalidMeasurement(e)))}async finish(t,i){const e=await i.raycaster(),s=await S(e,t);if(this.model.setIndicator(void 0),null==s){const e=i.hitTester().transformPointToWorld(t,{ignoreHitTest:!0});if(null==e)throw new Error("Cannot complete edit measurement interaction. End point is empty.");return this.setMeasurement(this.getInvalidMeasurement(e))}return this.setMeasurement(this.getValidMeasurement(s))}setMeasurement(t){return this.model.setMeasurement(t),t}}class D extends A{constructor(t,i){super(t,i)}getInvalidMeasurement(t){return T(t,this.measurement.end)}getValidMeasurement(t){return L(t,this.measurement.end)}}class k extends A{constructor(t,i){super(t,i)}getInvalidMeasurement(t){return T(this.measurement.start,t)}getValidMeasurement(t){return L(this.measurement.start,t)}}async function S(t,i){var e;const s=await t.hitItems(i),[n]=null!==(e=null==s?void 0:s.hits)&&void 0!==e?e:[];if(null!=(null==n?void 0:n.hitPoint)){const t=v(n.hitPoint);if(P.isInvalid(t))throw new Error(`Invalid hit response [${t.errors.join(",")}]`);return t}}function L(t,i){return{start:t,end:i,distance:r.distance(t,i),valid:!0}}function T(t,i){return{start:t,end:i,valid:!1}}const H=({startPt:i,endPt:e,centerPt:s,indicatorPt:n,distance:r,anchorLabelOffset:h,lineCapLength:l,linePointerEvents:d,hideStartAnchor:c,hideEndAnchor:m,onStartAnchorPointerDown:v,onEndAnchorPointerDown:p})=>{const w=null!=i&&null!=e?a.fromPoints(i,e):void 0,f=null!=w&&null!=i&&null!=h?o.add(i,o.polar(-h,w)):void 0,b=null!=w&&null!=e&&null!=h?o.add(e,o.polar(h,w)):void 0;return t("div",null,null!=i&&null!=e&&t("vertex-viewer-measurement-line",{class:C("line",{"hide-start-line-cap":c,"hide-end-line-cap":m}),start:i,end:e,capLength:l,pointerEvents:d}),!c&&null!=i&&t("div",{id:"start-anchor",class:"anchor anchor-start",style:{transform:u(i)},onPointerDown:v},t("slot",{name:"start-anchor"},t("div",{class:"anchor-placeholder"}))),!c&&f&&t("div",{class:"anchor-label anchor-label-start",style:{transform:u(f)}},t("slot",{name:"start-label"})),!m&&null!=e&&t("div",{id:"end-anchor",class:"anchor anchor-end",style:{transform:u(e)},onPointerDown:p},t("slot",{name:"end-anchor"},t("div",{class:"anchor-placeholder"}))),!m&&b&&t("div",{class:"anchor-label anchor-label-end",style:{transform:u(b)}},t("slot",{name:"end-label"})),null!=s&&t("div",{id:"label",class:"distance-label",style:{transform:u(s)}},r),null!=n&&t("div",{class:"indicator",style:{transform:u(n)}},t("slot",{name:"indicator"},t("div",{class:"indicator-placeholder"}))))};let O=class{constructor(t){i(this,t),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.showAxisReferenceLines=!1,this.snapDistance=l,this.units="millimeters",this.fractionalDigits=2,this.anchorLabelOffset=20,this.lineCapLength=d,this.mode="",this.interactingAnchor="none",this.invalid=!1,this.measurementModel=new w,this.viewport=new g(0,0),this.interactionCount=0,this.invalidateStateCounter=0,this.stateMap={},this.measurementUnits=new p(this.units),this.model=j.empty(),this.controller=new x(this.model),this.overlays=new f,this.isUserInteractingWithModel=!1,this.handleFrameDrawn=()=>{this.invalidateState()},this.clearIndicator=()=>{this.controller.clearIndicator()},this.updateStartAnchor=async t=>{if(this.getStencilBuffer(),0===this.interactionCount){const i=m(t,this.elementBounds),e=this.snapPoint(i,t);this.updateIndicator(e)}},this.newMeasurement=t=>{if(0===this.interactionCount&&0===t.button){const i=t=>{const i=()=>{window.removeEventListener("pointerup",e),window.removeEventListener("pointermove",s)},e=async()=>{i(),t()},s=t=>{t.buttons>0&&i()};window.addEventListener("pointermove",s),window.addEventListener("pointerup",e)},e=t=>{let i=o.create(0,0);const e=e=>{o.distance(i,m(e))>=3&&t()},s=()=>(window.removeEventListener("pointermove",e),void window.removeEventListener("pointerup",s)),n=t=>{i=m(t),window.addEventListener("pointermove",e),window.addEventListener("pointerup",s)};return window.addEventListener("pointerdown",n),{dispose:()=>window.removeEventListener("pointerdown",n)}},s=()=>{const t=e((()=>{var t;this.isUserInteractingWithModel=!0,null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose()})),i=this.createInteractionMoveHandler(),s=async e=>{var n;if(0===e.button)if(this.isUserInteractingWithModel)this.isUserInteractingWithModel=!1;else{const r=this.getHitProvider();if(null!=r){const a=m(e,this.elementBounds),o=this.snapPoint(a,e);await(null===(n=this.interaction)||void 0===n?void 0:n.finish(o,r)),window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",s),t.dispose(),this.updateMeasurementPropsFromModel(),this.endEditing()}}};this.beginEditing("replace","end"),window.addEventListener("pointermove",i),window.addEventListener("pointerup",s)},n=this.getHitProvider();if(null!=n){const e=m(t,this.elementBounds),r=this.snapPoint(e,t);this.interaction=this.controller.newMeasurement(r,n),null!=this.interaction&&i(s)}}}}async computeElementMetrics(){var t,i,e;const s=null===(t=this.hostEl.shadowRoot)||void 0===t?void 0:t.getElementById("start-anchor"),n=null===(i=this.hostEl.shadowRoot)||void 0===i?void 0:i.getElementById("end-anchor"),r=null===(e=this.hostEl.shadowRoot)||void 0===e?void 0:e.getElementById("label");return null!=s&&null!=n&&null!=r?{startAnchor:s.getBoundingClientRect(),endAnchor:n.getBoundingClientRect(),label:r.getBoundingClientRect()}:void 0}disconnectedCallback(){var t;null===(t=this.stateMap.hoverCursor)||void 0===t||t.dispose()}componentWillLoad(){this.updatePropsFromJson(),this.model.setMeasurementFromValues(this.start,this.end,!this.invalid),this.getStencilBuffer(),this.updateViewport(),this.handleViewerChanged(this.viewer),this.handleModeChanged(),this.computePropsAndState(),this.model.onIndicatorChanged((t=>{this.indicatorPt=t}))}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl)}componentWillUpdate(){this.computePropsAndState()}render(){return t(s,null,this.showAxisReferenceLines&&t("vertex-viewer-measurement-overlays",{measurementOverlays:this.overlays,viewer:this.viewer}),this.renderMeasurement())}renderMeasurement(){const i=this.computeElementPositions(),{startPt:e,endPt:s,labelPt:n,indicatorPt:r,hideStart:a,hideEnd:o}=i,h=this.formatDistance(this.distance);return t(H,"edit"===this.mode||"replace"===this.mode?{startPt:e,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")}:{startPt:e,endPt:s,centerPt:n,indicatorPt:this.indicatorPt,distance:h,hideStartAnchor:a,hideEndAnchor:o,anchorLabelOffset:this.anchorLabelOffset,lineCapLength:this.lineCapLength,linePointerEvents:"painted"})}handleViewerChanged(t,i){null!=i&&(i.removeEventListener("frameDrawn",this.handleFrameDrawn),this.removeInteractionListeners(i)),null!=t&&(t.addEventListener("frameDrawn",this.handleFrameDrawn),this.addInteractionListeners(t))}handleUnitsChanged(){this.measurementUnits=new p(this.units)}handleCameraChanged(){this.updateCamera()}handleModeChanged(){this.warnIfDepthBuffersDisabled(),null!=this.viewer&&(this.removeInteractionListeners(this.viewer),this.addInteractionListeners(this.viewer))}handleStartChanged(){this.updateInteractionModel()}handleEndChanged(){this.updateInteractionModel()}handleInvalidChanged(){this.updateInteractionModel()}computePropsAndState(){this.updateCamera(),this.updateDepthBuffer(),this.updateMeasurementPropsFromModel(),this.updateOverlays()}updateOverlays(){var t;null===(t=this.overlay)||void 0===t||t.dispose(),this.showAxisReferenceLines&&0===this.interactionCount&&!this.invalid&&null!=this.start&&null!=this.end&&(this.overlay=this.overlays.addDistanceVector(this.start,this.end))}async setCursor(t){var i,e;null===(i=this.stateMap.hoverCursor)||void 0===i||i.dispose(),this.isUserInteractingWithModel||(this.stateMap.hoverCursor=await(null===(e=this.viewer)||void 0===e?void 0:e.addCursor(t)))}computeElementPositions(){return"replace"===this.mode?this.computeReplaceElementPositions():this.computeEditOrViewElementPositions()}computeEditOrViewElementPositions(){const t=this.model.getMeasurement();return null!=this.internalCamera&&null!=t?this.computeLineElementPositions(h.create(t)):{}}computeReplaceElementPositions(){if(null!=this.internalCamera){const t=this.model.getMeasurement(),i=null!=t?this.computeLineElementPositions(h.create(t)):{},e=null!=this.indicatorPt?{indicatorPt:this.viewport.transformWorldToViewport(this.indicatorPt,this.internalCamera.projectionViewMatrix)}:{};return Object.assign(Object.assign({},i),e)}return{}}computeLineElementPositions(t){return null!=this.internalCamera?E(t,this.interactingAnchor,{viewport:this.viewport,camera:this.internalCamera}):{}}updateCamera(){var t,i;this.internalCamera=this.camera||(null===(i=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===i?void 0:i.scene.camera)}async updateDepthBuffer(){var t,i;this.stateMap.depthBuffer=await(null===(i=null===(t=this.viewer)||void 0===t?void 0:t.frame)||void 0===i?void 0:i.depthBuffer())}updateViewport(){const t=this.hostEl.getBoundingClientRect();this.viewport=new g(t.width,t.height),this.elementBounds=t}updatePropsFromJson(){var t,i;this.start=V(null!==(t=this.startJson)&&void 0!==t?t:this.start),this.end=V(null!==(i=this.endJson)&&void 0!==i?i:this.end)}updateInteractionModel(){this.model.setMeasurementFromValues(this.start,this.end,!this.invalid)}invalidateState(){this.invalidateStateCounter=this.invalidateStateCounter+1}async addInteractionListeners(t){const i=await t.getInteractionTarget();"replace"===this.mode&&(i.addEventListener("pointermove",this.updateStartAnchor),i.addEventListener("pointerdown",this.newMeasurement),i.addEventListener("pointerleave",this.clearIndicator))}async removeInteractionListeners(t){const i=await t.getInteractionTarget();i.removeEventListener("pointermove",this.updateStartAnchor),i.removeEventListener("pointerdown",this.newMeasurement),i.removeEventListener("pointerleave",this.clearIndicator)}handleEditAnchor(t){if("edit"===this.mode||"replace"===this.mode){const i=this.createInteractionMoveHandler(),e=async t=>{var s;const n=this.getHitProvider();if(null!=n){window.removeEventListener("pointermove",i),window.removeEventListener("pointerup",e);const r=m(t,this.elementBounds),a=this.snapPoint(r,t);await(null===(s=this.interaction)||void 0===s?void 0:s.finish(a,n)),this.updateMeasurementPropsFromModel(),this.endEditing()}};return s=>{this.getStencilBuffer(),0===s.button&&(this.beginEditing("edit",t),this.interaction=this.controller.editMeasurement(t),window.addEventListener("pointermove",i),window.addEventListener("pointerup",e))}}}createInteractionMoveHandler(){return t=>{var i;const e=this.getHitProvider();if(null!=this.elementBounds&&null!=e){t.preventDefault(),this.getStencilBuffer();const s=m(t,this.elementBounds),n=this.snapPoint(s,t);null===(i=this.interaction)||void 0===i||i.update(n,e),this.updateMeasurementPropsFromModel()}}}async getStencilBuffer(){var t;const i=await(null===(t=this.viewer)||void 0===t?void 0:t.stencilBuffer.latestAfterInteraction());this.stateMap.stencil=i}snapPoint(t,i){const e=this.getHitProvider();if(null!=e&&!i.shiftKey){const i=Math.max(0,this.snapDistance);return e.hitTester().snapToNearestPixel(t,i)}return t}formatDistance(t){const i=null!=t?this.measurementUnits.convertWorldValueToReal(t):void 0;if(null!=this.labelFormatter)return this.labelFormatter(i);{const t=this.measurementUnits.unit.abbreviatedName;return null==i?"---":`~${i.toFixed(this.fractionalDigits)} ${t}`}}beginEditing(t,i){0===this.interactionCount&&(this.interactingAnchor=i,this.editBegin.emit({type:t,anchor:i})),this.interactionCount=this.interactionCount+1}endEditing(){if(1===this.interactionCount){const t=this.model.getMeasurement();this.interactingAnchor="none",this.updateMeasurementModel(),null!=t&&this.editEnd.emit(t)}this.interactionCount=this.interactionCount-1}updateMeasurementModel(){this.measurementModel.clearOutcome(),this.invalid||null==this.start||null==this.end||this.measurementModel.setOutcome({isApproximate:!0,results:[b(this.start,this.end)]})}getHitProvider(){if(null!=this.hitProvider)return this.hitProvider;{const t=this.getHitTester(),i=this.viewer;if(null!=i&&null!=t)return{hitTester:()=>t,raycaster:async()=>(await i.scene()).raycaster()}}}getHitTester(){const{stencil:t,depthBuffer:i}=this.stateMap;if(null!=i)return new M(t,i,this.viewport,this.internalCamera)}updateMeasurementPropsFromModel(){const t=this.model.getMeasurement();this.start=null==t?void 0:t.start,this.end=null==t?void 0:t.end,this.distance=null==t?void 0:t.distance,this.invalid=null!=t&&!t.valid}updateIndicator(t){var i;const e=this.getHitProvider();null!=e&&this.controller.moveIndicator(t,e)?this.setCursor(c):null===(i=this.stateMap.hoverCursor)||void 0===i||i.dispose()}warnIfDepthBuffersDisabled(){null!=this.viewer&&null==this.viewer.depthBuffers&&console.warn("Measurement editing is disabled. <vertex-viewer> must have its `depth-buffers` attribute set.")}get hostEl(){return n(this)}static get watchers(){return{viewer:["handleViewerChanged"],units:["handleUnitsChanged"],camera:["handleCameraChanged"],mode:["handleModeChanged"],start:["handleStartChanged"],end:["handleEndChanged"],invalid:["handleInvalidChanged"]}}};function V(t){return"string"==typeof t?r.fromJson(t):t}O.style=":host{--viewer-measurement-distance-accent-color:var(--neutral-900);--viewer-measurement-distance-contrast-color:var(--white);--viewer-measurement-distance-invalid-accent-color:var(--red-600);--viewer-measurement-distance-invalid-contrast-color:var(--white);--viewer-measurement-distance-line-stroke-width:1.25px;--viewer-measurement-distance-line-fill-width:2px;--viewer-measurement-distance-distance-border:1px solid\n var(--viewer-measurement-distance-accent-color);--viewer-measurement-distance-distance-border-radius:0.25rem;--viewer-measurement-distance-distance-padding:0.375rem 0.5rem;color:var(--viewer-measurement-distance-accent-color);font-size:0.75rem;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none}:host([invalid]:not([invalid='false'])){--viewer-measurement-distance-accent-color:var(\n --viewer-measurement-distance-invalid-accent-color\n ) !important;--viewer-measurement-distance-contrast-color:var(\n --viewer-measurement-distance-invalid-contrast-color\n ) !important}.line{--viewer-measurement-line-stroke:var(\n --viewer-measurement-distance-contrast-color\n );--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:var(\n --viewer-measurement-distance-line-stroke-width\n );--viewer-measurement-line-fill:var(\n --viewer-measurement-distance-accent-color\n );--viewer-measurement-line-fill-width:var(\n --viewer-measurement-distance-line-fill-width\n );position:absolute;width:100%;height:100%}.anchor{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host([interacting-anchor='start']) .anchor-start,:host([interacting-anchor='start']) .anchor-label-start{visibility:hidden}.hide-start-line-cap,:host([interacting-anchor='start']) .line{--viewer-measurement-line-start-cap-visibility:hidden}:host([interacting-anchor='end']) .anchor-end,:host([interacting-anchor='end']) .anchor-label-end{visibility:hidden}.hide-end-line-cap,:host([interacting-anchor='end']) .line{--viewer-measurement-line-end-cap-visibility:hidden}.anchor-label{position:absolute;border-radius:50%;transform:translate(-50%, -50%);display:block;pointer-events:auto}:host(:not([mode=''])){cursor:inherit}:host(:not([mode=''])) .anchor{cursor:move}:host([mode='']) .anchor{visibility:hidden}.anchor-placeholder{background:var(--viewer-measurement-distance-contrast-color);width:12px;height:12px;border-radius:50%;box-sizing:border-box}:host(:not([mode=''])) .anchor-placeholder{border:2px solid var(--viewer-measurement-distance-accent-color);background:var(--viewer-measurement-distance-contrast-color)}:host([mode='']) .distance-label{color:var(--viewer-measurement-distance-contrast-color);background:var(--viewer-measurement-distance-accent-color)}.distance-label{position:absolute;background:var(--viewer-measurement-distance-contrast-color);border:var(--viewer-measurement-distance-distance-border);border-radius:var(--viewer-measurement-distance-distance-border-radius);padding:var(--viewer-measurement-distance-distance-padding);pointer-events:auto}.indicator{position:absolute}.indicator-placeholder{background:var(--viewer-measurement-distance-accent-color);border:1px solid var(--viewer-measurement-distance-contrast-color);width:6px;height:6px;border-radius:50%;box-sizing:border-box}";export{O as vertex_viewer_measurement_distance}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{p as n,s as t,h as e,i as r}from"./p-661f0612.js";function s(r,s,a=60){const i=n.distance(r,s),f=e.normalize(e.toDegrees(e.fromPoints(r,s))-270),o=Math.max(4,Math.min(16,.25*i)),E=o/Math.cos(e.toRadians(90-a)),u=t.rotation(f),R=n.polar(E,e.toRadians(2*a)),c=n.polar(E,e.toRadians(a)),M=n.polar(o,e.toRadians(90));return{tip:s,left:n.add(s,t.transformPoint(u,R)),right:n.add(s,t.transformPoint(u,c)),base:n.add(s,t.transformPoint(u,M))}}function a(n){return[n.tip,n.right,n.base,n.left].map((n=>`${n.x},${n.y}`)).join(" ")}function i(n){return n instanceof HTMLElement&&"VERTEX-VIEWER-MARKUP-ARROW"===n.nodeName}function f(t){return"string"==typeof t?n.fromJson(t):t}function o(n){return n instanceof HTMLElement&&"VERTEX-VIEWER-MARKUP-CIRCLE"===n.nodeName}function E(n){return"string"==typeof n?r.fromJson(n):n}function u(t){return"string"==typeof t?JSON.parse(t).map((t=>n.fromJson(JSON.stringify(t)))):t}function R(n){return n instanceof HTMLElement&&"VERTEX-VIEWER-MARKUP-FREEFORM"===n.nodeName}export{o as a,R as b,s as c,a as d,E as e,u as f,i,f as p}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{c as t,u as e,a as s,b as i}from"./p-e75bba97.js";import{v as r,b as n,a as o,p as a,d as h}from"./p-661f0612.js";import{v as u,t as c,g as l,e as d,h as p,d as w,w as v,i as m}from"./p-77be081a.js";const y={opacity:100,glossiness:10,diffuse:{r:0,g:0,b:0,a:0},ambient:{r:0,g:0,b:0,a:0},specular:{r:0,g:0,b:0,a:0},emissive:{r:0,g:0,b:0,a:0}},b=(e,s)=>{const i=t.fromHexString(e);return Object.assign(Object.assign({},y),{opacity:s||100,glossiness:s||10,diffuse:Object.assign({},null!=i?i:y.diffuse)})},f={opacity:100,glossiness:4,diffuse:{r:255,g:255,b:0,a:0},ambient:{r:0,g:0,b:0,a:0},specular:{r:255,g:255,b:255,a:0},emissive:{r:0,g:0,b:0,a:0}},g=Object.freeze({__proto__:null,create:(t,e,s,i)=>Object.assign(Object.assign({},y),{opacity:i||100,glossiness:i||10,diffuse:{r:t,g:e,b:s,a:0}}),fromHex:b,defaultSelectionMaterial:f});class x extends Error{constructor(t,e){super(),this.message=t,this.stack=null==e?void 0:e.stack,this.name=this.constructor.name,Object.setPrototypeOf(this,x.prototype)}}class O extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,O.prototype)}}class j extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,j.prototype)}}class I extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,I.prototype)}}class T extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,T.prototype)}}class k extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,k.prototype)}}class A extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,A.prototype)}}class S extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,S.prototype)}}class V extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,V.prototype)}}class B extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,B.prototype)}}class C extends x{constructor(t,e){super(t,e),Object.setPrototypeOf(this,C.prototype)}}function M(t){const s=e.parse(t);if("urn"!==s.scheme||null==s.path)throw new Error("Invalid URN. Expected URN scheme.");const[i,r,n]=s.path.split(":");if("vertexvis"!==i)throw new Error("Invalid URN. Expected URN to be vertexvis namespace");switch(r){case"stream-key":return{resource:{type:"stream-key",id:n},queries:(o=s.query,null!=o?o.split("&").map((t=>{const[e,s]=t.split("=");switch(e){case"scene-view-state":return{type:"scene-view-state",id:s};default:throw new Error("Invalid URN. Unknown query resource type")}})):[])};default:throw new O(`Invalid URN. Unknown resource type ${r}`)}var o}const R=Object.freeze({__proto__:null,fromUrn:M});class D{constructor(t,e=new Date){this.knownRemoteTime=t,this.knownLocalTime=e}localOffset(){return this.duration(this.knownLocalTime,this.localNow())}localTime(t){const e="number"==typeof t?new Date(this.knownLocalTime.getTime()+t):t,s=this.duration(this.knownRemoteTime,e);return this.addDuration(this.knownLocalTime,s)}remoteOffset(t=new Date){return this.duration(this.remoteTime(this.knownLocalTime),this.remoteTime(t))}remoteNow(){return this.remoteTime(this.localNow())}remoteTime(t){const e="number"==typeof t?new Date(this.knownLocalTime.getTime()+t):t,s=this.duration(this.knownLocalTime,e);return this.addDuration(this.knownRemoteTime,s)}addDuration(t,e){return new Date(t.getTime()+e)}duration(t,e){return e.getTime()-t.getTime()}localNow(){return new Date(Date.now())}}class U{constructor(t,e,s,i=1e4){this.stream=t,this.predicate=e,this.transform=s,this.timeout=i,this.listeners=[],this.handleMessage=this.handleMessage.bind(this)}on(t){this.listeners=[...this.listeners,t],null!=this.eventDisposable&&null!=this.requestDisposable||this.addListeners()}off(t){this.listeners=this.listeners.filter((e=>e!==t)),0===this.listeners.length&&this.removeListeners()}once(){let t;return s.timeout(this.timeout,new Promise((e=>{t=s=>{e(s),this.off(t)},this.on(t)}))).finally((()=>{this.off(t)}))}handleMessage(t){if(this.predicate(t)){const e=this.transform(t);null!=e&&this.listeners.forEach((t=>t(e)))}}addListeners(){this.eventDisposable=this.stream.onEvent(this.handleMessage),this.requestDisposable=this.stream.onRequest(this.handleMessage)}removeListeners(){var t,e;null===(t=this.eventDisposable)||void 0===t||t.dispose(),null===(e=this.requestDisposable)||void 0===e||e.dispose()}}class E{constructor(t,e,{animationId:s,correlationId:i},r){this.data=void 0,this.onAnimationCompleted=new U(t,(t=>{var e,i,r;return(null===(r=null===(i=null===(e=t.event)||void 0===e?void 0:e.animationCompleted)||void 0===i?void 0:i.animationId)||void 0===r?void 0:r.hex)===s}),(t=>{var e,s,i;return(null===(i=null===(s=null===(e=t.event)||void 0===e?void 0:e.animationCompleted)||void 0===s?void 0:s.animationId)||void 0===i?void 0:i.hex)||void 0}),r),this.onFrameReceived=new U(t,(t=>{var e,s,r;return!!(null===(r=null===(s=null===(e=t.request)||void 0===e?void 0:e.drawFrame)||void 0===s?void 0:s.frameCorrelationIds)||void 0===r?void 0:r.some((t=>t===i)))}),(t=>{var s;return null!=(null===(s=t.request)||void 0===s?void 0:s.drawFrame)?e(t.request.drawFrame):void 0}),r)}}function N(t){switch(t.type){case"item-id":return{id:new u.protobuf.core.Uuid({hex:t.value})};case"supplied-id":return{suppliedId:t.value};default:return{}}}class _{constructor(t){this.flyToOptions=t}build(){return this.flyToOptions}}class F{withItemId(t){return new _({flyTo:{type:"internal",data:t}})}withSuppliedId(t){return new _({flyTo:{type:"supplied",data:t}})}withCamera(t){return new _({flyTo:{type:"camera",data:t}})}withBoundingBox(t){return new _({flyTo:{type:"bounding-box",data:t}})}build(){return this.flyToOptions}}class z{constructor(t,e,s,i,r,n){this.stream=t,this.aspect=e,this.data=s,this.boundingBox=i,this.decodeFrame=r,this.flyToOptions=n}fitCameraToBoundingBox(t,e,s){const i=r.scale(e,r.normalize(s)),o=n.center(t),a=r.subtract(o,i);return this.update({lookAt:o,position:a,viewVector:i})}signedDistanceToBoundingBoxCenter(t){const{position:e,viewVector:s}=v(this.data),i=n.center(null!=t?t:this.boundingBox),o=r.subtract(i,e);return r.dot(s,o)/r.magnitude(s)}flyTo(t){return this.updateFlyToOptions("function"!=typeof t?{flyTo:this.buildFlyToType(t)}:t(new F).build())}viewAll(){return this.fitToBoundingBox(this.boundingBox)}async render(t){var e,s,r;null==this.flyToOptions&&null!=t&&(this.flyToOptions={flyTo:{type:"camera",data:this.data}});try{const n=i.create();if(null!=this.flyToOptions){const i=function(t,e,s){const i={frameCorrelationId:{value:t},animation:s?{duration:c(s.milliseconds)}:void 0};switch(e.flyTo.type){case"supplied":return Object.assign(Object.assign({},i),{itemSuppliedId:e.flyTo.data});case"internal":return Object.assign(Object.assign({},i),{itemId:new u.protobuf.core.Uuid({hex:e.flyTo.data})});case"camera":return Object.assign(Object.assign({},i),{camera:l(e.flyTo.data)});case"bounding-box":return Object.assign(Object.assign({},i),{boundingBox:{xmin:e.flyTo.data.min.x,xmax:e.flyTo.data.max.x,ymin:e.flyTo.data.min.y,ymax:e.flyTo.data.max.y,zmin:e.flyTo.data.min.z,zmax:e.flyTo.data.max.z}});default:return{}}}(n,this.flyToOptions,null==t?void 0:t.animation),o=await this.stream.flyTo(i,!0);return new E(this.stream,this.decodeFrame,{correlationId:n,animationId:(null===(s=null===(e=o.flyTo)||void 0===e?void 0:e.animationId)||void 0===s?void 0:s.hex)||void 0},null!=(null===(r=null==t?void 0:t.animation)||void 0===r?void 0:r.milliseconds)?t.animation.milliseconds+1e4:void 0)}return this.stream.replaceCamera({camera:l(this.data),frameCorrelationId:{value:n}}),new E(this.stream,this.decodeFrame,{correlationId:n})}catch(t){throw console.warn("Error when performing render: ",t),t}}rotateAroundAxis(t,e){return this.rotateAroundAxisAtPoint(t,this.data.lookAt,e)}standardView(t){return this.update({position:t.position,viewVector:r.subtract(r.origin(),t.position),lookAt:r.origin(),up:t.up})}buildFlyToType(t){if(null!=t.boundingBox)return{type:"bounding-box",data:t.boundingBox};if(null!=t.camera)return{type:"camera",data:t.camera};if(null!=t.itemId)return{type:"internal",data:t.itemId};if(null!=t.itemSuppliedId)return{type:"supplied",data:t.itemSuppliedId};throw new Error("Fly to must specify at least one option.")}computeClippingPlanes(t){return m(this.boundingBox,t)}}class P extends z{constructor(t,e,s,i,r,n){super(t,e,s,i,r,n),this.perspectiveData=s}moveBy(t){return this.update({position:r.add(this.position,t),lookAt:r.add(this.lookAt,t)})}rotateAroundAxisAtPoint(t,e,s){return this.update({position:r.rotateAboutAxis(t,this.position,s,e),lookAt:r.rotateAboutAxis(t,this.lookAt,s,e),up:r.rotateAboutAxis(t,this.up,s,r.origin())})}fitToBoundingBox(t){var e;const s=1.1*r.magnitude(r.subtract(t.max,n.center(t)));let i=Math.tan(.008726646259972*(null!==(e=this.fovY)&&void 0!==e?e:45));this.aspect<1&&(i*=this.aspect);const o=Math.abs(s/i);return super.fitCameraToBoundingBox(t,o,this.viewVector)}update(t){return new P(this.stream,this.aspect,Object.assign(Object.assign({},this.perspectiveData),t),this.boundingBox,this.decodeFrame,this.flyToOptions)}toFrameCamera(){var t;return new d(this.position,this.lookAt,this.up,this.near,this.far,this.aspectRatio,null!==(t=this.fovY)&&void 0!==t?t:45)}get viewVector(){return r.subtract(this.lookAt,this.position)}get position(){return Object.assign({},this.perspectiveData.position)}get up(){return Object.assign({},this.perspectiveData.up)}get lookAt(){return Object.assign({},this.perspectiveData.lookAt)}get fovY(){return this.perspectiveData.fovY}get aspectRatio(){return this.aspect}get near(){const{near:t}=this.computeClippingPlanes(this.perspectiveData);return t}get far(){const{far:t}=this.computeClippingPlanes(this.perspectiveData);return t}updateFlyToOptions(t){return new P(this.stream,this.aspect,this.perspectiveData,this.boundingBox,this.decodeFrame,t)}}class q extends z{constructor(t,e,s,i,r,n){super(t,e,s,i,r,n),this.orthographicData=s}moveBy(t){return this.update({lookAt:r.add(this.lookAt,t)})}rotateAroundAxisAtPoint(t,e,s){const i=r.rotateAboutAxis(t,this.lookAt,s,e),n=r.rotateAboutAxis(t,this.position,s,e),a=p(r.subtract(i,n),o.create(this.boundingBox));return this.update({viewVector:a,lookAt:i,up:r.rotateAboutAxis(t,this.up,s,r.origin())})}fitToBoundingBox(t){const e=o.create(t),s=super.fitCameraToBoundingBox(t,e.radius,this.viewVector);return this.update({lookAt:s.lookAt,viewVector:s.viewVector,fovHeight:2*e.radius})}update(t){return new q(this.stream,this.aspect,Object.assign(Object.assign({},this.orthographicData),t),this.boundingBox,this.decodeFrame,this.flyToOptions)}toFrameCamera(){return new w(p(this.viewVector,o.create(this.boundingBox)),this.lookAt,this.up,this.near,this.far,this.aspectRatio,this.fovHeight)}get viewVector(){return Object.assign({},this.orthographicData.viewVector)}get position(){return r.add(this.lookAt,r.negate(this.viewVector))}get up(){return Object.assign({},this.orthographicData.up)}get lookAt(){return Object.assign({},this.orthographicData.lookAt)}get fovHeight(){return this.orthographicData.fovHeight}get aspectRatio(){return this.aspect}get near(){const{near:t}=this.computeClippingPlanes(this.orthographicData);return t}get far(){const{far:t}=this.computeClippingPlanes(this.orthographicData);return t}updateFlyToOptions(t){return new q(this.stream,this.aspect,this.orthographicData,this.boundingBox,this.decodeFrame,t)}}class H{constructor(t,e){this.stream=t,this.imageScaleProvider=e}async hitItems(t,e){const s=this.imageScaleProvider();return(await this.stream.hitItems({point:a.scale(t,(null==s?void 0:s.x)||1,(null==s?void 0:s.y)||1),includeMetadata:null==e?void 0:e.includeMetadata},!0)).hitItems||void 0}}class L{constructor(t,e){this.stream=t,this.data=e}async update(t){return(await this.stream.updateCrossSectioning({crossSectioning:t},!0)).updateCrossSectioning||void 0}current(){return this.data}}class Q{constructor(t=[]){this.operations=t}build(){return this.operations.concat()}materialOverride(t){return new Q(this.operations.concat([{type:"change-material",material:t}]))}show(){return new Q(this.operations.concat([{type:"show"}]))}hide(){return new Q(this.operations.concat([{type:"hide"}]))}select(t){return new Q(this.operations.concat([{type:"select",material:t}]))}deselect(){return new Q(this.operations.concat([{type:"deselect"}]))}clearMaterialOverrides(){return new Q(this.operations.concat([{type:"clear-override"}]))}transform(t){return new Q(this.operations.concat([{type:"change-transform",transform:t}]))}}class Y{all(){return new W}withItemIds(t){return new X(t,"item-id")}withSuppliedIds(t){return new X(t,"supplied-id")}withItemId(t){return new Z({type:"item-id",value:t})}withSuppliedId(t){return new Z({type:"supplied-id",value:t})}withSceneTreeRange(t){return new $(t)}withMetadata(t,e){return new G(t,e)}withSelected(){return new J}withPoint(t){return new K(t)}}class W{build(){return{type:"all"}}}class ${constructor(t){this.range=t}build(){return{type:"scene-tree-range",range:this.range}}}class G{constructor(t,e){this.filter=t,this.keys=e}build(){return{type:"metadata",filter:this.filter,keys:this.keys}}}class J{build(){return{type:"all-selected"}}}class K{constructor(t){this.point=t}build(){return{type:"point",point:this.point}}}class X{constructor(t,e){this.ids=t,this.type=e}build(){return{type:"or",expressions:this.ids.map((t=>({type:this.type,value:t})))}}}class Z{constructor(t){this.query=t}build(){return Object.assign({},this.query)}and(){return new et([this.query])}or(){return new tt([this.query])}}class tt{constructor(t){this.expressions=t}build(){return{type:"or",expressions:[...this.expressions]}}withItemId(t){return new tt([...this.expressions,{type:"item-id",value:t}])}withSuppliedId(t){return new tt([...this.expressions,{type:"supplied-id",value:t}])}or(){return this}}class et{constructor(t){this.expressions=t}build(){return{type:"and",expressions:[...this.expressions]}}withItemId(t){return new et([...this.expressions,{type:"item-id",value:t}])}withSuppliedId(t){return new et([...this.expressions,{type:"supplied-id",value:t}])}and(){return this}}class st{constructor(t){this.defaultSelectionMaterial=t}where(t){const e=t(new Y).build();return new it(e,this.defaultSelectionMaterial)}}class it{constructor(t,e,s){this.query=t,this.defaultSelectionMaterial=e,this.builder=null!=s?s:new Q}materialOverride(t){return new it(this.query,this.defaultSelectionMaterial,this.builder.materialOverride("string"==typeof t?b(t):t))}hide(){return new it(this.query,this.defaultSelectionMaterial,this.builder.hide())}show(){return new it(this.query,this.defaultSelectionMaterial,this.builder.show())}select(t){return new it(this.query,this.defaultSelectionMaterial,this.builder.select("string"==typeof t?b(t):t||this.defaultSelectionMaterial))}deselect(){return new it(this.query,this.defaultSelectionMaterial,this.builder.deselect())}clearMaterialOverrides(){return new it(this.query,this.defaultSelectionMaterial,this.builder.clearMaterialOverrides())}transform(t){if(Array.isArray(t)){if(16!==t.length)throw new B("Matrix provided must contain exactly 16 values (4x4).");return new it(this.query,this.defaultSelectionMaterial,this.builder.transform({r0:{x:t[0],y:t[1],z:t[2],w:t[3]},r1:{x:t[4],y:t[5],z:t[6],w:t[7]},r2:{x:t[8],y:t[9],z:t[10],w:t[11]},r3:{x:t[12],y:t[13],z:t[14],w:t[15]}}))}return new it(this.query,this.defaultSelectionMaterial,this.builder.transform(t))}build(){return{query:this.query,operations:this.builder.build()}}}class rt{constructor(t,e,s,i){this.sceneViewId=t,this.stream=e,this.dimensions=s,this.queryOperations=i}async execute(t){const e=this.queryOperations.map((t=>function(t,e,s){const i=function(t){return t.map((t=>{switch(t.type){case"change-material":return{changeMaterial:{material:{d:t.material.opacity,ns:t.material.glossiness,ka:t.material.ambient,kd:t.material.diffuse,ks:t.material.specular,ke:t.material.emissive}}};case"clear-override":return{changeMaterial:{}};case"change-transform":return{changeTransform:{transform:Object.assign({},t.transform)}};case"hide":return{changeVisibility:{visible:!1}};case"show":return{changeVisibility:{visible:!0}};case"select":return{changeSelection:{material:{d:t.material.opacity,ns:t.material.glossiness,ka:t.material.ambient,kd:t.material.diffuse,ks:t.material.specular,ke:t.material.emissive}}};case"deselect":return{changeSelection:{}};default:return{}}}))}(e);switch(t.type){case"and":case"or":return{[t.type]:{queries:t.expressions.map((t=>({sceneItemQuery:N(t)})))},operationTypes:i};case"item-id":case"supplied-id":return{item:{sceneItemQuery:N(t)},operationTypes:i};case"all":return{all:{},operationTypes:i};case"scene-tree-range":return{sceneTreeRange:{start:t.range.start,end:t.range.end},operationTypes:i};case"metadata":return{metadata:{valueFilter:t.filter,keys:t.keys},operationTypes:i};case"all-selected":return{override:{selection:{}},operationTypes:i};case"point":return{point:{point:t.point,viewport:s.dimensions},operationTypes:i};default:return{}}}(t.query,t.operations,{dimensions:this.dimensions}))),s={sceneViewId:{hex:this.sceneViewId},operations:e,suppliedCorrelationId:null!=(null==t?void 0:t.suppliedCorrelationId)?{value:null==t?void 0:t.suppliedCorrelationId}:void 0};await this.stream.createSceneAlteration(s)}}class nt{constructor(t,e,s,i,r,n,o){this.stream=t,this.frame=e,this.decodeFrame=s,this.imageScaleProvider=i,this.dimensions=r,this.sceneViewId=n,this.defaultSelectionMaterial=o}async applySceneViewState(t,e={}){return await this.stream.loadSceneViewState({sceneViewStateId:{hex:t},frameCorrelationId:e.suppliedCorrelationId?{value:e.suppliedCorrelationId}:void 0},!0)}async reset(t={}){return await this.stream.resetSceneView({includeCamera:t.includeCamera,frameCorrelationId:t.suppliedCorrelationId?{value:t.suppliedCorrelationId}:void 0},!0)}items(t){const e=t(new st(this.defaultSelectionMaterial)),s=(Array.isArray(e)?e:[e]).reduce(((t,e)=>t.concat(e.build())),[]);return new rt(this.sceneViewId,this.stream,this.dimensions,s)}camera(){const{scene:t}=this.frame;if(t.camera.isOrthographic())return new q(this.stream,h.aspectRatio(this.viewport()),{viewVector:t.camera.viewVector,lookAt:t.camera.lookAt,up:t.camera.up,fovHeight:t.camera.fovHeight},this.frame.scene.boundingBox,this.decodeFrame);if(t.camera.isPerspective())return new P(this.stream,h.aspectRatio(this.viewport()),{position:t.camera.position,lookAt:t.camera.lookAt,up:t.camera.up,fovY:t.camera.fovY},this.frame.scene.boundingBox,this.decodeFrame);throw new C("Cannot retrieve camera. Scene has an unknown or invalid camera type.")}boundingBox(){return this.frame.scene.boundingBox}crossSectioning(){return new L(this.stream,this.frame.scene.crossSection)}raycaster(){return new H(this.stream,this.imageScaleProvider)}viewport(){return this.frame.dimensions}scale(){return this.imageScaleProvider()||a.create(1,1)}}export{x as C,S as I,nt as S,j as V,k as W,D as a,T as b,g as c,f as d,A as e,M as f,I as g,V as h,b as i,R as l}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{h as o,r as t,c as e,H as r,g as i}from"./p-cafa57a6.js";import{p as n,d as s,i as h,h as a}from"./p-661f0612.js";import{g as d}from"./p-487e054a.js";import{i as c,a as l,b as u,p as w,c as p,d as b,e as v,f as m}from"./p-d1584404.js";import{c as f}from"./p-f482325b.js";import"./p-112455b1.js";function g(o){return o.getBoundingClientRect()}function k(o,t){switch(t){case"top-left":return n.create(o.x,o.y);case"top":return n.create(o.x+o.width/2,o.y);case"top-right":return n.create(o.x+o.width,o.y);case"right":return n.create(o.x+o.width,o.y+o.height/2);case"bottom-right":return n.create(o.x+o.width,o.y+o.height);case"bottom":return n.create(o.x+o.width/2,o.y+o.height);case"bottom-left":return n.create(o.x,o.y+o.height);case"left":return n.create(o.x,o.y+o.height/2);case"center":return h.center(o)}}function x(o){return Math.min(o.width,o.height)}function D(o,t){const e=x(t);return n.add(n.scale(o,e,e),s.center(t))}function P(o,t){const e=x(t);return s.scale(e,e,o)}function y(o,t){const e=D(o,t),r=P(o,t);return h.fromPointAndDimensions(e,r)}function A(o,t){const e=function(o){return 1/x(o)}(t);return n.scale(n.subtract(o,s.center(t)),e,e)}function C(o,t,e){const r=h.fromPoints(o,t);if(e){const e=Math.max(r.width,r.height),i=r.height>r.width;return h.create(t.x<=o.x?i?o.x-e:t.x:o.x,t.y<=o.y?i?t.y:o.y-e:o.y,e,e)}return r}function L(o,t,e,r,i){const s=n.subtract(e,t),{x:a,y:d,width:c,height:l}=o,u=a+c,w=d+l,p=n.create(a,d),b=n.create(a,w),v=n.create(u,d),m=n.create(u,w);switch(r){case"top-left":return C(m,e,!!i);case"top":return C(m,n.create(a,e.y),!!i);case"top-right":return C(b,e,!!i);case"right":return C(b,n.create(e.x,d),!!i);case"bottom-right":return C(p,e,!!i);case"bottom":return C(p,n.create(u,e.y),!!i);case"bottom-left":return C(v,e,!!i);case"left":return C(m,n.create(e.x,d),!!i);case"center":return h.create(o.x+s.x,o.y+s.y,o.width,o.height)}}function T(o){const t=o.target;return function(o){return c(o)||l(o)||u(o)}(t)&&"edit"!==t.mode}const B=({id:t,rotation:e,name:r,point:i,onPointerDown:n},s)=>o("div",{id:t,class:"bounds-anchor-position",style:{top:`${i.y}px`,left:`${i.x}px`},onTouchStart:o=>o.preventDefault(),onPointerDown:n},o("div",{class:"bounds-anchor",style:{transform:`rotateZ(${null!=e?e:0}deg)`}},o("slot",{name:r},s))),M=({id:t})=>o("filter",{id:t,filterUnits:"userSpaceOnUse"},o("feGaussianBlur",{in:"SourceAlpha",stdDeviation:"2"}),o("feOffset",{dx:"0",dy:"1",result:"offsetblur"}),o("feFlood",{"flood-color":"#000000","flood-opacity":"0.25"}),o("feComposite",{in2:"offsetblur",operator:"in"}),o("feMerge",null,o("feMergeNode",null),o("feMergeNode",{in:"SourceGraphic"}))),R=({start:t,end:e,onStartAnchorPointerDown:r,onCenterAnchorPointerDown:i,onEndAnchorPointerDown:s})=>{const h=a.normalize(a.toDegrees(a.fromPoints(t,e))-270),d=n.create((t.x+e.x)/2,(t.y+e.y)/2);return o("div",{class:"bounds-container"},o(B,{id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:h,point:t,onPointerDown:r},o("div",{class:f("bounds-default-anchor","bounds-cap-anchor")})),o(B,{id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:h,point:e,onPointerDown:s},o("div",{class:f("bounds-default-anchor","bounds-cap-anchor")})),o(B,{id:"bounding-box-1d-center-anchor",name:"center-anchor",point:d,onPointerDown:i},o("div",{class:f("bounds-default-anchor","bounds-center-anchor")})))};let S=class{constructor(o){t(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.viewRendered=e(this,"viewRendered",7),this.mode="",this.editAnchor="end",this.editStartPoint=o=>{this.editAnchor="start",this.startMarkup(o)},this.editCenterPoint=o=>{this.editAnchor="center",this.startMarkup(o)},this.editEndPoint=o=>{this.editAnchor="end",this.startMarkup(o)},this.updatePoints=o=>{if(null!=this.elementBounds&&this.pointerId===o.pointerId){const t=A(d(o,this.elementBounds),this.elementBounds);if("start"===this.editAnchor)this.start=t;else if("end"===this.editAnchor)this.end=t;else if(null!=this.start&&null!=this.end){const o=n.create((this.start.x+this.end.x)/2,(this.start.y+this.end.y)/2),e=o.x-t.x,r=o.y-t.y;this.start=n.create(this.start.x-e,this.start.y-r),this.end=n.create(this.end.x-e,this.end.y-r)}}},this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.startMarkup=o=>{var t;""!==this.mode&&null!=this.elementBounds&&null==this.pointerId&&(this.pointerId=o.pointerId,this.start=null!==(t=this.start)&&void 0!==t?t:A(d(o,this.elementBounds),this.elementBounds),this.editBegin.emit(),this.addDrawingInteractionListeners())},this.endMarkup=o=>{if(this.pointerId===o.pointerId){const o=null!=this.start&&null!=this.elementBounds?D(this.start,this.elementBounds):void 0,t=null!=this.end&&null!=this.elementBounds?D(this.end,this.elementBounds):void 0;""!==this.mode&&null!=o&&null!=t&&n.distance(o,t)>=2?this.editEnd.emit():(this.start=void 0,this.end=void 0),this.pointerId=void 0,this.removeDrawingInteractionListeners()}}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handleStartJsonChange(){this.updatePointsFromProps()}handleEndJsonChange(){this.updatePointsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){const o=g(this.hostEl);this.elementBounds=o}updatePointsFromProps(){this.start=this.start||w(this.startJson),this.end=this.end||w(this.endJson)}render(){if(null!=this.start&&null!=this.end&&null!=this.elementBounds){const t=D(this.start,this.elementBounds),e=D(this.end,this.elementBounds),i=p(t,e);return function(...o){return o.every((o=>!isNaN(o.x)&&!isNaN(o.y)))}(t,e)?o(r,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"arrow-shadow"})),o("g",{filter:"url(#arrow-shadow)"},o("polygon",{id:"arrow-head",class:"head",points:b(i)}),o("line",{id:"arrow-line",class:"line",x1:t.x,y1:t.y,x2:i.base.x,y2:i.base.y}),"edit"===this.mode&&o("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:t.x,y1:t.y,x2:e.x,y2:e.y}))),"edit"===this.mode&&o(R,{start:t,end:e,onStartAnchorPointerDown:this.editStartPoint,onCenterAnchorPointerDown:this.editCenterPoint,onEndAnchorPointerDown:this.editEndPoint}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart})):o(r,null)}return o(r,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],start:["handleStartJsonChange"],end:["handleEndJsonChange"],mode:["handleModeChange"]}}};S.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-arrow-line-stroke-color:var(--red-800);--viewer-markup-arrow-line-stroke-width:4;--viewer-markup-arrow-head-stroke-color:var(--red-800);--viewer-markup-arrow-head-stroke-width:4;--viewer-markup-arrow-head-fill-color:var(--red-800);--viewer-markup-arrow-head-fill-opacity:1;--viewer-markup-arrow-bounds-cap-border-color:var(--blue-400);--viewer-markup-arrow-bounds-cap-border-width:1px;--viewer-markup-arrow-bounds-cap-background-color:white;--viewer-markup-arrow-bounds-center-anchor-border-color:white;--viewer-markup-arrow-bounds-center-anchor-border-width:1px;--viewer-markup-arrow-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-arrow-bounds-outline-width:1px;--viewer-markup-arrow-bounds-outline-color:var(--blue-400);--viewer-markup-arrow-bounds-anchor-width:9px;--viewer-markup-arrow-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.line{pointer-events:auto;stroke:var(--viewer-markup-arrow-line-stroke-color);stroke-width:var(--viewer-markup-arrow-line-stroke-width);cursor:default}.head{pointer-events:auto;stroke:var(--viewer-markup-arrow-head-stroke-color);stroke-width:var(--viewer-markup-arrow-head-stroke-width);fill:var(--viewer-markup-arrow-head-fill-color);fill-opacity:var(--viewer-markup-arrow-head-fill-opacity);cursor:default}.bounds-line{pointer-events:auto;stroke:var(--viewer-markup-arrow-bounds-outline-color);stroke-width:var(--viewer-markup-arrow-bounds-outline-width)}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-arrow-bounds-anchor-width);height:var(--viewer-markup-arrow-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-arrow-bounds-center-anchor-border-width);border-color:var(--viewer-markup-arrow-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-center-anchor-background-color)}.bounds-cap-anchor{border-width:var(--viewer-markup-arrow-bounds-cap-border-width);border-color:var(--viewer-markup-arrow-bounds-cap-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-cap-background-color)}";const I=({bounds:t,onTopLeftAnchorPointerDown:e,onLeftAnchorPointerDown:r,onTopRightAnchorPointerDown:i,onRightAnchorPointerDown:n,onBottomLeftAnchorPointerDown:s,onBottomAnchorPointerDown:a,onBottomRightAnchorPointerDown:d,onTopAnchorPointerDown:c,onCenterAnchorPointerDown:l})=>{const u=h.pad(t,6),w=h.center(u);return o("div",{class:"bounds-container"},o("div",{class:"bounds-outline",style:{top:`${u.y}px`,left:`${u.x}px`,width:`${u.width}px`,height:`${u.height}px`}}),o(B,{id:"bounding-box-2d-top-left-anchor",name:"top-left-anchor",point:k(u,"top-left"),onPointerDown:e},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-left-anchor",name:"left-anchor",point:k(u,"left"),onPointerDown:r},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-top-right-anchor",name:"top-right-anchor",point:k(u,"top-right"),onPointerDown:i},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-right-anchor",name:"right-anchor",point:k(u,"right"),onPointerDown:n},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-left-anchor",name:"bottom-left-anchor",point:k(u,"bottom-left"),onPointerDown:s},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-anchor",name:"bottom-anchor",point:k(u,"bottom"),onPointerDown:a},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-bottom-right-anchor",name:"bottom-right-anchor",point:k(u,"bottom-right"),onPointerDown:d},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-top-anchor",name:"top-anchor",point:k(u,"top"),onPointerDown:c},o("div",{class:f("bounds-default-anchor","bounds-edge-anchor")})),o(B,{id:"bounding-box-2d-center-anchor",name:"center-anchor",point:w,onPointerDown:l},o("div",{class:f("bounds-default-anchor","bounds-center-anchor")})))};let E=class{constructor(o){t(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.viewRendered=e(this,"viewRendered",7),this.mode="",this.editAnchor="bottom-right",this.updateEditAnchor=(o,t)=>{this.resizeBounds=this.bounds,this.editAnchor=t,this.startMarkup(o)},this.updatePoints=o=>{var t;if(null!=this.bounds&&null!=this.startPosition&&null!=this.elementBounds&&this.pointerId===o.pointerId){const e=A(d(o,this.elementBounds),this.elementBounds);this.bounds=L(null!==(t=this.resizeBounds)&&void 0!==t?t:this.bounds,this.startPosition,e,this.editAnchor,o.shiftKey)}},this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.startMarkup=o=>{var t;if(""!==this.mode&&null!=this.elementBounds&&null==this.pointerId){const e=A(d(o,this.elementBounds),this.elementBounds);this.pointerId=o.pointerId,this.startPosition=e,this.bounds=null!==(t=this.bounds)&&void 0!==t?t:h.create(e.x,e.y,0,0),this.resizeBounds=this.bounds,this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{var t,e;this.pointerId===o.pointerId&&(""!==this.mode&&null!=this.bounds&&(null===(t=this.bounds)||void 0===t?void 0:t.width)>0&&(null===(e=this.bounds)||void 0===e?void 0:e.height)>0?(this.editAnchor="bottom-right",this.editEnd.emit()):this.bounds=void 0,this.pointerId=void 0,this.removeDrawingInteractionListeners())}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps(),new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handleBoundsJsonChange(){this.updateBoundsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){const o=g(this.hostEl);this.elementBounds=o}updateBoundsFromProps(){var o;this.bounds=null!==(o=this.bounds)&&void 0!==o?o:v(this.boundsJson)}render(){if(null!=this.bounds&&null!=this.elementBounds){const t=y(this.bounds,this.elementBounds),e=h.center(t);return o(r,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"circle-shadow"})),o("g",{filter:"url(#circle-shadow)"},o("ellipse",{class:"ellipse",cx:e.x,cy:e.y,rx:t.width/2,ry:t.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),"edit"===this.mode&&o(I,{bounds:t,onTopLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"top-left"),onTopRightAnchorPointerDown:o=>this.updateEditAnchor(o,"top-right"),onTopAnchorPointerDown:o=>this.updateEditAnchor(o,"top"),onBottomLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-left"),onBottomRightAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-right"),onBottomAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom"),onLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"left"),onRightAnchorPointerDown:o=>this.updateEditAnchor(o,"right"),onCenterAnchorPointerDown:o=>this.updateEditAnchor(o,"center")}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}return o(r,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],bounds:["handleBoundsJsonChange"],mode:["handleModeChange"]}}};E.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-circle-ellipse-stroke-color:var(--red-700);--viewer-markup-circle-ellipse-stroke-width:4;--viewer-markup-circle-ellipse-fill-color:none;--viewer-markup-circle-ellipse-fill-opacity:0;--viewer-markup-circle-bounds-outline-border-color:var(--blue-400);--viewer-markup-circle-bounds-outline-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-circle-bounds-edge-anchor-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-background-color:white;--viewer-markup-circle-bounds-center-anchor-border-color:white;--viewer-markup-circle-bounds-center-anchor-border-width:1px;--viewer-markup-circle-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-circle-bounds-anchor-width:9px;--viewer-markup-circle-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.ellipse{pointer-events:auto;stroke:var(--viewer-markup-circle-ellipse-stroke-color);stroke-width:var(--viewer-markup-circle-ellipse-stroke-width);fill:var(--viewer-markup-circle-ellipse-fill-color);fill-opacity:var(--viewer-markup-circle-ellipse-fill-opacity);cursor:default}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-circle-bounds-outline-border-width);border-color:var(--viewer-markup-circle-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-circle-bounds-anchor-width);height:var(--viewer-markup-circle-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-circle-bounds-center-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-circle-bounds-center-anchor-background-color)}.bounds-edge-anchor{border-width:var(--viewer-markup-circle-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-edge-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-circle-bounds-edge-anchor-background-color)}";let $=class{constructor(o){t(this,o),this.editBegin=e(this,"editBegin",7),this.editEnd=e(this,"editEnd",7),this.viewRendered=e(this,"viewRendered",7),this.mode="",this.editAnchor="bottom-right",this.screenPoints=[],this.handleWindowPointerDown=o=>{T(o)&&this.startMarkup(o)},this.handleTouchStart=o=>{o.preventDefault()},this.updateEditAnchor=(o,t)=>{null!=this.elementBounds&&(this.resizeBounds=this.bounds,this.resizePoints=this.points,this.editAnchor=t,this.resizeStartPosition=A(d(o,this.elementBounds),this.elementBounds),this.addEditingInteractionListeners())},this.updateBounds=o=>{var t,e,r;if(null!=this.resizeStartPosition&&null!=this.elementBounds&&null!=this.resizeBounds&&null!=this.resizePoints){const i=A(d(o,this.elementBounds),this.elementBounds),s=L(this.resizeBounds,this.resizeStartPosition,i,this.editAnchor,o.shiftKey);this.points=(e=this.resizeBounds,r=s,this.resizePoints.map((o=>n.add(n.scale(n.subtract(o,e),r.width/(e.width||1),r.height/(e.height||1)),r)))),this.screenPoints=null!==(t=this.convertPointsToScreen())&&void 0!==t?t:this.screenPoints,this.bounds=s}},this.updatePoints=o=>{if(this.pointerId===o.pointerId&&null!=this.points&&null!=this.elementBounds){const t=d(o,this.elementBounds),e=A(t,this.elementBounds);this.updateMinAndMax(e),this.points=[...this.points,e],this.screenPoints=[...this.screenPoints,t]}},this.startMarkup=o=>{var t,e;if(null==this.pointerId&&""!==this.mode&&null!=this.elementBounds){this.pointerId=o.pointerId;const r=d(o,this.elementBounds),i=A(r,this.elementBounds);this.updateMinAndMax(i),this.points=null!==(t=this.points)&&void 0!==t?t:[i],this.screenPoints=null!==(e=this.screenPoints)&&void 0!==e?e:[r],this.editBegin.emit(),this.addDrawingInteractionListeners()}},this.endMarkup=o=>{if(this.pointerId===o.pointerId){if(""!==this.mode&&null!=this.points&&this.points.length>2&&null!=this.elementBounds){const t=d(o,this.elementBounds),e=A(t,this.elementBounds);this.updateMinAndMax(e),this.points=[...this.points,e],this.screenPoints=[...this.screenPoints,t],this.editEnd.emit()}else this.points=void 0;this.min=void 0,this.max=void 0,this.pointerId=void 0,this.removeDrawingInteractionListeners()}},this.endEdit=()=>{this.resizeBounds=void 0,this.removeEditingInteractionListeners(),this.editEnd.emit()}}componentWillLoad(){this.updateViewport(),this.handleViewerChanged(this.viewer),this.updatePointsFromProps()}componentDidLoad(){new ResizeObserver((()=>this.updateViewport())).observe(this.hostEl),"create"===this.mode&&window.addEventListener("pointerdown",this.handleWindowPointerDown)}componentDidRender(){""===this.mode&&this.viewRendered.emit()}disconnectedCallback(){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async dispose(){null!=this.viewer&&this.removeInteractionListeners(this.viewer),this.removeDrawingInteractionListeners(),window.removeEventListener("pointerdown",this.handleWindowPointerDown)}handleViewerChanged(o,t){null!=t&&this.removeInteractionListeners(t),null!=o&&this.addInteractionListeners(o)}handlePointsJsonChange(){this.updatePointsFromProps()}handleBoundsJsonChange(){this.updatePointsFromProps()}handleModeChange(){"create"!==this.mode&&window.removeEventListener("pointerdown",this.handleWindowPointerDown)}updateViewport(){var o;const t=g(this.hostEl);this.elementBounds=t,this.screenPoints=null!==(o=this.convertPointsToScreen())&&void 0!==o?o:this.screenPoints}updatePointsFromProps(){var o,t,e;this.points=null!==(o=this.points)&&void 0!==o?o:m(this.pointsJson),this.screenPoints=null!==(t=this.convertPointsToScreen())&&void 0!==t?t:[],this.bounds=null!==(e=this.bounds)&&void 0!==e?e:v(this.boundsJson)}render(){return this.screenPoints.length>0&&null!=this.elementBounds?o(r,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(M,{id:"freeform-markup-shadow"})),o("g",{filter:"url(#freeform-markup-shadow)"},o("path",{class:"path",d:this.screenPoints.reduce(((o,t)=>`${o}L${t.x},${t.y}`),`M${this.screenPoints[0].x},${this.screenPoints[0].y}`),fill:"none"}))),"edit"===this.mode&&null!=this.bounds&&o(I,{bounds:y(this.bounds,this.elementBounds),onTopLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"top-left"),onTopRightAnchorPointerDown:o=>this.updateEditAnchor(o,"top-right"),onTopAnchorPointerDown:o=>this.updateEditAnchor(o,"top"),onBottomLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-left"),onBottomRightAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom-right"),onBottomAnchorPointerDown:o=>this.updateEditAnchor(o,"bottom"),onLeftAnchorPointerDown:o=>this.updateEditAnchor(o,"left"),onRightAnchorPointerDown:o=>this.updateEditAnchor(o,"right"),onCenterAnchorPointerDown:o=>this.updateEditAnchor(o,"center")}),"create"===this.mode&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart})):o(r,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}async addInteractionListeners(o){const t=await o.getInteractionTarget();"create"===this.mode&&t.addEventListener("pointerdown",this.startMarkup)}async addDrawingInteractionListeners(){""!==this.mode&&(window.addEventListener("pointermove",this.updatePoints),window.addEventListener("pointerup",this.endMarkup))}async addEditingInteractionListeners(){"edit"===this.mode&&(window.addEventListener("pointermove",this.updateBounds),window.addEventListener("pointerup",this.endEdit))}async removeInteractionListeners(o){(await o.getInteractionTarget()).removeEventListener("pointerdown",this.startMarkup)}async removeDrawingInteractionListeners(){window.removeEventListener("pointermove",this.updatePoints),window.removeEventListener("pointerup",this.endMarkup)}async removeEditingInteractionListeners(){"edit"===this.mode&&(window.removeEventListener("pointermove",this.updateBounds),window.removeEventListener("pointerup",this.endEdit))}updateMinAndMax(o){this.min=null!=this.min?n.create(Math.min(this.min.x,o.x),Math.min(this.min.y,o.y)):o,this.max=null!=this.max?n.create(Math.max(this.max.x,o.x),Math.max(this.max.y,o.y)):o,this.bounds=h.create(this.min.x,this.min.y,this.max.x-this.min.x,this.max.y-this.min.y)}convertPointsToScreen(){var o;const t=this.elementBounds;if(null!=t)return null===(o=this.points)||void 0===o?void 0:o.map((o=>D(o,t)))}get hostEl(){return i(this)}static get watchers(){return{viewer:["handleViewerChanged"],points:["handlePointsJsonChange"],bounds:["handleBoundsJsonChange"],mode:["handleModeChange"]}}};$.style=":host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-freeform-stroke-color:var(--red-800);--viewer-markup-freeform-stroke-width:4;--viewer-markup-freeform-line-join:round;--viewer-markup-freeform-line-cap:round;--viewer-markup-freeform-bounds-outline-border-color:var(--blue-400);--viewer-markup-freeform-bounds-outline-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-freeform-bounds-edge-anchor-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-background-color:white;--viewer-markup-freeform-bounds-center-anchor-border-color:white;--viewer-markup-freeform-bounds-center-anchor-border-width:1px;--viewer-markup-freeform-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-freeform-bounds-anchor-width:9px;--viewer-markup-freeform-bounds-anchor-height:9px}.svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.path{pointer-events:auto;cursor:default;stroke:var(--viewer-markup-freeform-stroke-color);stroke-width:var(--viewer-markup-freeform-stroke-width);stroke-linejoin:var(--viewer-markup-freeform-line-join);stroke-linecap:var(--viewer-markup-freeform-line-cap)}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-freeform-bounds-outline-border-width);border-color:var(--viewer-markup-freeform-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-freeform-bounds-anchor-width);height:var(--viewer-markup-freeform-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-freeform-bounds-center-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-center-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-freeform-bounds-center-anchor-background-color)}.bounds-edge-anchor{border-width:var(--viewer-markup-freeform-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-edge-anchor-border-color);border-style:solid;background-color:var(--viewer-markup-freeform-bounds-edge-anchor-background-color)}";export{S as vertex_viewer_markup_arrow,E as vertex_viewer_markup_circle,$ as vertex_viewer_markup_freeform}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as e,h as i,F as t,H as s}from"./p-cafa57a6.js";import{p as r,h as a}from"./p-661f0612.js";import"./p-b8774c9c.js";import"./p-3a20a038.js";import"./p-77be081a.js";import{M as n}from"./p-3f0f83ad.js";import{t as l}from"./p-fa9a0bed.js";import"./p-112455b1.js";import"./p-e75bba97.js";let o=class{constructor(i){e(this,i),this.start=r.create(),this.end=r.create(),this.capLength=0,this.pointerEvents="none"}render(){const e=a.fromPoints(this.start,this.end),t=v(this.start,this.end,e,this.capLength),s=v(this.start,this.end,e,this.capLength+1);return i("svg",null,i("g",{class:"line-stroke","pointer-events":this.pointerEvents},i("line",{class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),i("line",{class:"start-cap",x1:s.startEndCap.start.x,y1:s.startEndCap.start.y,x2:s.startEndCap.end.x,y2:s.startEndCap.end.y}),i("line",{class:"end-cap",x1:s.endEndCap.start.x,y1:s.endEndCap.start.y,x2:s.endEndCap.end.x,y2:s.endEndCap.end.y})),i("g",{class:"line-fill","pointer-events":this.pointerEvents},i("line",{class:"line",x1:this.start.x,y1:this.start.y,x2:this.end.x,y2:this.end.y}),i("line",{class:"start-cap",x1:t.startEndCap.start.x,y1:t.startEndCap.start.y,x2:t.startEndCap.end.x,y2:t.startEndCap.end.y}),i("line",{class:"end-cap",x1:t.endEndCap.start.x,y1:t.endEndCap.start.y,x2:t.endEndCap.end.x,y2:t.endEndCap.end.y})))}};function v(e,i,t,s){return{startEndCap:m(e,t,s),endEndCap:m(i,t,s)}}function m(e,i,t){const s=i+Math.PI/2;return{start:r.add(e,r.polar(t/2,s)),end:r.add(e,r.polar(t/2,s+Math.PI))}}o.style=":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(\n var(--viewer-measurement-line-fill-width) +\n var(--viewer-measurement-line-stroke-width)\n );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 h=({overlay:e,viewport:t,camera:s})=>i("line"===e.type?c:u,{overlay:e,viewport:t,camera:s}),c=({overlay:e,camera:t,viewport:s})=>{const{start:r,end:a}=l(e,{camera:t,viewport:s});return i("vertex-viewer-measurement-line",{class:"measurement-line",start:r,end:a})},u=({overlay:{x:e,y:s,z:r},camera:a,viewport:n})=>{const o={camera:a,viewport:n},{start:v,end:m}=l(e,o),{start:h,end:c}=l(s,o),{start:u,end:d}=l(r,o);return i(t,null,i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-x",start:v,end:m}),i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-y",start:h,end:c}),i("vertex-viewer-measurement-line",{class:"measurement-line distance-vector-z",start:u,end:d}))};let d=class{constructor(i){e(this,i),this.measurementOverlays=new n,this.overlays=[],this.updateCamera=()=>{var e,i;this.camera=null===(i=null===(e=this.viewer)||void 0===e?void 0:e.frame)||void 0===i?void 0:i.scene.camera}}handleMeasurementOverlaysChanged(){this.removeModelListeners(),this.addModelListeners(),this.updateOverlays()}handleViewerChanged(e,i){this.removeViewerListeners(i),this.addViewerListeners(),this.updateCamera()}componentWillLoad(){this.addModelListeners(),this.addViewerListeners(),this.updateOverlays(),this.updateCamera()}addModelListeners(){this.onOverlaysChangedListener=this.measurementOverlays.onOverlaysChanged((()=>this.updateOverlays()))}removeModelListeners(){var e;null===(e=this.onOverlaysChangedListener)||void 0===e||e.dispose(),this.onOverlaysChangedListener=void 0}addViewerListeners(){var e;null===(e=this.viewer)||void 0===e||e.addEventListener("frameReceived",this.updateCamera)}removeViewerListeners(e){null==e||e.removeEventListener("frameReceived",this.updateCamera)}updateOverlays(){this.overlays=this.measurementOverlays.getOverlays()}render(){return i(s,null,this.overlays.map((e=>{if(null!=this.camera&&null!=this.viewer)return i(h,{overlay:e,viewport:this.viewer.viewport,camera:this.camera})})))}static get watchers(){return{measurementOverlays:["handleMeasurementOverlaysChanged"],viewer:["handleViewerChanged"]}}};d.style=":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(\n --viewer-measurement-overlays-x-axis-color\n )}.measurement-line.distance-vector-y{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-y-axis-color\n )}.measurement-line.distance-vector-z{--viewer-measurement-line-fill:var(\n --viewer-measurement-overlays-z-axis-color\n )}";export{o as vertex_viewer_measurement_line,d as vertex_viewer_measurement_overlays}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as t,h as e,H as i}from"./p-cafa57a6.js";import{s}from"./p-b8774c9c.js";import{g as n}from"./p-3a20a038.js";import{p as r}from"./p-809d09d9.js";import{a as o,M as a}from"./p-69058178.js";import{E as h}from"./p-77be081a.js";import{M as l}from"./p-5b342e97.js";import{M as d}from"./p-3f0f83ad.js";import{p as u}from"./p-661f0612.js";import{a as p}from"./p-3561d910.js";import{g as c}from"./p-487e054a.js";import"./p-112455b1.js";import"./p-e75bba97.js";var m=n.grpc,v=function(){function t(){}return t.serviceName="vertexvis.protobuf.sceneview.v1.SceneViewAPI",t}();function w(t,e){this.serviceHost=t,this.options=e||{}}v.UpdateModelEntities={methodName:"UpdateModelEntities",service:v,requestStream:!1,responseStream:!1,requestType:s.UpdateModelEntitiesRequest,responseType:s.UpdateModelEntitiesResponse},v.Measure={methodName:"Measure",service:v,requestStream:!1,responseStream:!1,requestType:s.MeasureRequest,responseType:s.MeasureResponse},w.prototype.updateModelEntities=function(t,e,i){2===arguments.length&&(i=arguments[1]);var s=m.unary(v.UpdateModelEntities,{request:t,host:this.serviceHost,metadata:e,transport:this.options.transport,debug:this.options.debug,onEnd:function(t){if(i)if(t.status!==m.Code.OK){var e=new Error(t.statusMessage);e.code=t.status,e.metadata=t.trailers,i(e,null)}else i(null,t.message)}});return{cancel:function(){i=null,s.close()}}},w.prototype.measure=function(t,e,i){2===arguments.length&&(i=arguments[1]);var s=m.unary(v.Measure,{request:t,host:this.serviceHost,metadata:e,transport:this.options.transport,debug:this.options.debug,onEnd:function(t){if(i)if(t.status!==m.Code.OK){var e=new Error(t.statusMessage);e.code=t.status,e.metadata=t.trailers,i(e,null)}else i(null,t.message)}});return{cancel:function(){i=null,s.close()}}};var f=w;class b{constructor(){this.observer=new ResizeObserver((()=>this.measure()))}observe(t){this.element=t,this.observer.observe(t),this.measure()}disconnect(){this.element=void 0,this.observer.disconnect()}measure(){var t;this.rect=null===(t=this.element)||void 0===t?void 0:t.getBoundingClientRect()}}class y{constructor(t,e){this.rectObserver=new b,this.handlePointerMove=async t=>{await this.isMeasurableEntityUnderPointer(t)?(this.clearCursor(),this.addCursor(p)):this.clearCursor()},this.handlePointerDown=t=>{this.ifNoInteraction(t,(async()=>{await this.isMeasurableEntityUnderPointer(t)?this.measureEntityUnderPointer(t):this.controller.clearEntities()}))},this.controller=t,this.measurableEntityTypes=e}get elementRect(){return this.rectObserver.rect}initialize(t,e){this.element=t,this.api=e,this.rectObserver.observe(t),t.addEventListener("pointermove",this.handlePointerMove),t.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var t,e,i;this.rectObserver.disconnect(),null===(t=this.measurementInteraction)||void 0===t||t.dispose(),this.clearCursor(),null===(e=this.element)||void 0===e||e.removeEventListener("pointermove",this.handlePointerMove),null===(i=this.element)||void 0===i||i.removeEventListener("pointerdown",this.handlePointerDown),this.element=void 0,this.api=void 0}addCursor(t){this.cursor=this.ifInitialized((({api:e})=>e.addCursor(t)))}clearCursor(){var t;null===(t=this.cursor)||void 0===t||t.dispose(),this.cursor=void 0}async isMeasurableEntityUnderPointer(t){var e;const i=c(t,this.elementRect),s=await(null===(e=this.api)||void 0===e?void 0:e.getEntityTypeAtPoint(i));return null!=s&&this.measurableEntityTypes.includes(s)}measureEntityUnderPointer(t){this.ifInitialized((async({api:e})=>{const i=c(t,this.elementRect),[s]=await e.hitItems(i);null!=s?this.controller.addEntity(o.fromHit(s)):this.controller.clearEntities()}))}ifInitialized(t){if(null!=this.element&&null!=this.api)return t({element:this.element,api:this.api});throw new Error("Measurement interaction handler not initialized.")}ifNoInteraction(t,e){const i=u.create(t.clientX,t.clientY);let s=!1;const n=t=>{const e=u.create(t.clientX,t.clientY),n=u.distance(i,e);s=n>2},r=()=>{window.removeEventListener("pointermove",n),window.removeEventListener("pointerup",r),s||e()};window.addEventListener("pointermove",n),window.addEventListener("pointerup",r)}}let M=class{constructor(e){t(this,e),this.measurementModel=new l,this.measurementOverlays=new d,this.measurableEntityTypes=[h.PRECISE_SURFACE,h.IMPRECISE_SURFACE],this.configEnv="platprod",this.overlays=[]}connectedCallback(){this.setupInteractionHandler()}componentWillLoad(){this.setupController(),this.setupModelListeners(),this.setupInteractionHandler()}disconnectedCallback(){this.clearInteractionHandler(),this.clearModelListeners()}handleMeasurableEntityTypesChanged(){this.setupInteractionHandler()}handleMeasurementControllerChanged(){this.setupInteractionHandler()}handleMeasurementModelChanged(){this.setupController(),this.setupModelListeners()}handleViewerChanged(){this.setupInteractionHandler()}render(){return e(i,null,e("vertex-viewer-measurement-overlays",{viewer:this.viewer,measurementOverlays:this.measurementOverlays}))}setupController(){var t;const e=r(this.configEnv,this.config),i=new f(e.network.sceneViewHost);this.measurementController=new a(this.measurementModel,i,(()=>{var t;return null===(t=this.viewer)||void 0===t?void 0:t.token}),null===(t=this.viewer)||void 0===t?void 0:t.deviceId)}clearInteractionHandler(){var t;null===(t=this.registeredInteractionHandler)||void 0===t||t.then((t=>t.dispose())),this.registeredInteractionHandler=void 0}setupInteractionHandler(){var t;this.clearInteractionHandler(),null!=this.measurementController&&(this.registeredInteractionHandler=null===(t=this.viewer)||void 0===t?void 0:t.registerInteractionHandler(new y(this.measurementController,this.measurableEntityTypes)))}clearModelListeners(){var t,e;null===(t=this.onEntitiesChangedHandler)||void 0===t||t.dispose(),this.onEntitiesChangedHandler=void 0,null===(e=this.onOverlaysChangedHandler)||void 0===e||e.dispose(),this.onOverlaysChangedHandler=void 0}setupModelListeners(){this.onOverlaysChangedHandler=this.measurementOverlays.onOverlaysChanged((t=>{this.overlays=t}))}static get watchers(){return{measurableEntityTypes:["handleMeasurableEntityTypesChanged"],measurementController:["handleMeasurementControllerChanged"],measurementModel:["handleMeasurementModelChanged"],viewer:["handleViewerChanged"]}}};M.style=":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}";export{M as vertex_viewer_measurement_precise}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{r as e,c as t,h as s,H as n,g as a}from"./p-cafa57a6.js";import{M as i}from"./p-849bd025.js";import"./p-b8774c9c.js";import"./p-3a20a038.js";import"./p-77be081a.js";import{M as r}from"./p-5b342e97.js";import{m as h}from"./p-bcb66f97.js";import{s as o}from"./p-c738296e.js";import{D as d}from"./p-ffdeb08c.js";import{i as m}from"./p-fa9a0bed.js";import"./p-112455b1.js";import"./p-e75bba97.js";import"./p-661f0612.js";let l=class{constructor(s){e(this,s),this.measurementAdded=t(this,"measurementAdded",7),this.measurementRemoved=t(this,"measurementRemoved",7),this.tool="distance",this.units="millimeters",this.fractionalDigits=2,this.disabled=!1,this.snapDistance=i,this.showAxisReferenceLines=!1,this.measurementModel=new r}async addMeasurement(e){if(e instanceof d){const{start:t,end:s,invalid:n,id:a}=e,i=this.createDistanceMeasurementElement();return i.id=a,i.start=t,i.end=s,i.invalid=n,this.updatePropsOnMeasurement(i),this.hostEl.appendChild(i),this.measurementAdded.emit(i),i}throw new Error(`Cannot add measurement. Unknown type '${e}'.`)}async removeMeasurement(e){const t=(await this.getMeasurementElements()).find((t=>t.id===e));return null!=t&&(t.remove(),this.measurementRemoved.emit(t)),t}async getMeasurementElement(e){return(await this.getMeasurementElements()).find((t=>t.id===e))}async getMeasurementElements(){return Array.from(this.hostEl.children).filter(m)}async handleSelectedMeasurementIdChanged(){this.measurementModel.clearOutcome(),(await this.getMeasurementElements()).forEach((e=>{e.id===this.selectedMeasurementId?(e.mode="edit",e.showAxisReferenceLines=this.showAxisReferenceLines,null!=e.start&&null!=e.end&&this.measurementModel.setOutcome({isApproximate:!0,results:[h(e.start,e.end)]})):(e.mode="",e.showAxisReferenceLines=!1)}))}handleToolChanged(){this.updatePropsOnMeasurementTool()}async handleViewerChanged(e){this.updatePropsOnMeasurementTool(),this.updatePropsOnMeasurements()}handleDisabledChanged(){this.updatePropsOnMeasurementTool()}handleDistanceTemplateIdChanged(){this.updatePropsOnMeasurementTool()}handleUnitsChanged(){this.updatePropsOnMeasurementTool(),this.updatePropsOnMeasurements()}handleFractionalDigitsChanged(){this.updatePropsOnMeasurementTool(),this.updatePropsOnMeasurements()}handleSnapDistanceChanged(){this.updatePropsOnMeasurementTool(),this.updatePropsOnMeasurements()}async handleMeasureEnd(e){const t=e;await this.addMeasurement(t.detail),this.selectedMeasurementId=t.detail.id}async handleMeasurementPointerDown(e){if(!this.disabled){const t=e.target,s=(await this.getMeasurementElements()).find((e=>e===t));null!=(null==s?void 0:s.id)&&""!==(null==s?void 0:s.id)&&(this.selectedMeasurementId=t.id)}}componentDidLoad(){this.updatePropsOnMeasurementTool()}render(){return s(n,null,s("slot",null))}createDistanceMeasurementElement(){if(null!=this.distanceTemplateId){const e=o(window.document.body,this.distanceTemplateId,m,(()=>console.warn(`Distance template with ID ${this.distanceTemplateId} not found. Using default distance element.`)),(()=>console.warn("Distance template does not contain a vertex-viewer-measurement-distance. Using default distance element.")));if(null!=e)return e}return document.createElement("vertex-viewer-measurement-distance")}async updatePropsOnMeasurements(){(await this.getMeasurementElements()).forEach((e=>this.updatePropsOnMeasurement(e)))}updatePropsOnMeasurement(e){e.fractionalDigits=this.fractionalDigits,e.units=this.units,e.snapDistance=this.snapDistance,e.viewer=this.viewer,e.classList.add("viewer-measurements__measurement")}updatePropsOnMeasurementTool(){const e=this.getMeasurementTool();null!=e&&(e.disabled=this.disabled,e.distanceTemplateId=this.distanceTemplateId,e.tool=this.tool,e.fractionalDigits=this.fractionalDigits,e.units=this.units,e.snapDistance=this.snapDistance,e.viewer=this.viewer)}getMeasurementTool(){return this.hostEl.querySelector("vertex-viewer-measurement-tool")}get hostEl(){return a(this)}static get watchers(){return{selectedMeasurementId:["handleSelectedMeasurementIdChanged"],tool:["handleToolChanged"],viewer:["handleViewerChanged"],disabled:["handleDisabledChanged"],distanceTemplateId:["handleDistanceTemplateIdChanged"],units:["handleUnitsChanged"],fractionalDigits:["handleFractionalDigitsChanged"],snapDistance:["handleSnapDistanceChanged"]}}};l.style=":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}::slotted(.viewer-measurements__measurement[mode='']){cursor:pointer}::slotted(.viewer-measurements__measurement[mode='edit']){z-index:1}::slotted(.viewer-measurements__measurement[interacting-anchor='start']),::slotted(.viewer-measurements__measurement[interacting-anchor='end']),::slotted(vertex-viewer-measurement-tool[is-measuring]){z-index:2}";export{l as vertex_viewer_measurements}
@@ -1,10 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{c as r}from"./p-112455b1.js";var f=r((function(r){
5
- /*!
6
- Copyright (c) 2018 Jed Watson.
7
- Licensed under the MIT License (MIT), see
8
- http://jedwatson.github.io/classnames
9
- */
10
- !function(){var f={}.hasOwnProperty;function i(){for(var r=[],e=0;e<arguments.length;e++){var n=arguments[e];if(n){var o=typeof n;if("string"===o||"number"===o)r.push(n);else if(Array.isArray(n)){if(n.length){var a=i.apply(null,n);a&&r.push(a)}}else if("object"===o)if(n.toString===Object.prototype.toString)for(var t in n)f.call(n,t)&&n[t]&&r.push(t);else r.push(n.toString())}}return r.join(" ")}r.exports?(i.default=i,r.exports=i):window.classNames=i}()}));export{f as c}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{a as n}from"./p-cafa57a6.js";function o(o){n(o)}function t(n,o){let t;return{emit:function(a){window.clearTimeout(t),t=window.setTimeout((()=>n.emit(a)),o)}}}export{t as d,o as r}
@@ -1,4 +0,0 @@
1
- /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
- */
4
- import{v as t}from"./p-661f0612.js";import{b as s}from"./p-e75bba97.js";class i{constructor(i){var r,e,o,l;this.start=null!==(r=i.start)&&void 0!==r?r:t.origin(),this.end=null!==(e=i.end)&&void 0!==e?e:t.origin(),this.invalid=null!==(o=i.invalid)&&void 0!==o&&o,this.id=null!==(l=i.id)&&void 0!==l?l:`measurement--${s.create()}`}getWorldDistance(){return t.distance(this.start,this.end)}getRealDistance(t){return t.convertRealValueToWorld(this.getWorldDistance())}}export{i as D}