@vertexvis/viewer 1.0.2-canary.2 → 1.0.2-canary.4

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 (501) hide show
  1. package/dist/cjs/config-20ozv4y8.js.map +1 -1
  2. package/dist/cjs/controller-BhcNbaX_.js.map +1 -1
  3. package/dist/cjs/controller-CSwG6gbQ.js.map +1 -1
  4. package/dist/cjs/cursors-BZmDRtaZ.js.map +1 -1
  5. package/dist/cjs/dom-BBil4aN3.js.map +1 -1
  6. package/dist/cjs/dom-CvGkFQon.js.map +1 -1
  7. package/dist/cjs/entities-D6kgGria.js.map +1 -1
  8. package/dist/cjs/geometry_pb-BTko2Wi0.js.map +1 -1
  9. package/dist/cjs/grpc-BsWFEUrc.js.map +1 -1
  10. package/dist/cjs/index.cjs.js.map +1 -1
  11. package/dist/cjs/model-C9WvOKYT.js.map +1 -1
  12. package/dist/cjs/model-D17EQTIh.js.map +1 -1
  13. package/dist/cjs/model-DAB4oD5n.js.map +1 -1
  14. package/dist/cjs/model-DkXCzhs_.js.map +1 -1
  15. package/dist/cjs/multiElementInteractionHandler-BHvRKVIp.js.map +1 -1
  16. package/dist/cjs/overlays-B-06bUbI.js.map +1 -1
  17. package/dist/cjs/queries-Da9I-xMf.js.map +1 -1
  18. package/dist/cjs/regl-component-HhKCyGQ3.js.map +1 -1
  19. package/dist/cjs/representation_pb-CrCGjlyP.js.map +1 -1
  20. package/dist/cjs/results-1wRRZiYG.js.map +1 -1
  21. package/dist/cjs/row-Cet6xXup.js.map +1 -1
  22. package/dist/cjs/stencil-Hsr_8Chs.js.map +1 -1
  23. package/dist/cjs/streamAttributes-D_J-W8-2.js.map +1 -1
  24. package/dist/cjs/templates-DvjgjnlO.js.map +1 -1
  25. package/dist/cjs/util-DIJSIQXH.js.map +1 -1
  26. package/dist/cjs/utils-CibrnHQ4.js.map +1 -1
  27. package/dist/cjs/utils-D8MbXbwO.js.map +1 -1
  28. package/dist/cjs/utils-qErVs2Vt.js.map +1 -1
  29. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +6 -8
  30. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js.map +1 -1
  31. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  32. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js.map +1 -1
  33. package/dist/cjs/vertex-scene-tree.cjs.entry.js +2 -2
  34. package/dist/cjs/vertex-scene-tree.cjs.entry.js.map +1 -1
  35. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +2 -2
  36. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js.map +1 -1
  37. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  38. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js.map +1 -1
  39. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
  40. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js.map +1 -1
  41. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +1 -1
  42. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js.map +1 -1
  43. package/dist/cjs/vertex-viewer-icon.cjs.entry.js.map +1 -1
  44. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js.map +1 -1
  45. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js.map +1 -1
  46. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
  47. package/dist/cjs/vertex-viewer-markup.cjs.entry.js.map +1 -1
  48. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js.map +1 -1
  49. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js.map +1 -1
  50. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +2 -2
  51. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js.map +1 -1
  52. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js.map +1 -1
  53. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +2 -2
  54. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js.map +1 -1
  55. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js.map +1 -1
  56. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +1 -1
  57. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js.map +1 -1
  58. package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js.map +1 -1
  59. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +4 -5
  60. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js.map +1 -1
  61. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +1 -1
  62. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js.map +1 -1
  63. package/dist/cjs/vertex-viewer-walk-mode-tool.cjs.entry.js.map +1 -1
  64. package/dist/cjs/vertex-viewer.cjs.entry.js +9 -5
  65. package/dist/cjs/vertex-viewer.cjs.entry.js.map +1 -1
  66. package/dist/cjs/viewport-CG1VYkIU.js.map +1 -1
  67. package/dist/collection/components/scene-tree/errors.js.map +1 -1
  68. package/dist/collection/components/scene-tree/lib/controller.js.map +1 -1
  69. package/dist/collection/components/scene-tree/lib/dom.js.map +1 -1
  70. package/dist/collection/components/scene-tree/lib/errors.js.map +1 -1
  71. package/dist/collection/components/scene-tree/lib/grpc.js.map +1 -1
  72. package/dist/collection/components/scene-tree/lib/handlers.js.map +1 -1
  73. package/dist/collection/components/scene-tree/lib/row.js.map +1 -1
  74. package/dist/collection/components/scene-tree/lib/viewer-ops.js.map +1 -1
  75. package/dist/collection/components/scene-tree/scene-tree.js +2 -2
  76. package/dist/collection/components/scene-tree/scene-tree.js.map +1 -1
  77. package/dist/collection/components/scene-tree-search/scene-tree-search.js.map +1 -1
  78. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +1 -1
  79. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js.map +1 -1
  80. package/dist/collection/components/scene-tree-table-cell/utils.js.map +1 -1
  81. package/dist/collection/components/scene-tree-table-layout/lib/dom.js.map +1 -1
  82. package/dist/collection/components/scene-tree-table-layout/lib/window.js.map +1 -1
  83. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +5 -5
  84. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js.map +1 -1
  85. package/dist/collection/components/viewer/utils.js.map +1 -1
  86. package/dist/collection/components/viewer/viewer.js +9 -5
  87. package/dist/collection/components/viewer/viewer.js.map +1 -1
  88. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +2 -2
  89. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js.map +1 -1
  90. package/dist/collection/components/viewer-dom-element/utils.js.map +1 -1
  91. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +1 -1
  92. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js.map +1 -1
  93. package/dist/collection/components/viewer-dom-group/utils.js.map +1 -1
  94. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +1 -1
  95. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js.map +1 -1
  96. package/dist/collection/components/viewer-dom-renderer/renderer2d.js.map +1 -1
  97. package/dist/collection/components/viewer-dom-renderer/renderer3d.js.map +1 -1
  98. package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js.map +1 -1
  99. package/dist/collection/components/viewer-hit-result-indicator/lib/dom.js.map +1 -1
  100. package/dist/collection/components/viewer-hit-result-indicator/lib/indicator.js.map +1 -1
  101. package/dist/collection/components/viewer-hit-result-indicator/lib/plane.js.map +1 -1
  102. package/dist/collection/components/viewer-hit-result-indicator/lib/point.js.map +1 -1
  103. package/dist/collection/components/viewer-hit-result-indicator/viewer-hit-result-indicator.js +1 -1
  104. package/dist/collection/components/viewer-hit-result-indicator/viewer-hit-result-indicator.js.map +1 -1
  105. package/dist/collection/components/viewer-icon/viewer-icon.js.map +1 -1
  106. package/dist/collection/components/viewer-markup/markup-utils.js.map +1 -1
  107. package/dist/collection/components/viewer-markup/viewer-markup-components.js.map +1 -1
  108. package/dist/collection/components/viewer-markup/viewer-markup.js +1 -1
  109. package/dist/collection/components/viewer-markup/viewer-markup.js.map +1 -1
  110. package/dist/collection/components/viewer-markup-arrow/interactions.js.map +1 -1
  111. package/dist/collection/components/viewer-markup-arrow/utils.js.map +1 -1
  112. package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow-components.js.map +1 -1
  113. package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow.js.map +1 -1
  114. package/dist/collection/components/viewer-markup-circle/interactions.js.map +1 -1
  115. package/dist/collection/components/viewer-markup-circle/utils.js.map +1 -1
  116. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js.map +1 -1
  117. package/dist/collection/components/viewer-markup-freeform/interactions.js.map +1 -1
  118. package/dist/collection/components/viewer-markup-freeform/utils.js.map +1 -1
  119. package/dist/collection/components/viewer-markup-freeform/viewer-markup-freeform.js.map +1 -1
  120. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js.map +1 -1
  121. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js.map +1 -1
  122. package/dist/collection/components/viewer-measurement-distance/hitTest.js.map +1 -1
  123. package/dist/collection/components/viewer-measurement-distance/interactions.js.map +1 -1
  124. package/dist/collection/components/viewer-measurement-distance/utils.js.map +1 -1
  125. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js.map +1 -1
  126. package/dist/collection/components/viewer-measurement-line/viewer-measurement-line.js +1 -1
  127. package/dist/collection/components/viewer-measurement-line/viewer-measurement-line.js.map +1 -1
  128. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js +1 -1
  129. package/dist/collection/components/viewer-measurement-overlays/viewer-measurement-overlays.js.map +1 -1
  130. package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js.map +1 -1
  131. package/dist/collection/components/viewer-pin-group/utils.js.map +1 -1
  132. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +2 -2
  133. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js.map +1 -1
  134. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js.map +1 -1
  135. package/dist/collection/components/viewer-pin-tool/utils.js.map +1 -1
  136. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +1 -1
  137. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js.map +1 -1
  138. package/dist/collection/components/viewer-teleport-tool/viewer-teleport-tool.js.map +1 -1
  139. package/dist/collection/components/viewer-transform-widget/util.js +1 -2
  140. package/dist/collection/components/viewer-transform-widget/util.js.map +1 -1
  141. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map +1 -1
  142. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +3 -3
  143. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js.map +1 -1
  144. package/dist/collection/components/viewer-transform-widget/widget.js.map +1 -1
  145. package/dist/collection/components/viewer-view-cube/viewer-view-cube.js +1 -1
  146. package/dist/collection/components/viewer-view-cube/viewer-view-cube.js.map +1 -1
  147. package/dist/collection/components/viewer-walk-mode-tool/viewer-walk-mode-tool.js.map +1 -1
  148. package/dist/collection/lib/annotations/controller.js.map +1 -1
  149. package/dist/collection/lib/canvases/controller.js.map +1 -1
  150. package/dist/collection/lib/canvases/mapper.js.map +1 -1
  151. package/dist/collection/lib/config.js.map +1 -1
  152. package/dist/collection/lib/cursors.js.map +1 -1
  153. package/dist/collection/lib/dom.js.map +1 -1
  154. package/dist/collection/lib/grpc.js.map +1 -1
  155. package/dist/collection/lib/interactions/baseInteractionHandler.js.map +1 -1
  156. package/dist/collection/lib/interactions/flyToPartKeyInteraction.js.map +1 -1
  157. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js.map +1 -1
  158. package/dist/collection/lib/interactions/interactionApi.js.map +1 -1
  159. package/dist/collection/lib/interactions/interactionApiOrthographic.js.map +1 -1
  160. package/dist/collection/lib/interactions/interactionApiPerspective.js.map +1 -1
  161. package/dist/collection/lib/interactions/mouseInteractionHandler.js.map +1 -1
  162. package/dist/collection/lib/interactions/mouseInteractions.js.map +1 -1
  163. package/dist/collection/lib/interactions/multiElementInteractionHandler.js.map +1 -1
  164. package/dist/collection/lib/interactions/multiPointerInteractionHandler.js.map +1 -1
  165. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js.map +1 -1
  166. package/dist/collection/lib/interactions/pointerInteractionHandler.js.map +1 -1
  167. package/dist/collection/lib/interactions/tapInteractionHandler.js.map +1 -1
  168. package/dist/collection/lib/interactions/touchInteractionHandler.js.map +1 -1
  169. package/dist/collection/lib/keyBinding.js.map +1 -1
  170. package/dist/collection/lib/mappers/annotation.js.map +1 -1
  171. package/dist/collection/lib/mappers/camera.js.map +1 -1
  172. package/dist/collection/lib/mappers/color.js.map +1 -1
  173. package/dist/collection/lib/mappers/colorMaterial.js.map +1 -1
  174. package/dist/collection/lib/mappers/corePb.js.map +1 -1
  175. package/dist/collection/lib/mappers/corePbJs.js.map +1 -1
  176. package/dist/collection/lib/mappers/frameStreaming.js.map +1 -1
  177. package/dist/collection/lib/mappers/geometry.js.map +1 -1
  178. package/dist/collection/lib/mappers/material.js.map +1 -1
  179. package/dist/collection/lib/mappers/pagination.js.map +1 -1
  180. package/dist/collection/lib/mappers/scalar.js.map +1 -1
  181. package/dist/collection/lib/mappers/streamAttributes.js.map +1 -1
  182. package/dist/collection/lib/markup/interactions.js.map +1 -1
  183. package/dist/collection/lib/measurement/controller.js.map +1 -1
  184. package/dist/collection/lib/measurement/entities.js.map +1 -1
  185. package/dist/collection/lib/measurement/interactions.js.map +1 -1
  186. package/dist/collection/lib/measurement/mapper.js.map +1 -1
  187. package/dist/collection/lib/measurement/model.js.map +1 -1
  188. package/dist/collection/lib/measurement/overlays.js.map +1 -1
  189. package/dist/collection/lib/measurement/results.js.map +1 -1
  190. package/dist/collection/lib/meters.js.map +1 -1
  191. package/dist/collection/lib/model-views/controller.js.map +1 -1
  192. package/dist/collection/lib/model-views/mapper.js.map +1 -1
  193. package/dist/collection/lib/pins/controller.js.map +1 -1
  194. package/dist/collection/lib/pins/interactions.js.map +1 -1
  195. package/dist/collection/lib/pmi/controller.js.map +1 -1
  196. package/dist/collection/lib/pmi/mapper.js.map +1 -1
  197. package/dist/collection/lib/rendering/canvas.js.map +1 -1
  198. package/dist/collection/lib/rendering/imageLoaders.js.map +1 -1
  199. package/dist/collection/lib/rendering/matrices.js.map +1 -1
  200. package/dist/collection/lib/rendering/timing.js.map +1 -1
  201. package/dist/collection/lib/rendering/utils.js.map +1 -1
  202. package/dist/collection/lib/rendering/vectors.js.map +1 -1
  203. package/dist/collection/lib/scene-items/controller.js.map +1 -1
  204. package/dist/collection/lib/scene-items/mapper.js.map +1 -1
  205. package/dist/collection/lib/scenes/camera.js.map +1 -1
  206. package/dist/collection/lib/scenes/cameraRenderResult.js.map +1 -1
  207. package/dist/collection/lib/scenes/colorMaterial.js.map +1 -1
  208. package/dist/collection/lib/scenes/crossSectioner.js.map +1 -1
  209. package/dist/collection/lib/scenes/mapper.js.map +1 -1
  210. package/dist/collection/lib/scenes/operations.js.map +1 -1
  211. package/dist/collection/lib/scenes/queries.js.map +1 -1
  212. package/dist/collection/lib/scenes/raycaster.js.map +1 -1
  213. package/dist/collection/lib/scenes/scene.js.map +1 -1
  214. package/dist/collection/lib/scenes/sceneOperationExecuteResult.js.map +1 -1
  215. package/dist/collection/lib/scenes/sceneViewStateLoader.js.map +1 -1
  216. package/dist/collection/lib/stencil.js.map +1 -1
  217. package/dist/collection/lib/storage.js.map +1 -1
  218. package/dist/collection/lib/stream/dispatcher.js.map +1 -1
  219. package/dist/collection/lib/stream/stream.js.map +1 -1
  220. package/dist/collection/lib/stream/utils.js.map +1 -1
  221. package/dist/collection/lib/teleportation/interactions.js.map +1 -1
  222. package/dist/collection/lib/templates.js.map +1 -1
  223. package/dist/collection/lib/token.js.map +1 -1
  224. package/dist/collection/lib/transforms/axis-lines.js.map +1 -1
  225. package/dist/collection/lib/transforms/axis-rotation.js.map +1 -1
  226. package/dist/collection/lib/transforms/axis-translation.js.map +1 -1
  227. package/dist/collection/lib/transforms/controller.js.map +1 -1
  228. package/dist/collection/lib/transforms/drawable.js.map +1 -1
  229. package/dist/collection/lib/transforms/hits.js.map +1 -1
  230. package/dist/collection/lib/transforms/line.js.map +1 -1
  231. package/dist/collection/lib/transforms/mesh.js.map +1 -1
  232. package/dist/collection/lib/transforms/shape.js.map +1 -1
  233. package/dist/collection/lib/transforms/transformation-delta.js.map +1 -1
  234. package/dist/collection/lib/transforms/util.js.map +1 -1
  235. package/dist/collection/lib/types/clippingPlanes.js.map +1 -1
  236. package/dist/collection/lib/types/depthBuffer.js.map +1 -1
  237. package/dist/collection/lib/types/featureMap.js.map +1 -1
  238. package/dist/collection/lib/types/flags.js.map +1 -1
  239. package/dist/collection/lib/types/frame.js.map +1 -1
  240. package/dist/collection/lib/types/frameCamera.js.map +1 -1
  241. package/dist/collection/lib/types/loadableResource.js.map +1 -1
  242. package/dist/collection/lib/types/orientation.js.map +1 -1
  243. package/dist/collection/lib/types/sceneViewStateIdentifier.js.map +1 -1
  244. package/dist/collection/lib/types/standardView.js.map +1 -1
  245. package/dist/collection/lib/types/stencilBuffer.js.map +1 -1
  246. package/dist/collection/lib/types/synchronizedClock.js.map +1 -1
  247. package/dist/collection/lib/types/viewport.js.map +1 -1
  248. package/dist/collection/lib/visibilityObserver.js.map +1 -1
  249. package/dist/collection/lib/volume-intersection/controller.js.map +1 -1
  250. package/dist/collection/lib/volume-intersection/interactions.js.map +1 -1
  251. package/dist/collection/lib/volume-intersection/model.js.map +1 -1
  252. package/dist/collection/lib/walk-mode/controller.js.map +1 -1
  253. package/dist/collection/lib/walk-mode/interactions.js.map +1 -1
  254. package/dist/collection/lib/walk-mode/model.js.map +1 -1
  255. package/dist/collection/lib/webgl/regl-component.js.map +1 -1
  256. package/dist/collection/testing/annotations.js.map +1 -1
  257. package/dist/collection/testing/canvases.js.map +1 -1
  258. package/dist/collection/testing/colors.js.map +1 -1
  259. package/dist/collection/testing/eventually.js.map +1 -1
  260. package/dist/collection/testing/fixtures.js.map +1 -1
  261. package/dist/collection/testing/grpc.js +3 -9
  262. package/dist/collection/testing/grpc.js.map +1 -1
  263. package/dist/collection/testing/modelViews.js.map +1 -1
  264. package/dist/collection/testing/pmi.js.map +1 -1
  265. package/dist/collection/testing/random.js.map +1 -1
  266. package/dist/collection/testing/resizeObserver.js.map +1 -1
  267. package/dist/collection/testing/scene-items-helper.js.map +1 -1
  268. package/dist/collection/testing/sceneTree.js.map +1 -1
  269. package/dist/collection/testing/viewer.js.map +1 -1
  270. package/dist/collection/testing/webgl.js.map +1 -1
  271. package/dist/components/index.js.map +1 -1
  272. package/dist/components/{p-St4ctu2K.js → p-3-bKfpqr.js} +2 -2
  273. package/dist/components/{p-St4ctu2K.js.map → p-3-bKfpqr.js.map} +1 -1
  274. package/dist/components/p-3DqRAYgO.js.map +1 -1
  275. package/dist/components/p-B-ToCp8-.js.map +1 -1
  276. package/dist/components/p-B156bTbY.js +5 -0
  277. package/dist/components/p-B156bTbY.js.map +1 -0
  278. package/dist/components/p-B9R0QWr4.js.map +1 -1
  279. package/dist/components/p-BCOD9yfw.js.map +1 -1
  280. package/dist/components/p-BHAaIoH5.js.map +1 -1
  281. package/dist/components/{p-Doltf1wO.js → p-BOJJZ1cN.js} +2 -2
  282. package/dist/components/p-BOJJZ1cN.js.map +1 -0
  283. package/dist/components/p-BkHp-aAR.js.map +1 -1
  284. package/dist/components/p-Bkm6H5uq.js.map +1 -1
  285. package/dist/components/p-C-VWDW9n.js.map +1 -1
  286. package/dist/components/p-C79PxobX.js.map +1 -1
  287. package/dist/components/p-CAugdB_8.js.map +1 -1
  288. package/dist/components/p-CEzVEgdQ.js.map +1 -1
  289. package/dist/components/p-CGCJ5hbJ.js.map +1 -1
  290. package/dist/components/p-COlcifvm.js.map +1 -1
  291. package/dist/components/p-CXTH3zrN.js.map +1 -1
  292. package/dist/components/p-CZCXdo3t.js.map +1 -1
  293. package/dist/components/p-Cd7kap5W.js.map +1 -1
  294. package/dist/components/p-CiSHWNC4.js.map +1 -1
  295. package/dist/components/p-CjG1fMh1.js.map +1 -1
  296. package/dist/components/p-CkjXRDNL.js.map +1 -1
  297. package/dist/components/p-D0KZu516.js.map +1 -1
  298. package/dist/components/p-D12q-fpW.js.map +1 -1
  299. package/dist/components/p-D33gVA2W.js.map +1 -1
  300. package/dist/components/p-DC86ZXai.js.map +1 -1
  301. package/dist/components/{p-B80hfIq6.js → p-DF4kEsJU.js} +2 -2
  302. package/dist/components/p-DF4kEsJU.js.map +1 -0
  303. package/dist/components/p-DRh4_Z-g.js.map +1 -1
  304. package/dist/components/p-DRnMrHWY.js.map +1 -1
  305. package/dist/components/{p-b0ZzPHz8.js → p-DUC59SSO.js} +2 -2
  306. package/dist/components/p-DUC59SSO.js.map +1 -0
  307. package/dist/components/p-DVW2WZTq.js.map +1 -1
  308. package/dist/components/p-DZI8pnGz.js.map +1 -1
  309. package/dist/components/p-Dbz9yUqC.js.map +1 -1
  310. package/dist/components/p-Yfi0i5Kj.js.map +1 -1
  311. package/dist/components/p-abSJ29r7.js.map +1 -1
  312. package/dist/components/p-ahjMltGJ.js.map +1 -1
  313. package/dist/components/p-bal2RLiw.js.map +1 -1
  314. package/dist/components/{p-BopQW1sA.js → p-oK38ynrd.js} +2 -2
  315. package/dist/components/p-oK38ynrd.js.map +1 -0
  316. package/dist/components/vertex-scene-tree-table-cell.js +1 -1
  317. package/dist/components/vertex-scene-tree-table-cell.js.map +1 -1
  318. package/dist/components/vertex-scene-tree-table-layout.js +1 -1
  319. package/dist/components/vertex-scene-tree.js +1 -1
  320. package/dist/components/vertex-scene-tree.js.map +1 -1
  321. package/dist/components/vertex-viewer-box-query-tool.js +1 -1
  322. package/dist/components/vertex-viewer-box-query-tool.js.map +1 -1
  323. package/dist/components/vertex-viewer-dom-element.js +1 -1
  324. package/dist/components/vertex-viewer-dom-group.js +1 -1
  325. package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
  326. package/dist/components/vertex-viewer-hit-result-indicator.js.map +1 -1
  327. package/dist/components/vertex-viewer-markup-tool.js.map +1 -1
  328. package/dist/components/vertex-viewer-markup.js +1 -1
  329. package/dist/components/vertex-viewer-markup.js.map +1 -1
  330. package/dist/components/vertex-viewer-measurement-details.js.map +1 -1
  331. package/dist/components/vertex-viewer-measurement-distance.js +1 -1
  332. package/dist/components/vertex-viewer-measurement-distance.js.map +1 -1
  333. package/dist/components/vertex-viewer-measurement-line.js +1 -1
  334. package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
  335. package/dist/components/vertex-viewer-measurement-precise.js +1 -1
  336. package/dist/components/vertex-viewer-measurement-precise.js.map +1 -1
  337. package/dist/components/vertex-viewer-pin-group.js +1 -1
  338. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  339. package/dist/components/vertex-viewer-pin-tool.js.map +1 -1
  340. package/dist/components/vertex-viewer-transform-widget.js +1 -1
  341. package/dist/components/vertex-viewer-transform-widget.js.map +1 -1
  342. package/dist/components/vertex-viewer-view-cube.js +1 -1
  343. package/dist/components/vertex-viewer-view-cube.js.map +1 -1
  344. package/dist/components/vertex-viewer-walk-mode-tool.js.map +1 -1
  345. package/dist/components/vertex-viewer.js +1 -1
  346. package/dist/components/vertex-viewer.js.map +1 -1
  347. package/dist/esm/config-lglER3mU.js.map +1 -1
  348. package/dist/esm/controller-BMWGs-I6.js.map +1 -1
  349. package/dist/esm/controller-Iymb_J2R.js.map +1 -1
  350. package/dist/esm/cursors-BbBDEutb.js.map +1 -1
  351. package/dist/esm/dom-B3m2VjbN.js.map +1 -1
  352. package/dist/esm/dom-DX6pEG54.js.map +1 -1
  353. package/dist/esm/entities-zRken6VS.js.map +1 -1
  354. package/dist/esm/geometry_pb-BiZRfctN.js.map +1 -1
  355. package/dist/esm/grpc-CZAYqbTu.js.map +1 -1
  356. package/dist/esm/index.js.map +1 -1
  357. package/dist/esm/model-BYW5YIye.js.map +1 -1
  358. package/dist/esm/model-CLtwOS0o.js.map +1 -1
  359. package/dist/esm/model-D0EJdHmW.js.map +1 -1
  360. package/dist/esm/model-DHJ5aE4y.js.map +1 -1
  361. package/dist/esm/multiElementInteractionHandler-DwjL-r55.js.map +1 -1
  362. package/dist/esm/overlays-BE1oqniA.js.map +1 -1
  363. package/dist/esm/queries-DEzCmbTD.js.map +1 -1
  364. package/dist/esm/regl-component-DmkowWhg.js.map +1 -1
  365. package/dist/esm/representation_pb-g4f0WC4k.js.map +1 -1
  366. package/dist/esm/results-CFB6nKu8.js.map +1 -1
  367. package/dist/esm/row-CiSHWNC4.js.map +1 -1
  368. package/dist/esm/stencil-BV-7pO4q.js.map +1 -1
  369. package/dist/esm/streamAttributes-Cp8PEH9A.js.map +1 -1
  370. package/dist/esm/templates-DRh4_Z-g.js.map +1 -1
  371. package/dist/esm/util-BCZZYmp4.js.map +1 -1
  372. package/dist/esm/utils-BvZ9-fs0.js.map +1 -1
  373. package/dist/esm/utils-DC86ZXai.js.map +1 -1
  374. package/dist/esm/utils-D_pIldrS.js.map +1 -1
  375. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +6 -8
  376. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js.map +1 -1
  377. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  378. package/dist/esm/vertex-scene-tree-table-cell.entry.js.map +1 -1
  379. package/dist/esm/vertex-scene-tree.entry.js +2 -2
  380. package/dist/esm/vertex-scene-tree.entry.js.map +1 -1
  381. package/dist/esm/vertex-viewer-box-query-tool.entry.js +2 -2
  382. package/dist/esm/vertex-viewer-box-query-tool.entry.js.map +1 -1
  383. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  384. package/dist/esm/vertex-viewer-dom-element_2.entry.js.map +1 -1
  385. package/dist/esm/vertex-viewer-dom-group.entry.js +1 -1
  386. package/dist/esm/vertex-viewer-dom-group.entry.js.map +1 -1
  387. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +1 -1
  388. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js.map +1 -1
  389. package/dist/esm/vertex-viewer-icon.entry.js.map +1 -1
  390. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js.map +1 -1
  391. package/dist/esm/vertex-viewer-markup-tool.entry.js.map +1 -1
  392. package/dist/esm/vertex-viewer-markup.entry.js +1 -1
  393. package/dist/esm/vertex-viewer-markup.entry.js.map +1 -1
  394. package/dist/esm/vertex-viewer-measurement-details.entry.js.map +1 -1
  395. package/dist/esm/vertex-viewer-measurement-distance.entry.js.map +1 -1
  396. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +2 -2
  397. package/dist/esm/vertex-viewer-measurement-line_2.entry.js.map +1 -1
  398. package/dist/esm/vertex-viewer-measurement-precise.entry.js.map +1 -1
  399. package/dist/esm/vertex-viewer-pin-group.entry.js +2 -2
  400. package/dist/esm/vertex-viewer-pin-group.entry.js.map +1 -1
  401. package/dist/esm/vertex-viewer-pin-label_2.entry.js.map +1 -1
  402. package/dist/esm/vertex-viewer-pin-tool.entry.js +1 -1
  403. package/dist/esm/vertex-viewer-pin-tool.entry.js.map +1 -1
  404. package/dist/esm/vertex-viewer-teleport-tool.entry.js.map +1 -1
  405. package/dist/esm/vertex-viewer-transform-widget.entry.js +4 -5
  406. package/dist/esm/vertex-viewer-transform-widget.entry.js.map +1 -1
  407. package/dist/esm/vertex-viewer-view-cube.entry.js +1 -1
  408. package/dist/esm/vertex-viewer-view-cube.entry.js.map +1 -1
  409. package/dist/esm/vertex-viewer-walk-mode-tool.entry.js.map +1 -1
  410. package/dist/esm/vertex-viewer.entry.js +9 -5
  411. package/dist/esm/vertex-viewer.entry.js.map +1 -1
  412. package/dist/esm/viewport-C8WQZxvx.js.map +1 -1
  413. package/dist/types/regl-shape.d.ts +1 -1
  414. package/dist/viewer/index.esm.js.map +1 -1
  415. package/dist/viewer/{p-eac63070.entry.js → p-051b5154.entry.js} +2 -2
  416. package/dist/viewer/p-051b5154.entry.js.map +1 -0
  417. package/dist/viewer/{p-3d3a7eeb.entry.js → p-0984c51f.entry.js} +2 -2
  418. package/dist/viewer/{p-3d3a7eeb.entry.js.map → p-0984c51f.entry.js.map} +1 -1
  419. package/dist/viewer/{p-864f40c7.entry.js → p-11cf755a.entry.js} +2 -2
  420. package/dist/viewer/p-11cf755a.entry.js.map +1 -0
  421. package/dist/viewer/{p-29d14611.entry.js → p-16775f7d.entry.js} +2 -2
  422. package/dist/viewer/p-16775f7d.entry.js.map +1 -0
  423. package/dist/viewer/{p-5a85cae5.entry.js → p-1eb636f8.entry.js} +2 -2
  424. package/dist/viewer/p-1eb636f8.entry.js.map +1 -0
  425. package/dist/viewer/{p-e993f300.entry.js → p-228d1d43.entry.js} +2 -2
  426. package/dist/viewer/p-228d1d43.entry.js.map +1 -0
  427. package/dist/viewer/p-33f44cc1.entry.js.map +1 -1
  428. package/dist/viewer/{p-3300d3dc.entry.js → p-35601c85.entry.js} +2 -2
  429. package/dist/viewer/p-35601c85.entry.js.map +1 -0
  430. package/dist/viewer/p-47766566.entry.js.map +1 -1
  431. package/dist/viewer/p-6e3a6bbd.entry.js.map +1 -1
  432. package/dist/viewer/p-7f388b45.entry.js.map +1 -1
  433. package/dist/viewer/p-89544066.entry.js.map +1 -1
  434. package/dist/viewer/{p-07b99ac9.entry.js → p-8c369777.entry.js} +2 -2
  435. package/dist/viewer/p-8c369777.entry.js.map +1 -0
  436. package/dist/viewer/{p-e59983dc.entry.js → p-9835c5e2.entry.js} +2 -2
  437. package/dist/viewer/p-9835c5e2.entry.js.map +1 -0
  438. package/dist/viewer/{p-aa95e21a.entry.js → p-9d8ff406.entry.js} +2 -2
  439. package/dist/viewer/p-9d8ff406.entry.js.map +1 -0
  440. package/dist/viewer/p-BDvACHun.js.map +1 -1
  441. package/dist/viewer/p-BIkuvTVH.js.map +1 -1
  442. package/dist/viewer/p-BRPkbTVP.js.map +1 -1
  443. package/dist/viewer/p-BsBIynwj.js.map +1 -1
  444. package/dist/viewer/p-BxtKMwBH.js.map +1 -1
  445. package/dist/viewer/p-C4y4Noe-.js.map +1 -1
  446. package/dist/viewer/p-C6KrfydC.js.map +1 -1
  447. package/dist/viewer/p-C7dYsPFU.js.map +1 -1
  448. package/dist/viewer/p-C9Cqbq6H.js.map +1 -1
  449. package/dist/viewer/p-CVWO4w6b.js.map +1 -1
  450. package/dist/viewer/p-ChqXy0cG.js.map +1 -1
  451. package/dist/viewer/p-CiSHWNC4.js.map +1 -1
  452. package/dist/viewer/p-CjG1fMh1.js.map +1 -1
  453. package/dist/viewer/p-Cs5KOvOQ.js.map +1 -1
  454. package/dist/viewer/p-CyGlYje2.js.map +1 -1
  455. package/dist/viewer/p-D6eJC1q4.js.map +1 -1
  456. package/dist/viewer/p-DC86ZXai.js.map +1 -1
  457. package/dist/viewer/p-DRh4_Z-g.js.map +1 -1
  458. package/dist/viewer/p-DUX5FvBC.js.map +1 -1
  459. package/dist/viewer/p-DX6pEG54.js.map +1 -1
  460. package/dist/viewer/p-D_ixWHO7.js.map +1 -1
  461. package/dist/viewer/p-DacE-wPp.js.map +1 -1
  462. package/dist/viewer/p-Dp56p_jX.js.map +1 -1
  463. package/dist/viewer/p-EsKoKfmx.js.map +1 -1
  464. package/dist/viewer/p-F8e15or2.js.map +1 -1
  465. package/dist/viewer/p-Jfxh0jq9.js.map +1 -1
  466. package/dist/viewer/p-WPRMWirY.js.map +1 -1
  467. package/dist/viewer/p-_93RRNxT.js.map +1 -1
  468. package/dist/viewer/p-a8a81cba.entry.js +5 -0
  469. package/dist/viewer/p-a8a81cba.entry.js.map +1 -0
  470. package/dist/viewer/p-a9282481.entry.js.map +1 -1
  471. package/dist/viewer/{p-63f4f702.entry.js → p-c7e62d66.entry.js} +2 -2
  472. package/dist/viewer/p-c7e62d66.entry.js.map +1 -0
  473. package/dist/viewer/p-d37e647b.entry.js.map +1 -1
  474. package/dist/viewer/{p-302f2078.entry.js → p-d9fe788f.entry.js} +2 -2
  475. package/dist/viewer/p-d9fe788f.entry.js.map +1 -0
  476. package/dist/viewer/p-e9b83dae.entry.js.map +1 -1
  477. package/dist/viewer/{p-70f3629d.entry.js → p-f271dc4a.entry.js} +2 -2
  478. package/dist/viewer/p-f271dc4a.entry.js.map +1 -0
  479. package/dist/viewer/p-f65c0769.entry.js.map +1 -1
  480. package/dist/viewer/viewer.esm.js +1 -1
  481. package/package.json +7 -7
  482. package/dist/components/p-B80hfIq6.js.map +0 -1
  483. package/dist/components/p-BopQW1sA.js.map +0 -1
  484. package/dist/components/p-DNtS2F8J.js +0 -5
  485. package/dist/components/p-DNtS2F8J.js.map +0 -1
  486. package/dist/components/p-Doltf1wO.js.map +0 -1
  487. package/dist/components/p-b0ZzPHz8.js.map +0 -1
  488. package/dist/viewer/p-07b99ac9.entry.js.map +0 -1
  489. package/dist/viewer/p-29d14611.entry.js.map +0 -1
  490. package/dist/viewer/p-302f2078.entry.js.map +0 -1
  491. package/dist/viewer/p-3300d3dc.entry.js.map +0 -1
  492. package/dist/viewer/p-5a85cae5.entry.js.map +0 -1
  493. package/dist/viewer/p-60c915e3.entry.js +0 -5
  494. package/dist/viewer/p-60c915e3.entry.js.map +0 -1
  495. package/dist/viewer/p-63f4f702.entry.js.map +0 -1
  496. package/dist/viewer/p-70f3629d.entry.js.map +0 -1
  497. package/dist/viewer/p-864f40c7.entry.js.map +0 -1
  498. package/dist/viewer/p-aa95e21a.entry.js.map +0 -1
  499. package/dist/viewer/p-e59983dc.entry.js.map +0 -1
  500. package/dist/viewer/p-e993f300.entry.js.map +0 -1
  501. package/dist/viewer/p-eac63070.entry.js.map +0 -1
@@ -217,7 +217,7 @@ const ViewerViewCube = class {
217
217
  * @ignore
218
218
  */
219
219
  render() {
220
- return (h(Host, { key: '3e723ac47709db472f6f53e96679139fae0e3f58' }, h("vertex-viewer-dom-renderer", { key: 'f6cd68e61014aedc6978ec4590d3b8af6bacc39a', ref: (ref) => (this.rendererEl = ref), class: "renderer", camera: this.camera }, !this.triadOff && (h("vertex-viewer-dom-group", { key: '77bd1b532d5cddeffddfa933716926e4cd97d858', class: "triad", position: this.triadPosition }, h(TriadAxis, { key: 'fc954790f8b1e94a0fcbce27a877438f70f690b3', label: "X", length: this.boxLength, rotationAxis: vector3.origin() }), h(TriadAxis, { key: '55f8abd997774fa75b59cc25ee367f97e26d8d0e', label: "Y", length: this.boxLength, rotationAxis: vector3.back() }), h(TriadAxis, { key: '0edd14df8831e142e7b716c19195372d0ca9b540', label: "Z", length: this.boxLength, rotationAxis: vector3.down() }))), h("vertex-viewer-dom-group", { key: '44c2aa6567000ff3a8b605bfcacff9edea99ad49', class: "cube", matrix: this.worldOrientation.matrix }, h(ViewCubeShadow, { key: '6d332b76534a1792e476d5af4c9928b655245699', length: this.boxLength + 10 }), h(ViewCubeSide, { key: 'e912dbdcfd3587e6d889b314da97d4831a5f5820', label: this.zPositiveLabel, length: this.boxLength, side: "front", onPointerDown: this.handleStandardView(StandardView.FRONT), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '9018644613e72bf4f605893e8b802e54e49d7a60', label: this.zNegativeLabel, length: this.boxLength, side: "back", onPointerDown: this.handleStandardView(StandardView.BACK), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '6f3018e38983ee92dd0d237e1f5e8d583ffc5868', label: this.xNegativeLabel, length: this.boxLength, side: "left", onPointerDown: this.handleStandardView(StandardView.LEFT), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '6ad9a228a8f08ed5834e817eb251459a2b790228', label: this.xPositiveLabel, length: this.boxLength, side: "right", onPointerDown: this.handleStandardView(StandardView.RIGHT), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '65444fe7463cc93010f697895259616e2c951185', label: this.yPositiveLabel, length: this.boxLength, side: "top", onPointerDown: this.handleStandardView(StandardView.TOP), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '69bd39a0e0c282d7699fbc43bb8162b5058b2725', label: this.yNegativeLabel, length: this.boxLength, side: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'bff49b1af1febb826d2566f78f44e198e724980a', length: this.boxLength, face1Side: "top", face1Edge: "bottom", face2Side: "front", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_FRONT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'd218a084a54b52b791b6ee905d572fc4c5f2067e', length: this.boxLength, face1Side: "front", face1Edge: "right", face2Side: "right", face2Edge: "left", onPointerDown: this.handleStandardView(StandardView.FRONT_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '55cdc6e8ed92a5d04605648cfba59e503d74b17a', length: this.boxLength, face1Side: "bottom", face1Edge: "top", face2Side: "front", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_FRONT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'e560d8a890575295b0b66391ef6edfa86a352479', length: this.boxLength, face1Side: "front", face1Edge: "left", face2Side: "left", face2Edge: "right", onPointerDown: this.handleStandardView(StandardView.FRONT_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '92175bcdb02a1ac0c69ecf060bf7ab8276bba30b', length: this.boxLength, face1Side: "top", face1Edge: "right", face2Side: "right", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '5c25934c6add8941aeffebf91e5d2755f736171a', length: this.boxLength, face1Side: "back", face1Edge: "left", face2Side: "right", face2Edge: "right", onPointerDown: this.handleStandardView(StandardView.BACK_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '573f648180a2ded37d05f53d54a09b594a745838', length: this.boxLength, face1Side: "bottom", face1Edge: "right", face2Side: "right", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '0736e5ce0c74c217eb597d05d9cb322176c6c26e', length: this.boxLength, face1Side: "top", face1Edge: "top", face2Side: "back", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_BACK), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '2621bf73adcbdcbed213ebf1bff5c0441066dfde', length: this.boxLength, face1Side: "back", face1Edge: "right", face2Side: "left", face2Edge: "left", onPointerDown: this.handleStandardView(StandardView.BACK_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'a7ce12b7104292548a2f39c3c21be1bbfb741008', length: this.boxLength, face1Side: "bottom", face1Edge: "bottom", face2Side: "back", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_BACK), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '6d51d0af13c7f6058e43d87b3b74c7f79dcd6372', length: this.boxLength, face1Side: "top", face1Edge: "left", face2Side: "left", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '6391a20b84bf91a6e6a8bce623fa402d02992b1b', length: this.boxLength, face1Side: "bottom", face1Edge: "left", face2Side: "left", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '119cdae569b4ac1abdc5929be9e789d7459b3d4d', length: this.boxLength, face1Side: "top", face1Corner: "bottom-left", face2Side: "front", face2Corner: "top-left", face3Side: "left", face3Corner: "top-right", onPointerDown: this.handleStandardView(StandardView.TOP_FRONT_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '607d1c0db03091fe6fe49ff8bb3f1d2e4e9ee737', length: this.boxLength, face1Side: "top", face1Corner: "bottom-right", face2Side: "front", face2Corner: "top-right", face3Side: "right", face3Corner: "top-left", onPointerDown: this.handleStandardView(StandardView.TOP_FRONT_LEFT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'bf417c48dc652d2692d6a122cd8aa4f9aae65331', length: this.boxLength, face1Side: "bottom", face1Corner: "top-right", face2Side: "front", face2Corner: "bottom-right", face3Side: "right", face3Corner: "bottom-left", onPointerDown: this.handleStandardView(StandardView.BOTTOM_FRONT_LEFT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '59f7db859f9d06921e2fa3c30fa2527bc95ff3ce', length: this.boxLength, face1Side: "bottom", face1Corner: "top-left", face2Side: "front", face2Corner: "bottom-left", face3Side: "left", face3Corner: "bottom-right", onPointerDown: this.handleStandardView(StandardView.BOTTOM_FRONT_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'f8eb7ba2b8b9384c6fed7f1e930eb872599b7372', length: this.boxLength, face1Side: "top", face1Corner: "top-right", face2Side: "back", face2Corner: "top-left", face3Side: "right", face3Corner: "top-right", onPointerDown: this.handleStandardView(StandardView.TOP_BACK_LEFT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '122f91a6146b62e145d0e710b8d1b7605b744073', length: this.boxLength, face1Side: "top", face1Corner: "top-left", face2Side: "back", face2Corner: "top-right", face3Side: "left", face3Corner: "top-left", onPointerDown: this.handleStandardView(StandardView.TOP_BACK_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '4114134608fa6903bd0226a541d153175418102b', length: this.boxLength, face1Side: "bottom", face1Corner: "bottom-left", face2Side: "back", face2Corner: "bottom-right", face3Side: "left", face3Corner: "bottom-left", onPointerDown: this.handleStandardView(StandardView.BOTTOM_BACK_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '1d4fd46fb9edf0821e3e611c863837d1e9bc7ec8', length: this.boxLength, face1Side: "bottom", face1Corner: "bottom-right", face2Side: "back", face2Corner: "bottom-left", face3Side: "right", face3Corner: "bottom-right", onPointerDown: this.handleStandardView(StandardView.BOTTOM_BACK_LEFT), disabled: this.standardViewsOff })))));
220
+ return (h(Host, { key: 'a3cea27b2376c4ffbe255168515b8c3f0e7ab5aa' }, h("vertex-viewer-dom-renderer", { key: '7f1560abaf53c1dc5b8f43b9dade445917861656', ref: (ref) => (this.rendererEl = ref), class: "renderer", camera: this.camera }, !this.triadOff && (h("vertex-viewer-dom-group", { key: '0671f7678ab3197709e98649d0ac36a1703614c6', class: "triad", position: this.triadPosition }, h(TriadAxis, { key: 'b65eddeb99f9b93120246f8143886ac937afb57a', label: "X", length: this.boxLength, rotationAxis: vector3.origin() }), h(TriadAxis, { key: 'ba49dbda3e18e90e033453d06b509f31336fffe8', label: "Y", length: this.boxLength, rotationAxis: vector3.back() }), h(TriadAxis, { key: 'ff765198e6e11cc6b7b2d466766809b055c5ccdf', label: "Z", length: this.boxLength, rotationAxis: vector3.down() }))), h("vertex-viewer-dom-group", { key: '0dd9aab195029c25a3090f35ee39c04ed45da8f8', class: "cube", matrix: this.worldOrientation.matrix }, h(ViewCubeShadow, { key: '995e2af8e70518edcf949d5df72387463ff3cc0e', length: this.boxLength + 10 }), h(ViewCubeSide, { key: '0864a044b3d79b9a483cd492b7a04a20fcf64f42', label: this.zPositiveLabel, length: this.boxLength, side: "front", onPointerDown: this.handleStandardView(StandardView.FRONT), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '8f9110528267a00b802f97a8543a896d9fc333f7', label: this.zNegativeLabel, length: this.boxLength, side: "back", onPointerDown: this.handleStandardView(StandardView.BACK), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '6848e1e273bc815ee40e0218cc15bdc80d1f2715', label: this.xNegativeLabel, length: this.boxLength, side: "left", onPointerDown: this.handleStandardView(StandardView.LEFT), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '825624a992f4d31d9faf7506c8e964392da041ab', label: this.xPositiveLabel, length: this.boxLength, side: "right", onPointerDown: this.handleStandardView(StandardView.RIGHT), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: 'f59f5693ce4f1b4a794f4665b3f920bf29c1f159', label: this.yPositiveLabel, length: this.boxLength, side: "top", onPointerDown: this.handleStandardView(StandardView.TOP), disabled: this.standardViewsOff }), h(ViewCubeSide, { key: '65b8c8a2f8cc5cbc7974ca0dc3e6c328e2ca0649', label: this.yNegativeLabel, length: this.boxLength, side: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '0923dfc3696b2c76e69069156c0f57d6cd4f8285', length: this.boxLength, face1Side: "top", face1Edge: "bottom", face2Side: "front", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_FRONT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '6bf8058fbb4e35b9a1ed8dc5ff772ed2d2995add', length: this.boxLength, face1Side: "front", face1Edge: "right", face2Side: "right", face2Edge: "left", onPointerDown: this.handleStandardView(StandardView.FRONT_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '61f28c6cd18661c643ec1510305a8603efbd5cdb', length: this.boxLength, face1Side: "bottom", face1Edge: "top", face2Side: "front", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_FRONT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '6c62acdf92f6397ec3c381d10078215cf6a29ebb', length: this.boxLength, face1Side: "front", face1Edge: "left", face2Side: "left", face2Edge: "right", onPointerDown: this.handleStandardView(StandardView.FRONT_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'a94dc61cea93cae54e148c4f1ffc73a42717f986', length: this.boxLength, face1Side: "top", face1Edge: "right", face2Side: "right", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '4a97659a3aad5b162252091401ec666727d204be', length: this.boxLength, face1Side: "back", face1Edge: "left", face2Side: "right", face2Edge: "right", onPointerDown: this.handleStandardView(StandardView.BACK_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: '422acd7e4689eb7ae0403726a29a3784637bdfd6', length: this.boxLength, face1Side: "bottom", face1Edge: "right", face2Side: "right", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_LEFT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'afa5fb1b78c1fcbb78a48f040d5c868a4dd338fc', length: this.boxLength, face1Side: "top", face1Edge: "top", face2Side: "back", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_BACK), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'e1aa294c3ed0a6e105929a7094cfbdeab26fe7c0', length: this.boxLength, face1Side: "back", face1Edge: "right", face2Side: "left", face2Edge: "left", onPointerDown: this.handleStandardView(StandardView.BACK_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'e3a83623df735d9987a279ef2e055d1f962cafbe', length: this.boxLength, face1Side: "bottom", face1Edge: "bottom", face2Side: "back", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_BACK), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'ad1d8915f046ba5df73240489c2daf1703b6a310', length: this.boxLength, face1Side: "top", face1Edge: "left", face2Side: "left", face2Edge: "top", onPointerDown: this.handleStandardView(StandardView.TOP_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeEdge, { key: 'f0b94c0f3517d1f54cf0c23f74fa681607da3532', length: this.boxLength, face1Side: "bottom", face1Edge: "left", face2Side: "left", face2Edge: "bottom", onPointerDown: this.handleStandardView(StandardView.BOTTOM_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'c814db371a4b47ba50084e69879845921eb6ba91', length: this.boxLength, face1Side: "top", face1Corner: "bottom-left", face2Side: "front", face2Corner: "top-left", face3Side: "left", face3Corner: "top-right", onPointerDown: this.handleStandardView(StandardView.TOP_FRONT_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'b0f81f620127d1533eeb675c66d74e1b3019cb3b', length: this.boxLength, face1Side: "top", face1Corner: "bottom-right", face2Side: "front", face2Corner: "top-right", face3Side: "right", face3Corner: "top-left", onPointerDown: this.handleStandardView(StandardView.TOP_FRONT_LEFT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '254834f0214afa786b8997274e0dcbc4f1e5e31c', length: this.boxLength, face1Side: "bottom", face1Corner: "top-right", face2Side: "front", face2Corner: "bottom-right", face3Side: "right", face3Corner: "bottom-left", onPointerDown: this.handleStandardView(StandardView.BOTTOM_FRONT_LEFT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '847425b3886582ddb596408fbfcd2fcd9e424641', length: this.boxLength, face1Side: "bottom", face1Corner: "top-left", face2Side: "front", face2Corner: "bottom-left", face3Side: "left", face3Corner: "bottom-right", onPointerDown: this.handleStandardView(StandardView.BOTTOM_FRONT_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'fe6eaffd1f06fe45a9fa3fb680d638f3623187aa', length: this.boxLength, face1Side: "top", face1Corner: "top-right", face2Side: "back", face2Corner: "top-left", face3Side: "right", face3Corner: "top-right", onPointerDown: this.handleStandardView(StandardView.TOP_BACK_LEFT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'e4b8004047f4f1da2decc4b17d86297a67e38e9d', length: this.boxLength, face1Side: "top", face1Corner: "top-left", face2Side: "back", face2Corner: "top-right", face3Side: "left", face3Corner: "top-left", onPointerDown: this.handleStandardView(StandardView.TOP_BACK_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: 'c06a8465a3b39828bf114faaa0039c8e32196441', length: this.boxLength, face1Side: "bottom", face1Corner: "bottom-left", face2Side: "back", face2Corner: "bottom-right", face3Side: "left", face3Corner: "bottom-left", onPointerDown: this.handleStandardView(StandardView.BOTTOM_BACK_RIGHT), disabled: this.standardViewsOff }), h(ViewCubeCorner, { key: '2ea208573579fd18a3b7fde9f0bbc3a5834e2652', length: this.boxLength, face1Side: "bottom", face1Corner: "bottom-right", face2Side: "back", face2Corner: "bottom-left", face3Side: "right", face3Corner: "bottom-right", onPointerDown: this.handleStandardView(StandardView.BOTTOM_BACK_LEFT), disabled: this.standardViewsOff })))));
221
221
  }
222
222
  static get watchers() { return {
223
223
  "viewer": [{
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-viewer-view-cube.entry.js","sources":["src/components/viewer-view-cube/viewer-view-cube-components.tsx","src/components/viewer-view-cube/viewer-view-cube.css?tag=vertex-viewer-view-cube&encapsulation=shadow","src/components/viewer-view-cube/viewer-view-cube.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Fragment, FunctionalComponent, h } from '@stencil/core';\nimport { Euler, Quaternion, Vector3 } from '@vertexvis/geometry';\nimport classNames from 'classnames';\n\ntype FaceEdge = 'top' | 'bottom' | 'left' | 'right';\n\ntype Corner = 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';\n\ntype ViewCubeSide = 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';\n\ninterface ViewCubeSideData {\n direction: Vector3.Vector3;\n quaternion: Quaternion.Quaternion;\n}\n\nconst viewCubeSides: Record<ViewCubeSide, ViewCubeSideData> = {\n front: {\n direction: Vector3.back(),\n quaternion: Quaternion.create(),\n },\n back: {\n direction: Vector3.forward(),\n quaternion: Quaternion.fromAxisAngle(Vector3.up(), Math.PI),\n },\n left: {\n direction: Vector3.left(),\n quaternion: Quaternion.fromAxisAngle(Vector3.down(), Math.PI / 2),\n },\n right: {\n direction: Vector3.right(),\n quaternion: Quaternion.fromAxisAngle(Vector3.up(), Math.PI / 2),\n },\n top: {\n direction: Vector3.up(),\n quaternion: Quaternion.fromAxisAngle(Vector3.right(), -Math.PI / 2),\n },\n bottom: {\n direction: Vector3.down(),\n quaternion: Quaternion.fromAxisAngle(Vector3.left(), -Math.PI / 2),\n },\n};\n\ninterface TriadAxisProps {\n label: string;\n length: number;\n rotationAxis: Vector3.Vector3;\n}\n\nexport const TriadAxis: FunctionalComponent<TriadAxisProps> = ({\n label,\n length,\n rotationAxis,\n}) => {\n const axisStyles = { width: `${length + 5}px` };\n const quaternion = Quaternion.fromAxisAngle(rotationAxis, Math.PI / 2);\n const labelPos = Vector3.scale(length + 15, Vector3.right());\n\n return (\n <Fragment>\n <vertex-viewer-dom-group quaternion={quaternion}>\n <vertex-viewer-dom-element\n style={axisStyles}\n billboardOff\n interactionsOff\n >\n <div class={`triad-axis triad-axis-${label.toLowerCase()}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n rotation={Euler.create({ x: Math.PI / 2, y: 0, z: 0 })}\n style={axisStyles}\n billboardOff\n interactionsOff\n >\n <div class={`triad-axis triad-axis-${label.toLowerCase()}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element position={labelPos} interactionsOff>\n <div class={`triad-label triad-label-${label.toLowerCase()}`}>\n {label}\n </div>\n </vertex-viewer-dom-element>\n </vertex-viewer-dom-group>\n </Fragment>\n );\n};\n\ninterface ViewCubeSideProps {\n label: string;\n length: number;\n side: ViewCubeSide;\n disabled: boolean;\n onPointerDown?: (event: MouseEvent) => void;\n}\n\nexport const ViewCubeSide: FunctionalComponent<ViewCubeSideProps> = ({\n label,\n length,\n side,\n disabled,\n onPointerDown,\n}) => {\n const { direction, quaternion } = viewCubeSides[side];\n const position = Vector3.scale(length / 2 - 0.1, direction);\n\n return (\n <vertex-viewer-dom-element\n class={classNames('cube-side', { disabled })}\n position={position}\n quaternion={quaternion}\n style={{ width: `${length}px`, height: `${length}px` }}\n onPointerDown={onPointerDown}\n billboardOff\n >\n <div class={`cube-side-face cube-side-face-${label.toLowerCase()}`}>\n {label}\n </div>\n </vertex-viewer-dom-element>\n );\n};\n\ninterface ViewCubeCornerProps {\n length: number;\n face1Side: ViewCubeSide;\n face1Corner: Corner;\n face2Side: ViewCubeSide;\n face2Corner: Corner;\n face3Side: ViewCubeSide;\n face3Corner: Corner;\n disabled: boolean;\n onPointerDown?: (event: MouseEvent) => void;\n}\n\nexport const ViewCubeCorner: FunctionalComponent<ViewCubeCornerProps> = ({\n length,\n face1Side,\n face1Corner,\n face2Side,\n face2Corner,\n face3Side,\n face3Corner,\n disabled,\n onPointerDown,\n}) => {\n const { direction: dir1, quaternion: rot1 } = viewCubeSides[face1Side];\n const { direction: dir2, quaternion: rot2 } = viewCubeSides[face2Side];\n const { direction: dir3, quaternion: rot3 } = viewCubeSides[face3Side];\n\n const position1 = Vector3.scale(length / 2, dir1);\n const position2 = Vector3.scale(length / 2, dir2);\n const position3 = Vector3.scale(length / 2, dir3);\n\n const styles = { width: `${length}px`, height: `${length}px` };\n\n return (\n <vertex-viewer-dom-group\n class={classNames('cube-corner', { disabled })}\n onPointerDown={onPointerDown}\n >\n <vertex-viewer-dom-element\n position={position1}\n quaternion={rot1}\n style={styles}\n billboardOff\n >\n <div class={`cube-corner-face ${face1Corner}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n position={position2}\n quaternion={rot2}\n style={styles}\n billboardOff\n >\n <div class={`cube-corner-face ${face2Corner}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n position={position3}\n quaternion={rot3}\n style={styles}\n billboardOff\n >\n <div class={`cube-corner-face ${face3Corner}`} />\n </vertex-viewer-dom-element>\n </vertex-viewer-dom-group>\n );\n};\n\ninterface ViewCubeEdgeProps {\n length: number;\n face1Side: ViewCubeSide;\n face2Side: ViewCubeSide;\n face1Edge: FaceEdge;\n face2Edge: FaceEdge;\n disabled: boolean;\n onPointerDown?: (event: MouseEvent) => void;\n}\n\nexport const ViewCubeEdge: FunctionalComponent<ViewCubeEdgeProps> = ({\n length,\n face1Side,\n face2Side,\n face1Edge,\n face2Edge,\n disabled,\n onPointerDown,\n}) => {\n const { direction: dir1, quaternion: rot1 } = viewCubeSides[face1Side];\n const { direction: dir2, quaternion: rot2 } = viewCubeSides[face2Side];\n const position1 = Vector3.scale(length / 2, dir1);\n const position2 = Vector3.scale(length / 2, dir2);\n const styles = { width: `${length}px`, height: `${length}px` };\n\n return (\n <vertex-viewer-dom-group\n class={classNames('cube-edge', { disabled })}\n onPointerDown={onPointerDown}\n >\n <vertex-viewer-dom-element\n position={position1}\n quaternion={rot1}\n style={styles}\n billboardOff\n >\n <div class={`cube-edge-face ${face1Edge}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n position={position2}\n quaternion={rot2}\n style={styles}\n billboardOff\n >\n <div class={`cube-edge-face ${face2Edge}`} />\n </vertex-viewer-dom-element>\n </vertex-viewer-dom-group>\n );\n};\n\ninterface ViewCubeShadowProps {\n length: number;\n}\n\nexport const ViewCubeShadow: FunctionalComponent<ViewCubeShadowProps> = ({\n length,\n}) => {\n const { direction, quaternion } = viewCubeSides.top;\n const position = Vector3.scale(-length / 2, direction);\n\n return (\n <vertex-viewer-dom-element\n class=\"cube-shadow\"\n position={position}\n quaternion={quaternion}\n style={{ width: `${length}px`, height: `${length}px` }}\n billboardOff\n interactionsOff\n >\n <div class=\"cube-shadow-face\" />\n </vertex-viewer-dom-element>\n );\n};\n",":host {\n /**\n * @prop --viewer-view-cube-side-background: A CSS background value that\n * defines the background of a side of the cube.\n */\n --viewer-view-cube-side-background: var(--white);\n\n /**\n * @prop --viewer-view-cube-side-background-hover: A CSS background value that\n * defines the background of the hovered side of the cube. Note, the hover\n * background is rendered on-top of the side's background.\n */\n --viewer-view-cube-side-background-hover: var(--blue-500);\n\n /**\n * @prop --viewer-view-cube-side-background-hover-opacity: A CSS number that\n * defines the opacity of the background for a hovered side of the cube.\n */\n --viewer-view-cube-side-background-hover-opacity: 0.25;\n\n /**\n * @prop --viewer-view-cube-side-border: A CSS border value that defines the\n * border of each side of the cube.\n */\n --viewer-view-cube-side-border: 1.5px solid var(--neutral-500);\n\n /**\n * @prop --viewer-view-cube-edge-length: A CSS length value that defines the\n * size of an edge when hovered.\n */\n --viewer-view-cube-edge-length: 12px;\n\n /**\n * @prop --viewer-view-cube-opacity: A CSS opacity for when the cube is not\n * hovered.\n */\n --viewer-view-cube-opacity: 0.8;\n\n /**\n * @prop --viewer-view-cube-triad-x-axis-color: A CSS color for the X axis of\n * the triad\n */\n --viewer-view-cube-triad-x-axis-color: var(--x-axis-color);\n\n /**\n * @prop --viewer-view-cube-triad-y-axis-color: A CSS color for the Y axis of\n * the triad\n */\n --viewer-view-cube-triad-y-axis-color: var(--y-axis-color);\n\n /**\n * @prop --viewer-view-cube-triad-z-axis-color: A CSS color for the Z axis of\n * the triad\n */\n --viewer-view-cube-triad-z-axis-color: var(--z-axis-color);\n\n color: var(--neutral-700);\n width: 80px;\n height: 80px;\n margin: 20px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n}\n\n.renderer {\n position: unset;\n width: 100%;\n height: 100%;\n overflow: visible !important;\n}\n\n.reference-point {\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background-color: black;\n}\n\n.triad {\n pointer-events: none;\n}\n\n.triad-axis {\n width: 100%;\n height: 1.5px;\n outline: 1px solid transparent;\n transform: translateX(50%);\n}\n.triad-axis-x {\n background-color: #ea3324;\n}\n.triad-axis-y {\n background-color: #4faf32;\n}\n.triad-axis-z {\n background-color: #0000ff;\n}\n\n.triad-label {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 0.6875rem;\n}\n.triad-label-x {\n color: var(--viewer-view-cube-triad-x-axis-color);\n}\n.triad-label-y {\n color: var(--viewer-view-cube-triad-y-axis-color);\n}\n.triad-label-z {\n color: var(--viewer-view-cube-triad-z-axis-color);\n}\n\n.cube {\n pointer-events: initial;\n}\n.cube:hover .cube-side-face {\n opacity: 1;\n}\n\n.cube-side {\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n}\n.cube-side-face {\n box-sizing: border-box;\n font-size: 0.875rem;\n text-transform: uppercase;\n width: 100%;\n height: 100%;\n background-color: var(--viewer-view-cube-side-background);\n border: var(--viewer-view-cube-side-border);\n display: flex;\n align-items: center;\n justify-content: center;\n outline: 1px solid transparent;\n opacity: var(--viewer-view-cube-opacity);\n transition: opacity 0.2s ease-in-out;\n}\n.cube-side-face::before {\n content: '';\n position: absolute;\n left: calc(var(--viewer-view-cube-edge-length) - 4px);\n right: calc(var(--viewer-view-cube-edge-length) - 4px);\n top: calc(var(--viewer-view-cube-edge-length) - 4px);\n bottom: calc(var(--viewer-view-cube-edge-length) - 4px);\n}\n\n.cube-corner,\n.cube-edge {\n position: relative;\n}\n\n.cube-corner-face,\n.cube-edge-face {\n position: absolute;\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n}\n.cube-edge-face.top {\n top: 0;\n left: var(--viewer-view-cube-edge-length);\n right: var(--viewer-view-cube-edge-length);\n height: var(--viewer-view-cube-edge-length);\n}\n.cube-edge-face.bottom {\n bottom: 0;\n left: var(--viewer-view-cube-edge-length);\n right: var(--viewer-view-cube-edge-length);\n height: var(--viewer-view-cube-edge-length);\n}\n.cube-edge-face.left {\n left: 0;\n top: var(--viewer-view-cube-edge-length);\n bottom: var(--viewer-view-cube-edge-length);\n width: var(--viewer-view-cube-edge-length);\n}\n.cube-edge-face.right {\n right: 0;\n top: var(--viewer-view-cube-edge-length);\n bottom: var(--viewer-view-cube-edge-length);\n width: var(--viewer-view-cube-edge-length);\n}\n\n.cube-corner-face {\n width: var(--viewer-view-cube-edge-length);\n height: var(--viewer-view-cube-edge-length);\n}\n.cube-corner-face.top-left {\n top: 0;\n left: 0;\n}\n.cube-corner-face.top-right {\n top: 0;\n right: 0;\n}\n.cube-corner-face.bottom-right {\n bottom: 0;\n right: 0;\n}\n.cube-corner-face.bottom-left {\n bottom: 0;\n left: 0;\n}\n\n.cube-shadow {\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n}\n.cube-shadow-face {\n position: absolute;\n left: 4px;\n right: 4px;\n top: 4px;\n bottom: 4px;\n background-color: black;\n opacity: 0.12;\n filter: blur(4px);\n}\n\n.cube-side-face,\n.cube-corner-face,\n.cube-edge-face {\n pointer-events: initial;\n}\n\n.cube-corner .cube-corner-face,\n.cube-edge .cube-edge-face,\n.cube-side .cube-side-face::before {\n background: var(--viewer-view-cube-side-background-hover);\n opacity: 0;\n}\n\n.cube-corner:hover .cube-corner-face,\n.cube-edge:hover .cube-edge-face,\n.cube-side:hover .cube-side-face::before {\n opacity: var(--viewer-view-cube-side-background-hover-opacity);\n}\n\n.cube-corner.disabled,\n.cube-edge.disabled,\n.cube-side.disabled {\n pointer-events: none;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\n\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { Vector3 } from '@vertexvis/geometry';\n\nimport { readDOM } from '../../lib/stencil';\nimport {\n FramePerspectiveCamera,\n Orientation,\n StandardView,\n} from '../../lib/types';\nimport {\n TriadAxis,\n ViewCubeCorner,\n ViewCubeEdge,\n ViewCubeShadow,\n ViewCubeSide,\n} from './viewer-view-cube-components';\n\n@Component({\n tag: 'vertex-viewer-view-cube',\n styleUrl: 'viewer-view-cube.css',\n shadow: true,\n})\nexport class ViewerViewCube {\n private rendererEl?: HTMLVertexViewerDomRendererElement;\n\n @State()\n private boxLength = 80;\n\n @State()\n private triadPosition = Vector3.origin();\n\n /**\n * The label for the side of the cube on the positive x-axis.\n */\n @Prop()\n public xPositiveLabel = 'Right';\n\n /**\n * The label for the side of the cube on the negative x-axis.\n */\n @Prop()\n public xNegativeLabel = 'Left';\n\n /**\n * The label for the side of the cube on the positive y-axis.\n */\n @Prop()\n public yPositiveLabel = 'Top';\n\n /**\n * The label for the side of the cube on the negative y-axis.\n */\n @Prop()\n public yNegativeLabel = 'Bottom';\n\n /**\n * The label for the side of the cube on the positive z-axis.\n */\n @Prop()\n public zPositiveLabel = 'Front';\n\n /**\n * The label for the side of the cube on the negative z-axis.\n */\n @Prop()\n public zNegativeLabel = 'Back';\n\n /**\n * Disables interactions for standard views.\n */\n @Prop()\n public standardViewsOff = false;\n\n /**\n * Whether to perform a `viewAll` when clicking on the view cube. If this\n * is set to `false`, the current `lookAt` point will be maintained, and the\n * camera's `position` and `up` vectors will be aligned to the standard view.\n * Defaults to `true`.\n *\n * **Note** Setting this value to `false` can result in the camera being placed\n * underneath geometry depending on the current `viewVector` length, resulting\n * in a view that may be unexpected.\n */\n @Prop()\n public viewAll = true;\n\n /**\n * The duration of the animation, in milliseconds, when a user performs a\n * standard view interaction. Set to 0 to disable animations.\n */\n @Prop()\n public animationDuration = 500;\n\n /**\n * Disables the display of the triad.\n */\n @Prop()\n public triadOff = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public worldOrientation: Orientation = Orientation.DEFAULT;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public camera?: FramePerspectiveCamera;\n\n /**\n * The viewer element that is connected to the view cube.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n @Watch('viewer')\n protected handleViewerChanged(\n newViewer?: HTMLVertexViewerElement,\n oldViewer?: HTMLVertexViewerElement\n ): void {\n oldViewer?.removeEventListener('frameDrawn', this.updateMatrices);\n newViewer?.addEventListener('frameDrawn', this.updateMatrices);\n this.updateMatrices();\n }\n\n private updateMatrices = (): void => {\n if (this.viewer?.frame != null) {\n const { camera } = this.viewer.frame.scene;\n\n const halfLength = this.boxLength / 2;\n this.triadPosition = Vector3.create(\n -halfLength - 5,\n -halfLength - 5,\n -halfLength - 5\n );\n\n // Used to scale the camera position so the cube is the same size as the\n // container. This isn't exact, but pretty close.\n const lengthScalar = 3.125;\n const scale = this.boxLength * lengthScalar;\n const fovY = 21.5;\n\n this.camera = new FramePerspectiveCamera(\n Vector3.scale(scale, Vector3.negate(camera.direction)),\n Vector3.origin(),\n camera.up,\n 0.1,\n 100,\n 1,\n fovY\n );\n\n this.worldOrientation = this.viewer.frame.scene.worldOrientation;\n }\n };\n\n private handleStandardView(standardView: StandardView): () => Promise<void> {\n if (this.standardViewsOff) {\n return async () => undefined;\n } else {\n return async () => {\n if (this.viewer != null) {\n const scene = await this.viewer.scene();\n const animation =\n this.animationDuration > 0\n ? { animation: { milliseconds: this.animationDuration } }\n : {};\n const worldStandardView = standardView.transformMatrix(\n this.worldOrientation.matrix\n );\n\n // Check to see if any geometry is visible. If not, don't perform viewAll\n const currentBoundingBox = scene.boundingBox();\n if (!this.viewAll) {\n scene\n .camera()\n .standardViewFixedLookAt(worldStandardView)\n .render(animation);\n } else if (\n currentBoundingBox?.max != null &&\n Vector3.isEqual(currentBoundingBox.max, Vector3.origin()) &&\n Vector3.isEqual(currentBoundingBox.min, Vector3.origin())\n ) {\n scene.camera().standardView(worldStandardView).render(animation);\n } else {\n scene\n .camera()\n .standardView(worldStandardView)\n .viewAll()\n .render(animation);\n }\n }\n };\n }\n }\n\n /**\n * @ignore\n */\n protected componentWillLoad(): void {\n this.handleViewerChanged(this.viewer);\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n if (this.rendererEl != null) {\n const observer = new ResizeObserver(() => this.handleRendererResized());\n observer.observe(this.rendererEl);\n this.handleRendererResized();\n }\n }\n\n private handleRendererResized(): void {\n readDOM(() => {\n if (this.rendererEl != null) {\n const rect = this.rendererEl.getBoundingClientRect();\n this.boxLength = Math.min(rect.width, rect.height);\n }\n });\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <vertex-viewer-dom-renderer\n ref={(ref) => (this.rendererEl = ref)}\n class=\"renderer\"\n camera={this.camera}\n >\n {/* Triad */}\n {!this.triadOff && (\n <vertex-viewer-dom-group\n class=\"triad\"\n position={this.triadPosition}\n >\n <TriadAxis\n label=\"X\"\n length={this.boxLength}\n rotationAxis={Vector3.origin()}\n />\n <TriadAxis\n label=\"Y\"\n length={this.boxLength}\n rotationAxis={Vector3.back()}\n />\n <TriadAxis\n label=\"Z\"\n length={this.boxLength}\n rotationAxis={Vector3.down()}\n />\n </vertex-viewer-dom-group>\n )}\n\n {/* Cube */}\n <vertex-viewer-dom-group\n class=\"cube\"\n matrix={this.worldOrientation.matrix}\n >\n <ViewCubeShadow length={this.boxLength + 10} />\n\n {/* Sides */}\n <ViewCubeSide\n label={this.zPositiveLabel}\n length={this.boxLength}\n side=\"front\"\n onPointerDown={this.handleStandardView(StandardView.FRONT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.zNegativeLabel}\n length={this.boxLength}\n side=\"back\"\n onPointerDown={this.handleStandardView(StandardView.BACK)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.xNegativeLabel}\n length={this.boxLength}\n side=\"left\"\n onPointerDown={this.handleStandardView(StandardView.LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.xPositiveLabel}\n length={this.boxLength}\n side=\"right\"\n onPointerDown={this.handleStandardView(StandardView.RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.yPositiveLabel}\n length={this.boxLength}\n side=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.yNegativeLabel}\n length={this.boxLength}\n side=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM)}\n disabled={this.standardViewsOff}\n />\n\n {/* Edges */}\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"bottom\"\n face2Side=\"front\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_FRONT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"front\"\n face1Edge=\"right\"\n face2Side=\"right\"\n face2Edge=\"left\"\n onPointerDown={this.handleStandardView(StandardView.FRONT_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"top\"\n face2Side=\"front\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_FRONT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"front\"\n face1Edge=\"left\"\n face2Side=\"left\"\n face2Edge=\"right\"\n onPointerDown={this.handleStandardView(StandardView.FRONT_RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"right\"\n face2Side=\"right\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"back\"\n face1Edge=\"left\"\n face2Side=\"right\"\n face2Edge=\"right\"\n onPointerDown={this.handleStandardView(StandardView.BACK_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"right\"\n face2Side=\"right\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"top\"\n face2Side=\"back\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_BACK)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"back\"\n face1Edge=\"right\"\n face2Side=\"left\"\n face2Edge=\"left\"\n onPointerDown={this.handleStandardView(StandardView.BACK_RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"bottom\"\n face2Side=\"back\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_BACK)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"left\"\n face2Side=\"left\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"left\"\n face2Side=\"left\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_RIGHT)}\n disabled={this.standardViewsOff}\n />\n\n {/* Corners */}\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"bottom-left\"\n face2Side=\"front\"\n face2Corner=\"top-left\"\n face3Side=\"left\"\n face3Corner=\"top-right\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_FRONT_RIGHT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"bottom-right\"\n face2Side=\"front\"\n face2Corner=\"top-right\"\n face3Side=\"right\"\n face3Corner=\"top-left\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_FRONT_LEFT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"top-right\"\n face2Side=\"front\"\n face2Corner=\"bottom-right\"\n face3Side=\"right\"\n face3Corner=\"bottom-left\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_FRONT_LEFT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"top-left\"\n face2Side=\"front\"\n face2Corner=\"bottom-left\"\n face3Side=\"left\"\n face3Corner=\"bottom-right\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_FRONT_RIGHT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"top-right\"\n face2Side=\"back\"\n face2Corner=\"top-left\"\n face3Side=\"right\"\n face3Corner=\"top-right\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_BACK_LEFT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"top-left\"\n face2Side=\"back\"\n face2Corner=\"top-right\"\n face3Side=\"left\"\n face3Corner=\"top-left\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_BACK_RIGHT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"bottom-left\"\n face2Side=\"back\"\n face2Corner=\"bottom-right\"\n face3Side=\"left\"\n face3Corner=\"bottom-left\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_BACK_RIGHT\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"bottom-right\"\n face2Side=\"back\"\n face2Corner=\"bottom-left\"\n face3Side=\"right\"\n face3Corner=\"bottom-right\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_BACK_LEFT\n )}\n disabled={this.standardViewsOff}\n />\n </vertex-viewer-dom-group>\n </vertex-viewer-dom-renderer>\n </Host>\n );\n }\n}\n"],"names":["Vector3","Quaternion","quaternion","Euler","classNames"],"mappings":"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"}
1
+ {"version":3,"file":"vertex-viewer-view-cube.entry.js","sources":["src/components/viewer-view-cube/viewer-view-cube-components.tsx","src/components/viewer-view-cube/viewer-view-cube.css?tag=vertex-viewer-view-cube&encapsulation=shadow","src/components/viewer-view-cube/viewer-view-cube.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport { Fragment, FunctionalComponent, h } from '@stencil/core';\nimport { Euler, Quaternion, Vector3 } from '@vertexvis/geometry';\nimport classNames from 'classnames';\n\ntype FaceEdge = 'top' | 'bottom' | 'left' | 'right';\n\ntype Corner = 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left';\n\ntype ViewCubeSide = 'front' | 'back' | 'left' | 'right' | 'top' | 'bottom';\n\ninterface ViewCubeSideData {\n direction: Vector3.Vector3;\n quaternion: Quaternion.Quaternion;\n}\n\nconst viewCubeSides: Record<ViewCubeSide, ViewCubeSideData> = {\n front: {\n direction: Vector3.back(),\n quaternion: Quaternion.create(),\n },\n back: {\n direction: Vector3.forward(),\n quaternion: Quaternion.fromAxisAngle(Vector3.up(), Math.PI),\n },\n left: {\n direction: Vector3.left(),\n quaternion: Quaternion.fromAxisAngle(Vector3.down(), Math.PI / 2),\n },\n right: {\n direction: Vector3.right(),\n quaternion: Quaternion.fromAxisAngle(Vector3.up(), Math.PI / 2),\n },\n top: {\n direction: Vector3.up(),\n quaternion: Quaternion.fromAxisAngle(Vector3.right(), -Math.PI / 2),\n },\n bottom: {\n direction: Vector3.down(),\n quaternion: Quaternion.fromAxisAngle(Vector3.left(), -Math.PI / 2),\n },\n};\n\ninterface TriadAxisProps {\n label: string;\n length: number;\n rotationAxis: Vector3.Vector3;\n}\n\nexport const TriadAxis: FunctionalComponent<TriadAxisProps> = ({\n label,\n length,\n rotationAxis,\n}) => {\n const axisStyles = { width: `${length + 5}px` };\n const quaternion = Quaternion.fromAxisAngle(rotationAxis, Math.PI / 2);\n const labelPos = Vector3.scale(length + 15, Vector3.right());\n\n return (\n <Fragment>\n <vertex-viewer-dom-group quaternion={quaternion}>\n <vertex-viewer-dom-element\n style={axisStyles}\n billboardOff\n interactionsOff\n >\n <div class={`triad-axis triad-axis-${label.toLowerCase()}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n rotation={Euler.create({ x: Math.PI / 2, y: 0, z: 0 })}\n style={axisStyles}\n billboardOff\n interactionsOff\n >\n <div class={`triad-axis triad-axis-${label.toLowerCase()}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element position={labelPos} interactionsOff>\n <div class={`triad-label triad-label-${label.toLowerCase()}`}>\n {label}\n </div>\n </vertex-viewer-dom-element>\n </vertex-viewer-dom-group>\n </Fragment>\n );\n};\n\ninterface ViewCubeSideProps {\n label: string;\n length: number;\n side: ViewCubeSide;\n disabled: boolean;\n onPointerDown?: (event: MouseEvent) => void;\n}\n\nexport const ViewCubeSide: FunctionalComponent<ViewCubeSideProps> = ({\n label,\n length,\n side,\n disabled,\n onPointerDown,\n}) => {\n const { direction, quaternion } = viewCubeSides[side];\n const position = Vector3.scale(length / 2 - 0.1, direction);\n\n return (\n <vertex-viewer-dom-element\n class={classNames('cube-side', { disabled })}\n position={position}\n quaternion={quaternion}\n style={{ width: `${length}px`, height: `${length}px` }}\n onPointerDown={onPointerDown}\n billboardOff\n >\n <div class={`cube-side-face cube-side-face-${label.toLowerCase()}`}>\n {label}\n </div>\n </vertex-viewer-dom-element>\n );\n};\n\ninterface ViewCubeCornerProps {\n length: number;\n face1Side: ViewCubeSide;\n face1Corner: Corner;\n face2Side: ViewCubeSide;\n face2Corner: Corner;\n face3Side: ViewCubeSide;\n face3Corner: Corner;\n disabled: boolean;\n onPointerDown?: (event: MouseEvent) => void;\n}\n\nexport const ViewCubeCorner: FunctionalComponent<ViewCubeCornerProps> = ({\n length,\n face1Side,\n face1Corner,\n face2Side,\n face2Corner,\n face3Side,\n face3Corner,\n disabled,\n onPointerDown,\n}) => {\n const { direction: dir1, quaternion: rot1 } = viewCubeSides[face1Side];\n const { direction: dir2, quaternion: rot2 } = viewCubeSides[face2Side];\n const { direction: dir3, quaternion: rot3 } = viewCubeSides[face3Side];\n\n const position1 = Vector3.scale(length / 2, dir1);\n const position2 = Vector3.scale(length / 2, dir2);\n const position3 = Vector3.scale(length / 2, dir3);\n\n const styles = { width: `${length}px`, height: `${length}px` };\n\n return (\n <vertex-viewer-dom-group\n class={classNames('cube-corner', { disabled })}\n onPointerDown={onPointerDown}\n >\n <vertex-viewer-dom-element\n position={position1}\n quaternion={rot1}\n style={styles}\n billboardOff\n >\n <div class={`cube-corner-face ${face1Corner}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n position={position2}\n quaternion={rot2}\n style={styles}\n billboardOff\n >\n <div class={`cube-corner-face ${face2Corner}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n position={position3}\n quaternion={rot3}\n style={styles}\n billboardOff\n >\n <div class={`cube-corner-face ${face3Corner}`} />\n </vertex-viewer-dom-element>\n </vertex-viewer-dom-group>\n );\n};\n\ninterface ViewCubeEdgeProps {\n length: number;\n face1Side: ViewCubeSide;\n face2Side: ViewCubeSide;\n face1Edge: FaceEdge;\n face2Edge: FaceEdge;\n disabled: boolean;\n onPointerDown?: (event: MouseEvent) => void;\n}\n\nexport const ViewCubeEdge: FunctionalComponent<ViewCubeEdgeProps> = ({\n length,\n face1Side,\n face2Side,\n face1Edge,\n face2Edge,\n disabled,\n onPointerDown,\n}) => {\n const { direction: dir1, quaternion: rot1 } = viewCubeSides[face1Side];\n const { direction: dir2, quaternion: rot2 } = viewCubeSides[face2Side];\n const position1 = Vector3.scale(length / 2, dir1);\n const position2 = Vector3.scale(length / 2, dir2);\n const styles = { width: `${length}px`, height: `${length}px` };\n\n return (\n <vertex-viewer-dom-group\n class={classNames('cube-edge', { disabled })}\n onPointerDown={onPointerDown}\n >\n <vertex-viewer-dom-element\n position={position1}\n quaternion={rot1}\n style={styles}\n billboardOff\n >\n <div class={`cube-edge-face ${face1Edge}`} />\n </vertex-viewer-dom-element>\n <vertex-viewer-dom-element\n position={position2}\n quaternion={rot2}\n style={styles}\n billboardOff\n >\n <div class={`cube-edge-face ${face2Edge}`} />\n </vertex-viewer-dom-element>\n </vertex-viewer-dom-group>\n );\n};\n\ninterface ViewCubeShadowProps {\n length: number;\n}\n\nexport const ViewCubeShadow: FunctionalComponent<ViewCubeShadowProps> = ({\n length,\n}) => {\n const { direction, quaternion } = viewCubeSides.top;\n const position = Vector3.scale(-length / 2, direction);\n\n return (\n <vertex-viewer-dom-element\n class=\"cube-shadow\"\n position={position}\n quaternion={quaternion}\n style={{ width: `${length}px`, height: `${length}px` }}\n billboardOff\n interactionsOff\n >\n <div class=\"cube-shadow-face\" />\n </vertex-viewer-dom-element>\n );\n};\n",":host {\n /**\n * @prop --viewer-view-cube-side-background: A CSS background value that\n * defines the background of a side of the cube.\n */\n --viewer-view-cube-side-background: var(--white);\n\n /**\n * @prop --viewer-view-cube-side-background-hover: A CSS background value that\n * defines the background of the hovered side of the cube. Note, the hover\n * background is rendered on-top of the side's background.\n */\n --viewer-view-cube-side-background-hover: var(--blue-500);\n\n /**\n * @prop --viewer-view-cube-side-background-hover-opacity: A CSS number that\n * defines the opacity of the background for a hovered side of the cube.\n */\n --viewer-view-cube-side-background-hover-opacity: 0.25;\n\n /**\n * @prop --viewer-view-cube-side-border: A CSS border value that defines the\n * border of each side of the cube.\n */\n --viewer-view-cube-side-border: 1.5px solid var(--neutral-500);\n\n /**\n * @prop --viewer-view-cube-edge-length: A CSS length value that defines the\n * size of an edge when hovered.\n */\n --viewer-view-cube-edge-length: 12px;\n\n /**\n * @prop --viewer-view-cube-opacity: A CSS opacity for when the cube is not\n * hovered.\n */\n --viewer-view-cube-opacity: 0.8;\n\n /**\n * @prop --viewer-view-cube-triad-x-axis-color: A CSS color for the X axis of\n * the triad\n */\n --viewer-view-cube-triad-x-axis-color: var(--x-axis-color);\n\n /**\n * @prop --viewer-view-cube-triad-y-axis-color: A CSS color for the Y axis of\n * the triad\n */\n --viewer-view-cube-triad-y-axis-color: var(--y-axis-color);\n\n /**\n * @prop --viewer-view-cube-triad-z-axis-color: A CSS color for the Z axis of\n * the triad\n */\n --viewer-view-cube-triad-z-axis-color: var(--z-axis-color);\n\n color: var(--neutral-700);\n width: 80px;\n height: 80px;\n margin: 20px;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n user-select: none;\n}\n\n.renderer {\n position: unset;\n width: 100%;\n height: 100%;\n overflow: visible !important;\n}\n\n.reference-point {\n width: 5px;\n height: 5px;\n border-radius: 50%;\n background-color: black;\n}\n\n.triad {\n pointer-events: none;\n}\n\n.triad-axis {\n width: 100%;\n height: 1.5px;\n outline: 1px solid transparent;\n transform: translateX(50%);\n}\n.triad-axis-x {\n background-color: #ea3324;\n}\n.triad-axis-y {\n background-color: #4faf32;\n}\n.triad-axis-z {\n background-color: #0000ff;\n}\n\n.triad-label {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 0.6875rem;\n}\n.triad-label-x {\n color: var(--viewer-view-cube-triad-x-axis-color);\n}\n.triad-label-y {\n color: var(--viewer-view-cube-triad-y-axis-color);\n}\n.triad-label-z {\n color: var(--viewer-view-cube-triad-z-axis-color);\n}\n\n.cube {\n pointer-events: initial;\n}\n.cube:hover .cube-side-face {\n opacity: 1;\n}\n\n.cube-side {\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n}\n.cube-side-face {\n box-sizing: border-box;\n font-size: 0.875rem;\n text-transform: uppercase;\n width: 100%;\n height: 100%;\n background-color: var(--viewer-view-cube-side-background);\n border: var(--viewer-view-cube-side-border);\n display: flex;\n align-items: center;\n justify-content: center;\n outline: 1px solid transparent;\n opacity: var(--viewer-view-cube-opacity);\n transition: opacity 0.2s ease-in-out;\n}\n.cube-side-face::before {\n content: '';\n position: absolute;\n left: calc(var(--viewer-view-cube-edge-length) - 4px);\n right: calc(var(--viewer-view-cube-edge-length) - 4px);\n top: calc(var(--viewer-view-cube-edge-length) - 4px);\n bottom: calc(var(--viewer-view-cube-edge-length) - 4px);\n}\n\n.cube-corner,\n.cube-edge {\n position: relative;\n}\n\n.cube-corner-face,\n.cube-edge-face {\n position: absolute;\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n}\n.cube-edge-face.top {\n top: 0;\n left: var(--viewer-view-cube-edge-length);\n right: var(--viewer-view-cube-edge-length);\n height: var(--viewer-view-cube-edge-length);\n}\n.cube-edge-face.bottom {\n bottom: 0;\n left: var(--viewer-view-cube-edge-length);\n right: var(--viewer-view-cube-edge-length);\n height: var(--viewer-view-cube-edge-length);\n}\n.cube-edge-face.left {\n left: 0;\n top: var(--viewer-view-cube-edge-length);\n bottom: var(--viewer-view-cube-edge-length);\n width: var(--viewer-view-cube-edge-length);\n}\n.cube-edge-face.right {\n right: 0;\n top: var(--viewer-view-cube-edge-length);\n bottom: var(--viewer-view-cube-edge-length);\n width: var(--viewer-view-cube-edge-length);\n}\n\n.cube-corner-face {\n width: var(--viewer-view-cube-edge-length);\n height: var(--viewer-view-cube-edge-length);\n}\n.cube-corner-face.top-left {\n top: 0;\n left: 0;\n}\n.cube-corner-face.top-right {\n top: 0;\n right: 0;\n}\n.cube-corner-face.bottom-right {\n bottom: 0;\n right: 0;\n}\n.cube-corner-face.bottom-left {\n bottom: 0;\n left: 0;\n}\n\n.cube-shadow {\n backface-visibility: hidden;\n -webkit-backface-visibility: hidden;\n}\n.cube-shadow-face {\n position: absolute;\n left: 4px;\n right: 4px;\n top: 4px;\n bottom: 4px;\n background-color: black;\n opacity: 0.12;\n filter: blur(4px);\n}\n\n.cube-side-face,\n.cube-corner-face,\n.cube-edge-face {\n pointer-events: initial;\n}\n\n.cube-corner .cube-corner-face,\n.cube-edge .cube-edge-face,\n.cube-side .cube-side-face::before {\n background: var(--viewer-view-cube-side-background-hover);\n opacity: 0;\n}\n\n.cube-corner:hover .cube-corner-face,\n.cube-edge:hover .cube-edge-face,\n.cube-side:hover .cube-side-face::before {\n opacity: var(--viewer-view-cube-side-background-hover-opacity);\n}\n\n.cube-corner.disabled,\n.cube-edge.disabled,\n.cube-side.disabled {\n pointer-events: none;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\n\nimport { Component, h, Host, Prop, State, Watch } from '@stencil/core';\nimport { Vector3 } from '@vertexvis/geometry';\n\nimport { readDOM } from '../../lib/stencil';\nimport {\n FramePerspectiveCamera,\n Orientation,\n StandardView,\n} from '../../lib/types';\nimport {\n TriadAxis,\n ViewCubeCorner,\n ViewCubeEdge,\n ViewCubeShadow,\n ViewCubeSide,\n} from './viewer-view-cube-components';\n\n@Component({\n tag: 'vertex-viewer-view-cube',\n styleUrl: 'viewer-view-cube.css',\n shadow: true,\n})\nexport class ViewerViewCube {\n private rendererEl?: HTMLVertexViewerDomRendererElement;\n\n @State()\n private boxLength = 80;\n\n @State()\n private triadPosition = Vector3.origin();\n\n /**\n * The label for the side of the cube on the positive x-axis.\n */\n @Prop()\n public xPositiveLabel = 'Right';\n\n /**\n * The label for the side of the cube on the negative x-axis.\n */\n @Prop()\n public xNegativeLabel = 'Left';\n\n /**\n * The label for the side of the cube on the positive y-axis.\n */\n @Prop()\n public yPositiveLabel = 'Top';\n\n /**\n * The label for the side of the cube on the negative y-axis.\n */\n @Prop()\n public yNegativeLabel = 'Bottom';\n\n /**\n * The label for the side of the cube on the positive z-axis.\n */\n @Prop()\n public zPositiveLabel = 'Front';\n\n /**\n * The label for the side of the cube on the negative z-axis.\n */\n @Prop()\n public zNegativeLabel = 'Back';\n\n /**\n * Disables interactions for standard views.\n */\n @Prop()\n public standardViewsOff = false;\n\n /**\n * Whether to perform a `viewAll` when clicking on the view cube. If this\n * is set to `false`, the current `lookAt` point will be maintained, and the\n * camera's `position` and `up` vectors will be aligned to the standard view.\n * Defaults to `true`.\n *\n * **Note** Setting this value to `false` can result in the camera being placed\n * underneath geometry depending on the current `viewVector` length, resulting\n * in a view that may be unexpected.\n */\n @Prop()\n public viewAll = true;\n\n /**\n * The duration of the animation, in milliseconds, when a user performs a\n * standard view interaction. Set to 0 to disable animations.\n */\n @Prop()\n public animationDuration = 500;\n\n /**\n * Disables the display of the triad.\n */\n @Prop()\n public triadOff = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public worldOrientation: Orientation = Orientation.DEFAULT;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public camera?: FramePerspectiveCamera;\n\n /**\n * The viewer element that is connected to the view cube.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n @Watch('viewer')\n protected handleViewerChanged(\n newViewer?: HTMLVertexViewerElement,\n oldViewer?: HTMLVertexViewerElement,\n ): void {\n oldViewer?.removeEventListener('frameDrawn', this.updateMatrices);\n newViewer?.addEventListener('frameDrawn', this.updateMatrices);\n this.updateMatrices();\n }\n\n private updateMatrices = (): void => {\n if (this.viewer?.frame != null) {\n const { camera } = this.viewer.frame.scene;\n\n const halfLength = this.boxLength / 2;\n this.triadPosition = Vector3.create(\n -halfLength - 5,\n -halfLength - 5,\n -halfLength - 5,\n );\n\n // Used to scale the camera position so the cube is the same size as the\n // container. This isn't exact, but pretty close.\n const lengthScalar = 3.125;\n const scale = this.boxLength * lengthScalar;\n const fovY = 21.5;\n\n this.camera = new FramePerspectiveCamera(\n Vector3.scale(scale, Vector3.negate(camera.direction)),\n Vector3.origin(),\n camera.up,\n 0.1,\n 100,\n 1,\n fovY,\n );\n\n this.worldOrientation = this.viewer.frame.scene.worldOrientation;\n }\n };\n\n private handleStandardView(standardView: StandardView): () => Promise<void> {\n if (this.standardViewsOff) {\n return async () => undefined;\n } else {\n return async () => {\n if (this.viewer != null) {\n const scene = await this.viewer.scene();\n const animation =\n this.animationDuration > 0\n ? { animation: { milliseconds: this.animationDuration } }\n : {};\n const worldStandardView = standardView.transformMatrix(\n this.worldOrientation.matrix,\n );\n\n // Check to see if any geometry is visible. If not, don't perform viewAll\n const currentBoundingBox = scene.boundingBox();\n if (!this.viewAll) {\n scene\n .camera()\n .standardViewFixedLookAt(worldStandardView)\n .render(animation);\n } else if (\n currentBoundingBox?.max != null &&\n Vector3.isEqual(currentBoundingBox.max, Vector3.origin()) &&\n Vector3.isEqual(currentBoundingBox.min, Vector3.origin())\n ) {\n scene.camera().standardView(worldStandardView).render(animation);\n } else {\n scene\n .camera()\n .standardView(worldStandardView)\n .viewAll()\n .render(animation);\n }\n }\n };\n }\n }\n\n /**\n * @ignore\n */\n protected componentWillLoad(): void {\n this.handleViewerChanged(this.viewer);\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n if (this.rendererEl != null) {\n const observer = new ResizeObserver(() => this.handleRendererResized());\n observer.observe(this.rendererEl);\n this.handleRendererResized();\n }\n }\n\n private handleRendererResized(): void {\n readDOM(() => {\n if (this.rendererEl != null) {\n const rect = this.rendererEl.getBoundingClientRect();\n this.boxLength = Math.min(rect.width, rect.height);\n }\n });\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <vertex-viewer-dom-renderer\n ref={(ref) => (this.rendererEl = ref)}\n class=\"renderer\"\n camera={this.camera}\n >\n {/* Triad */}\n {!this.triadOff && (\n <vertex-viewer-dom-group\n class=\"triad\"\n position={this.triadPosition}\n >\n <TriadAxis\n label=\"X\"\n length={this.boxLength}\n rotationAxis={Vector3.origin()}\n />\n <TriadAxis\n label=\"Y\"\n length={this.boxLength}\n rotationAxis={Vector3.back()}\n />\n <TriadAxis\n label=\"Z\"\n length={this.boxLength}\n rotationAxis={Vector3.down()}\n />\n </vertex-viewer-dom-group>\n )}\n\n {/* Cube */}\n <vertex-viewer-dom-group\n class=\"cube\"\n matrix={this.worldOrientation.matrix}\n >\n <ViewCubeShadow length={this.boxLength + 10} />\n\n {/* Sides */}\n <ViewCubeSide\n label={this.zPositiveLabel}\n length={this.boxLength}\n side=\"front\"\n onPointerDown={this.handleStandardView(StandardView.FRONT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.zNegativeLabel}\n length={this.boxLength}\n side=\"back\"\n onPointerDown={this.handleStandardView(StandardView.BACK)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.xNegativeLabel}\n length={this.boxLength}\n side=\"left\"\n onPointerDown={this.handleStandardView(StandardView.LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.xPositiveLabel}\n length={this.boxLength}\n side=\"right\"\n onPointerDown={this.handleStandardView(StandardView.RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.yPositiveLabel}\n length={this.boxLength}\n side=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeSide\n label={this.yNegativeLabel}\n length={this.boxLength}\n side=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM)}\n disabled={this.standardViewsOff}\n />\n\n {/* Edges */}\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"bottom\"\n face2Side=\"front\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_FRONT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"front\"\n face1Edge=\"right\"\n face2Side=\"right\"\n face2Edge=\"left\"\n onPointerDown={this.handleStandardView(StandardView.FRONT_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"top\"\n face2Side=\"front\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_FRONT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"front\"\n face1Edge=\"left\"\n face2Side=\"left\"\n face2Edge=\"right\"\n onPointerDown={this.handleStandardView(StandardView.FRONT_RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"right\"\n face2Side=\"right\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"back\"\n face1Edge=\"left\"\n face2Side=\"right\"\n face2Edge=\"right\"\n onPointerDown={this.handleStandardView(StandardView.BACK_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"right\"\n face2Side=\"right\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_LEFT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"top\"\n face2Side=\"back\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_BACK)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"back\"\n face1Edge=\"right\"\n face2Side=\"left\"\n face2Edge=\"left\"\n onPointerDown={this.handleStandardView(StandardView.BACK_RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"bottom\"\n face2Side=\"back\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_BACK)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"top\"\n face1Edge=\"left\"\n face2Side=\"left\"\n face2Edge=\"top\"\n onPointerDown={this.handleStandardView(StandardView.TOP_RIGHT)}\n disabled={this.standardViewsOff}\n />\n <ViewCubeEdge\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Edge=\"left\"\n face2Side=\"left\"\n face2Edge=\"bottom\"\n onPointerDown={this.handleStandardView(StandardView.BOTTOM_RIGHT)}\n disabled={this.standardViewsOff}\n />\n\n {/* Corners */}\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"bottom-left\"\n face2Side=\"front\"\n face2Corner=\"top-left\"\n face3Side=\"left\"\n face3Corner=\"top-right\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_FRONT_RIGHT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"bottom-right\"\n face2Side=\"front\"\n face2Corner=\"top-right\"\n face3Side=\"right\"\n face3Corner=\"top-left\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_FRONT_LEFT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"top-right\"\n face2Side=\"front\"\n face2Corner=\"bottom-right\"\n face3Side=\"right\"\n face3Corner=\"bottom-left\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_FRONT_LEFT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"top-left\"\n face2Side=\"front\"\n face2Corner=\"bottom-left\"\n face3Side=\"left\"\n face3Corner=\"bottom-right\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_FRONT_RIGHT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"top-right\"\n face2Side=\"back\"\n face2Corner=\"top-left\"\n face3Side=\"right\"\n face3Corner=\"top-right\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_BACK_LEFT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"top\"\n face1Corner=\"top-left\"\n face2Side=\"back\"\n face2Corner=\"top-right\"\n face3Side=\"left\"\n face3Corner=\"top-left\"\n onPointerDown={this.handleStandardView(\n StandardView.TOP_BACK_RIGHT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"bottom-left\"\n face2Side=\"back\"\n face2Corner=\"bottom-right\"\n face3Side=\"left\"\n face3Corner=\"bottom-left\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_BACK_RIGHT,\n )}\n disabled={this.standardViewsOff}\n />\n <ViewCubeCorner\n length={this.boxLength}\n face1Side=\"bottom\"\n face1Corner=\"bottom-right\"\n face2Side=\"back\"\n face2Corner=\"bottom-left\"\n face3Side=\"right\"\n face3Corner=\"bottom-right\"\n onPointerDown={this.handleStandardView(\n StandardView.BOTTOM_BACK_LEFT,\n )}\n disabled={this.standardViewsOff}\n />\n </vertex-viewer-dom-group>\n </vertex-viewer-dom-renderer>\n </Host>\n );\n }\n}\n"],"names":["Vector3","Quaternion","quaternion","Euler","classNames"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"vertex-viewer-walk-mode-tool.entry.js","sources":["src/lib/walk-mode/dom.ts","src/lib/walk-mode/interactions.ts","src/components/viewer-walk-mode-tool/viewer-walk-mode-tool.css?tag=vertex-viewer-walk-mode-tool&encapsulation=shadow","src/components/viewer-walk-mode-tool/viewer-walk-mode-tool.tsx"],"sourcesContent":["export function targetIsElement(target: EventTarget | null): target is Element {\n return target instanceof Element;\n}\n","import { Vector3 } from '@vertexvis/geometry';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { InteractionApiPerspective, InteractionHandler } from '../interactions';\nimport { targetIsElement } from './dom';\nimport { ViewerWalkModeOperation, WalkModeModel } from './model';\n\nexport class WalkInteractionHandler implements InteractionHandler {\n private api?: InteractionApiPerspective;\n\n private interval?: NodeJS.Timeout;\n private pressed: Record<string, boolean> = {};\n private handlers: Record<ViewerWalkModeOperation, VoidFunction>;\n\n private enabledChangeDisposable?: Disposable;\n private keyBindingsChangeDisposable?: Disposable;\n private configurationChangeDisposable?: Disposable;\n\n public constructor(private model: WalkModeModel) {\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n this.handleEnabledChange = this.handleEnabledChange.bind(this);\n this.restartInteraction = this.restartInteraction.bind(this);\n this.updateCamera = this.updateCamera.bind(this);\n\n this.handlers = {\n [ViewerWalkModeOperation.MOVE_DOWN]: this.moveDown.bind(this),\n [ViewerWalkModeOperation.MOVE_UP]: this.moveUp.bind(this),\n [ViewerWalkModeOperation.PIVOT_DOWN]: this.pivotDown.bind(this),\n [ViewerWalkModeOperation.PIVOT_LEFT]: this.pivotLeft.bind(this),\n [ViewerWalkModeOperation.PIVOT_RIGHT]: this.pivotRight.bind(this),\n [ViewerWalkModeOperation.PIVOT_UP]: this.pivotUp.bind(this),\n [ViewerWalkModeOperation.WALK_BACKWARD]: this.walkBackward.bind(this),\n [ViewerWalkModeOperation.WALK_FORWARD]: this.walkForward.bind(this),\n [ViewerWalkModeOperation.WALK_LEFT]: this.walkLeft.bind(this),\n [ViewerWalkModeOperation.WALK_RIGHT]: this.walkRight.bind(this),\n };\n\n this.enabledChangeDisposable = this.model.onEnabledChange(\n this.handleEnabledChange\n );\n this.keyBindingsChangeDisposable = this.model.onKeyBindingsChange(\n this.restartInteraction\n );\n this.configurationChangeDisposable = this.model.onConfigurationChange(\n this.restartInteraction\n );\n }\n\n public dispose(): void {\n this.disable();\n this.enabledChangeDisposable?.dispose();\n this.keyBindingsChangeDisposable?.dispose();\n this.configurationChangeDisposable?.dispose();\n\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('keyup', this.handleKeyUp);\n }\n\n public initialize(_: HTMLElement, api: InteractionApiPerspective): void {\n this.api = api;\n\n this.handleEnabledChange(this.model.getEnabled());\n }\n\n public enable(): void {\n this.disable();\n\n window.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('keyup', this.handleKeyUp);\n }\n\n public disable(): void {\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('keyup', this.handleKeyUp);\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n const key = event.key.toLowerCase();\n\n const exclude =\n targetIsElement(event.target) &&\n this.model.isElementExcluded(event.target);\n\n if (!event.repeat && !exclude) {\n this.pressed = { ...this.pressed, [key]: true };\n\n this.tryBeginInteraction();\n }\n }\n\n private handleKeyUp = async (event: KeyboardEvent): Promise<void> => {\n const key = event.key.toLocaleLowerCase();\n\n this.pressed = Object.keys(this.pressed)\n .filter((k) => k !== key)\n .reduce((pressed, k) => ({ ...pressed, [k]: true }), {});\n\n if (Object.keys(this.pressed).length === 0 && this.interval != null) {\n this.endInteraction();\n }\n };\n\n private handleEnabledChange(enabled: boolean): void {\n if (enabled) {\n this.enable();\n } else {\n this.disable();\n }\n }\n\n private restartInteraction(): void {\n this.clearInterval();\n this.tryBeginInteraction();\n }\n\n private tryBeginInteraction(): void {\n if (Object.keys(this.pressed).length > 0 && this.someOperationMatches()) {\n this.beginInteraction();\n }\n }\n\n private beginInteraction(): void {\n if (!this.api?.isInteracting()) {\n this.api?.beginInteraction();\n }\n\n if (this.interval == null) {\n this.interval = setInterval(\n this.updateCamera,\n this.model.getKeyboardRepeatInterval()\n );\n }\n }\n\n private endInteraction = async (): Promise<void> => {\n this.clearInterval();\n await this.api?.endInteraction();\n };\n\n private clearInterval(): void {\n if (this.interval != null) {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n }\n\n private updateCamera(): void {\n Object.keys(this.handlers).forEach((key) => {\n const op = key as ViewerWalkModeOperation;\n\n if (this.model.operationMatches(op, this.pressed)) {\n this.handlers[op]();\n }\n });\n }\n\n private someOperationMatches(): boolean {\n return Object.keys(this.handlers).some((op) =>\n this.model.operationMatches(op as ViewerWalkModeOperation, this.pressed)\n );\n }\n\n private pivotLeft(): void {\n this.api?.pivotCamera(0, this.model.getKeyboardPivotDegrees());\n }\n\n private pivotRight(): void {\n this.api?.pivotCamera(0, -this.model.getKeyboardPivotDegrees());\n }\n\n private pivotUp(): void {\n this.api?.pivotCamera(-this.model.getKeyboardPivotDegrees(), 0);\n }\n\n private pivotDown(): void {\n this.api?.pivotCamera(this.model.getKeyboardPivotDegrees(), 0);\n }\n\n private walkForward(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.forward()));\n }\n\n private walkBackward(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.back()));\n }\n\n private walkLeft(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.left()));\n }\n\n private walkRight(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.right()));\n }\n\n private moveUp(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.down()));\n }\n\n private moveDown(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.up()));\n }\n\n private relativeWalkSpeed(): number {\n return this.model.getKeyboardWalkSpeed() / 500;\n }\n}\n",":host {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h,\n Host,\n JSX,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { InteractionType } from '../../lib/interactions/baseInteractionHandler';\nimport { WalkModeController } from '../../lib/walk-mode/controller';\nimport { WalkInteractionHandler } from '../../lib/walk-mode/interactions';\nimport { ViewerTeleportMode, WalkModeModel } from '../../lib/walk-mode/model';\n\ninterface StateMap {\n teleportTool?: HTMLVertexViewerTeleportToolElement;\n previousPrimaryInteractionType?: InteractionType;\n}\n\n/**\n * The `<vertex-viewer-walk-mode-tool>` allows for additional interactions\n * intended for walking through a model instead of orbiting a model.\n */\n@Component({\n tag: 'vertex-viewer-walk-mode-tool',\n styleUrl: 'viewer-walk-mode-tool.css',\n shadow: true,\n})\nexport class ViewerWalkModeTool {\n /**\n * The viewer that this component is bound to. This is automatically assigned\n * if added to the light-dom of a parent viewer element.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * The `WalkModeController` responsible for controlling `KeyBinding`s and excluded\n * elements, as well as updating the `WalkModeModel` with various configuration\n * settings.\n */\n @Prop({ mutable: true })\n public controller?: WalkModeController;\n\n /**\n * The `WalkModeModel` responsible for tracking configuration and emitting\n * events for interaction handlers to respond to.\n */\n @Prop({ mutable: true })\n public model: WalkModeModel = new WalkModeModel();\n\n /**\n * The type of teleportation to perform when clicking. This value is passed through\n * to a `<vertex-viewer-teleport-tool>`'s mode attribute.\n *\n * `teleport` - the camera's `position` is moved to the location of the hit result\n * constrained by the plane represented by the camera's current `position` and `up`\n * vectors.\n *\n * `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated\n * to align to the plane represented by the hit result's position and normal.\n *\n * `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the\n * hit result constrained by the plane represented by the camera's current `position` and `up`\n * vectors.\n *\n * `undefined` - no teleportation will occur when clicking.\n *\n * Defaults to `undefined`.\n */\n @Prop()\n public teleportMode?: ViewerTeleportMode;\n\n /**\n * Determines whether the interaction handlers for this tool should respond to events.\n * When set to `true`, the default viewer interaction mode will be overridden to use the\n * `pivot` camera interaction type, keyboard controls for movement will be added, and\n * setting the `teleportMode` will enable the tool.\n *\n * Defaults to `true`.\n */\n @Prop()\n public enabled = true;\n\n /**\n * Event emitted when the `WalkModeController` associated with this tool changes.\n */\n @Event()\n public controllerChanged!: EventEmitter<WalkModeController>;\n\n @Element()\n private hostEl?: HTMLElement;\n\n private interactionHandlerDisposable?: Disposable;\n private interactionHandler?: WalkInteractionHandler;\n\n private stateMap: StateMap = {};\n\n /**\n * @ignore\n */\n protected componentWillLoad(): void {\n this.setupController();\n this.setupInteractionHandler();\n }\n\n /**\n * @ignore\n */\n protected async componentDidLoad(): Promise<void> {\n await this.ensureTeleportToolConfigured();\n this.updateTeleportTool();\n await this.setPivotInteractionMode();\n }\n\n /**\n * @ignore\n */\n protected connectedCallback(): void {\n this.setupInteractionHandler();\n this.setPivotInteractionMode();\n }\n\n /**\n * @ignore\n */\n protected disconnectedCallback(): void {\n this.clearInteractionHandler();\n this.resetInteractionMode();\n }\n\n /**\n * @ignore\n */\n @Watch('enabled')\n protected handleEnabledChanged(): void {\n this.controller?.setEnabled(this.enabled);\n this.toggleInteractionMode();\n }\n\n /**\n * @ignore\n */\n @Watch('viewer')\n protected handleViewerChanged(): void {\n this.clearInteractionHandler();\n this.setupInteractionHandler();\n this.updateTeleportTool();\n this.toggleInteractionMode();\n }\n\n /**\n * @ignore\n */\n @Watch('teleportMode')\n protected handleTeleportModeChanged(): void {\n this.updateTeleportTool();\n }\n\n /**\n * @ignore\n */\n @Watch('controller')\n protected handleControllerChanged(): void {\n this.updateTeleportTool();\n this.controllerChanged.emit(this.controller);\n }\n\n /**\n * @ignore\n */\n @Watch('model')\n protected handleModelChanged(): void {\n this.setupController();\n this.clearInteractionHandler();\n this.setupInteractionHandler();\n }\n\n protected render(): JSX.Element {\n return (\n <Host>\n <slot\n name=\"teleport-tool\"\n onSlotchange={async () => {\n await this.ensureTeleportToolConfigured();\n this.updateTeleportTool();\n }}\n ></slot>\n </Host>\n );\n }\n\n private setupController(): void {\n if (this.controller == null) {\n this.controller = new WalkModeController(this.model);\n this.controllerChanged.emit(this.controller);\n } else {\n this.controller.updateModel(this.model);\n }\n }\n\n private clearInteractionHandler(): void {\n this.interactionHandlerDisposable?.dispose();\n this.interactionHandlerDisposable = undefined;\n this.interactionHandler?.dispose();\n this.interactionHandler = undefined;\n }\n\n private async setupInteractionHandler(): Promise<void> {\n if (this.interactionHandler == null) {\n this.interactionHandler = new WalkInteractionHandler(this.model);\n\n this.interactionHandlerDisposable =\n await this.viewer?.registerInteractionHandler(this.interactionHandler);\n }\n }\n\n private async ensureTeleportToolConfigured(): Promise<void> {\n if (this.hostEl != null) {\n const slotted: Element | undefined =\n this.hostEl?.querySelector(\n 'vertex-viewer-teleport-tool[slot=\"teleport-tool\"]'\n ) ?? undefined;\n const slottedTeleportTool =\n slotted?.tagName === 'VERTEX-VIEWER-TELEPORT-TOOL'\n ? (slotted as HTMLVertexViewerTeleportToolElement)\n : undefined;\n\n if (slottedTeleportTool != null) {\n this.stateMap.teleportTool = slottedTeleportTool;\n } else {\n this.stateMap.teleportTool = document.createElement(\n 'vertex-viewer-teleport-tool'\n );\n this.stateMap.teleportTool.slot = 'teleport-tool';\n\n this.hostEl?.appendChild(this.stateMap.teleportTool);\n }\n }\n }\n\n private updateTeleportTool(): void {\n if (this.stateMap.teleportTool != null) {\n this.stateMap.teleportTool.viewer = this.viewer;\n this.stateMap.teleportTool.controller = this.controller;\n this.stateMap.teleportTool.model = this.model;\n this.stateMap.teleportTool.mode = this.teleportMode;\n }\n }\n\n private toggleInteractionMode(): void {\n if (this.enabled) {\n this.setPivotInteractionMode();\n } else {\n this.resetInteractionMode();\n }\n }\n\n private async setPivotInteractionMode(): Promise<void> {\n const baseInteractionHandler =\n await this.viewer?.getBaseInteractionHandler();\n\n if (this.enabled && baseInteractionHandler != null) {\n const interactionType =\n baseInteractionHandler.getPrimaryInteractionType();\n this.stateMap.previousPrimaryInteractionType =\n interactionType === 'pivot'\n ? this.stateMap.previousPrimaryInteractionType\n : interactionType;\n baseInteractionHandler.setPrimaryInteractionType('pivot');\n }\n }\n\n private async resetInteractionMode(): Promise<void> {\n const baseInteractionHandler =\n await this.viewer?.getBaseInteractionHandler();\n\n if (\n baseInteractionHandler != null &&\n baseInteractionHandler.getPrimaryInteractionType() === 'pivot' &&\n this.stateMap.previousPrimaryInteractionType != null\n ) {\n baseInteractionHandler.setPrimaryInteractionType(\n this.stateMap.previousPrimaryInteractionType\n );\n this.stateMap.previousPrimaryInteractionType = undefined;\n }\n }\n}\n"],"names":["Vector3"],"mappings":"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"}
1
+ {"version":3,"file":"vertex-viewer-walk-mode-tool.entry.js","sources":["src/lib/walk-mode/dom.ts","src/lib/walk-mode/interactions.ts","src/components/viewer-walk-mode-tool/viewer-walk-mode-tool.css?tag=vertex-viewer-walk-mode-tool&encapsulation=shadow","src/components/viewer-walk-mode-tool/viewer-walk-mode-tool.tsx"],"sourcesContent":["export function targetIsElement(target: EventTarget | null): target is Element {\n return target instanceof Element;\n}\n","import { Vector3 } from '@vertexvis/geometry';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { InteractionApiPerspective, InteractionHandler } from '../interactions';\nimport { targetIsElement } from './dom';\nimport { ViewerWalkModeOperation, WalkModeModel } from './model';\n\nexport class WalkInteractionHandler implements InteractionHandler {\n private api?: InteractionApiPerspective;\n\n private interval?: NodeJS.Timeout;\n private pressed: Record<string, boolean> = {};\n private handlers: Record<ViewerWalkModeOperation, VoidFunction>;\n\n private enabledChangeDisposable?: Disposable;\n private keyBindingsChangeDisposable?: Disposable;\n private configurationChangeDisposable?: Disposable;\n\n public constructor(private model: WalkModeModel) {\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleKeyUp = this.handleKeyUp.bind(this);\n this.handleEnabledChange = this.handleEnabledChange.bind(this);\n this.restartInteraction = this.restartInteraction.bind(this);\n this.updateCamera = this.updateCamera.bind(this);\n\n this.handlers = {\n [ViewerWalkModeOperation.MOVE_DOWN]: this.moveDown.bind(this),\n [ViewerWalkModeOperation.MOVE_UP]: this.moveUp.bind(this),\n [ViewerWalkModeOperation.PIVOT_DOWN]: this.pivotDown.bind(this),\n [ViewerWalkModeOperation.PIVOT_LEFT]: this.pivotLeft.bind(this),\n [ViewerWalkModeOperation.PIVOT_RIGHT]: this.pivotRight.bind(this),\n [ViewerWalkModeOperation.PIVOT_UP]: this.pivotUp.bind(this),\n [ViewerWalkModeOperation.WALK_BACKWARD]: this.walkBackward.bind(this),\n [ViewerWalkModeOperation.WALK_FORWARD]: this.walkForward.bind(this),\n [ViewerWalkModeOperation.WALK_LEFT]: this.walkLeft.bind(this),\n [ViewerWalkModeOperation.WALK_RIGHT]: this.walkRight.bind(this),\n };\n\n this.enabledChangeDisposable = this.model.onEnabledChange(\n this.handleEnabledChange,\n );\n this.keyBindingsChangeDisposable = this.model.onKeyBindingsChange(\n this.restartInteraction,\n );\n this.configurationChangeDisposable = this.model.onConfigurationChange(\n this.restartInteraction,\n );\n }\n\n public dispose(): void {\n this.disable();\n this.enabledChangeDisposable?.dispose();\n this.keyBindingsChangeDisposable?.dispose();\n this.configurationChangeDisposable?.dispose();\n\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('keyup', this.handleKeyUp);\n }\n\n public initialize(_: HTMLElement, api: InteractionApiPerspective): void {\n this.api = api;\n\n this.handleEnabledChange(this.model.getEnabled());\n }\n\n public enable(): void {\n this.disable();\n\n window.addEventListener('keydown', this.handleKeyDown);\n window.addEventListener('keyup', this.handleKeyUp);\n }\n\n public disable(): void {\n window.removeEventListener('keydown', this.handleKeyDown);\n window.removeEventListener('keyup', this.handleKeyUp);\n }\n\n private handleKeyDown(event: KeyboardEvent): void {\n const key = event.key.toLowerCase();\n\n const exclude =\n targetIsElement(event.target) &&\n this.model.isElementExcluded(event.target);\n\n if (!event.repeat && !exclude) {\n this.pressed = { ...this.pressed, [key]: true };\n\n this.tryBeginInteraction();\n }\n }\n\n private handleKeyUp = async (event: KeyboardEvent): Promise<void> => {\n const key = event.key.toLocaleLowerCase();\n\n this.pressed = Object.keys(this.pressed)\n .filter((k) => k !== key)\n .reduce((pressed, k) => ({ ...pressed, [k]: true }), {});\n\n if (Object.keys(this.pressed).length === 0 && this.interval != null) {\n this.endInteraction();\n }\n };\n\n private handleEnabledChange(enabled: boolean): void {\n if (enabled) {\n this.enable();\n } else {\n this.disable();\n }\n }\n\n private restartInteraction(): void {\n this.clearInterval();\n this.tryBeginInteraction();\n }\n\n private tryBeginInteraction(): void {\n if (Object.keys(this.pressed).length > 0 && this.someOperationMatches()) {\n this.beginInteraction();\n }\n }\n\n private beginInteraction(): void {\n if (!this.api?.isInteracting()) {\n this.api?.beginInteraction();\n }\n\n if (this.interval == null) {\n this.interval = setInterval(\n this.updateCamera,\n this.model.getKeyboardRepeatInterval(),\n );\n }\n }\n\n private endInteraction = async (): Promise<void> => {\n this.clearInterval();\n await this.api?.endInteraction();\n };\n\n private clearInterval(): void {\n if (this.interval != null) {\n clearInterval(this.interval);\n this.interval = undefined;\n }\n }\n\n private updateCamera(): void {\n Object.keys(this.handlers).forEach((key) => {\n const op = key as ViewerWalkModeOperation;\n\n if (this.model.operationMatches(op, this.pressed)) {\n this.handlers[op]();\n }\n });\n }\n\n private someOperationMatches(): boolean {\n return Object.keys(this.handlers).some((op) =>\n this.model.operationMatches(op as ViewerWalkModeOperation, this.pressed),\n );\n }\n\n private pivotLeft(): void {\n this.api?.pivotCamera(0, this.model.getKeyboardPivotDegrees());\n }\n\n private pivotRight(): void {\n this.api?.pivotCamera(0, -this.model.getKeyboardPivotDegrees());\n }\n\n private pivotUp(): void {\n this.api?.pivotCamera(-this.model.getKeyboardPivotDegrees(), 0);\n }\n\n private pivotDown(): void {\n this.api?.pivotCamera(this.model.getKeyboardPivotDegrees(), 0);\n }\n\n private walkForward(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.forward()));\n }\n\n private walkBackward(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.back()));\n }\n\n private walkLeft(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.left()));\n }\n\n private walkRight(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.right()));\n }\n\n private moveUp(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.down()));\n }\n\n private moveDown(): void {\n this.api?.walk(Vector3.scale(this.relativeWalkSpeed(), Vector3.up()));\n }\n\n private relativeWalkSpeed(): number {\n return this.model.getKeyboardWalkSpeed() / 500;\n }\n}\n",":host {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n pointer-events: none;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h,\n Host,\n JSX,\n Prop,\n Watch,\n} from '@stencil/core';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { InteractionType } from '../../lib/interactions/baseInteractionHandler';\nimport { WalkModeController } from '../../lib/walk-mode/controller';\nimport { WalkInteractionHandler } from '../../lib/walk-mode/interactions';\nimport { ViewerTeleportMode, WalkModeModel } from '../../lib/walk-mode/model';\n\ninterface StateMap {\n teleportTool?: HTMLVertexViewerTeleportToolElement;\n previousPrimaryInteractionType?: InteractionType;\n}\n\n/**\n * The `<vertex-viewer-walk-mode-tool>` allows for additional interactions\n * intended for walking through a model instead of orbiting a model.\n */\n@Component({\n tag: 'vertex-viewer-walk-mode-tool',\n styleUrl: 'viewer-walk-mode-tool.css',\n shadow: true,\n})\nexport class ViewerWalkModeTool {\n /**\n * The viewer that this component is bound to. This is automatically assigned\n * if added to the light-dom of a parent viewer element.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * The `WalkModeController` responsible for controlling `KeyBinding`s and excluded\n * elements, as well as updating the `WalkModeModel` with various configuration\n * settings.\n */\n @Prop({ mutable: true })\n public controller?: WalkModeController;\n\n /**\n * The `WalkModeModel` responsible for tracking configuration and emitting\n * events for interaction handlers to respond to.\n */\n @Prop({ mutable: true })\n public model: WalkModeModel = new WalkModeModel();\n\n /**\n * The type of teleportation to perform when clicking. This value is passed through\n * to a `<vertex-viewer-teleport-tool>`'s mode attribute.\n *\n * `teleport` - the camera's `position` is moved to the location of the hit result\n * constrained by the plane represented by the camera's current `position` and `up`\n * vectors.\n *\n * `teleport-and-align` - the camera's `position`, `lookAt`, and `up` vectors are updated\n * to align to the plane represented by the hit result's position and normal.\n *\n * `teleport-toward` - the camera's `position` is moved a fixed distance toward the location of the\n * hit result constrained by the plane represented by the camera's current `position` and `up`\n * vectors.\n *\n * `undefined` - no teleportation will occur when clicking.\n *\n * Defaults to `undefined`.\n */\n @Prop()\n public teleportMode?: ViewerTeleportMode;\n\n /**\n * Determines whether the interaction handlers for this tool should respond to events.\n * When set to `true`, the default viewer interaction mode will be overridden to use the\n * `pivot` camera interaction type, keyboard controls for movement will be added, and\n * setting the `teleportMode` will enable the tool.\n *\n * Defaults to `true`.\n */\n @Prop()\n public enabled = true;\n\n /**\n * Event emitted when the `WalkModeController` associated with this tool changes.\n */\n @Event()\n public controllerChanged!: EventEmitter<WalkModeController>;\n\n @Element()\n private hostEl?: HTMLElement;\n\n private interactionHandlerDisposable?: Disposable;\n private interactionHandler?: WalkInteractionHandler;\n\n private stateMap: StateMap = {};\n\n /**\n * @ignore\n */\n protected componentWillLoad(): void {\n this.setupController();\n this.setupInteractionHandler();\n }\n\n /**\n * @ignore\n */\n protected async componentDidLoad(): Promise<void> {\n await this.ensureTeleportToolConfigured();\n this.updateTeleportTool();\n await this.setPivotInteractionMode();\n }\n\n /**\n * @ignore\n */\n protected connectedCallback(): void {\n this.setupInteractionHandler();\n this.setPivotInteractionMode();\n }\n\n /**\n * @ignore\n */\n protected disconnectedCallback(): void {\n this.clearInteractionHandler();\n this.resetInteractionMode();\n }\n\n /**\n * @ignore\n */\n @Watch('enabled')\n protected handleEnabledChanged(): void {\n this.controller?.setEnabled(this.enabled);\n this.toggleInteractionMode();\n }\n\n /**\n * @ignore\n */\n @Watch('viewer')\n protected handleViewerChanged(): void {\n this.clearInteractionHandler();\n this.setupInteractionHandler();\n this.updateTeleportTool();\n this.toggleInteractionMode();\n }\n\n /**\n * @ignore\n */\n @Watch('teleportMode')\n protected handleTeleportModeChanged(): void {\n this.updateTeleportTool();\n }\n\n /**\n * @ignore\n */\n @Watch('controller')\n protected handleControllerChanged(): void {\n this.updateTeleportTool();\n this.controllerChanged.emit(this.controller);\n }\n\n /**\n * @ignore\n */\n @Watch('model')\n protected handleModelChanged(): void {\n this.setupController();\n this.clearInteractionHandler();\n this.setupInteractionHandler();\n }\n\n protected render(): JSX.Element {\n return (\n <Host>\n <slot\n name=\"teleport-tool\"\n onSlotchange={async () => {\n await this.ensureTeleportToolConfigured();\n this.updateTeleportTool();\n }}\n ></slot>\n </Host>\n );\n }\n\n private setupController(): void {\n if (this.controller == null) {\n this.controller = new WalkModeController(this.model);\n this.controllerChanged.emit(this.controller);\n } else {\n this.controller.updateModel(this.model);\n }\n }\n\n private clearInteractionHandler(): void {\n this.interactionHandlerDisposable?.dispose();\n this.interactionHandlerDisposable = undefined;\n this.interactionHandler?.dispose();\n this.interactionHandler = undefined;\n }\n\n private async setupInteractionHandler(): Promise<void> {\n if (this.interactionHandler == null) {\n this.interactionHandler = new WalkInteractionHandler(this.model);\n\n this.interactionHandlerDisposable =\n await this.viewer?.registerInteractionHandler(this.interactionHandler);\n }\n }\n\n private async ensureTeleportToolConfigured(): Promise<void> {\n if (this.hostEl != null) {\n const slotted: Element | undefined =\n this.hostEl?.querySelector(\n 'vertex-viewer-teleport-tool[slot=\"teleport-tool\"]',\n ) ?? undefined;\n const slottedTeleportTool =\n slotted?.tagName === 'VERTEX-VIEWER-TELEPORT-TOOL'\n ? (slotted as HTMLVertexViewerTeleportToolElement)\n : undefined;\n\n if (slottedTeleportTool != null) {\n this.stateMap.teleportTool = slottedTeleportTool;\n } else {\n this.stateMap.teleportTool = document.createElement(\n 'vertex-viewer-teleport-tool',\n );\n this.stateMap.teleportTool.slot = 'teleport-tool';\n\n this.hostEl?.appendChild(this.stateMap.teleportTool);\n }\n }\n }\n\n private updateTeleportTool(): void {\n if (this.stateMap.teleportTool != null) {\n this.stateMap.teleportTool.viewer = this.viewer;\n this.stateMap.teleportTool.controller = this.controller;\n this.stateMap.teleportTool.model = this.model;\n this.stateMap.teleportTool.mode = this.teleportMode;\n }\n }\n\n private toggleInteractionMode(): void {\n if (this.enabled) {\n this.setPivotInteractionMode();\n } else {\n this.resetInteractionMode();\n }\n }\n\n private async setPivotInteractionMode(): Promise<void> {\n const baseInteractionHandler =\n await this.viewer?.getBaseInteractionHandler();\n\n if (this.enabled && baseInteractionHandler != null) {\n const interactionType =\n baseInteractionHandler.getPrimaryInteractionType();\n this.stateMap.previousPrimaryInteractionType =\n interactionType === 'pivot'\n ? this.stateMap.previousPrimaryInteractionType\n : interactionType;\n baseInteractionHandler.setPrimaryInteractionType('pivot');\n }\n }\n\n private async resetInteractionMode(): Promise<void> {\n const baseInteractionHandler =\n await this.viewer?.getBaseInteractionHandler();\n\n if (\n baseInteractionHandler != null &&\n baseInteractionHandler.getPrimaryInteractionType() === 'pivot' &&\n this.stateMap.previousPrimaryInteractionType != null\n ) {\n baseInteractionHandler.setPrimaryInteractionType(\n this.stateMap.previousPrimaryInteractionType,\n );\n this.stateMap.previousPrimaryInteractionType = undefined;\n }\n }\n}\n"],"names":["Vector3"],"mappings":"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"}
@@ -3290,12 +3290,12 @@ const Viewer = class {
3290
3290
  */
3291
3291
  render() {
3292
3292
  var _a;
3293
- return (h(Host, { key: '74a819b1bfe60df7eed430e8b1fcab1da2c6d615' }, h("div", { key: '0433589e2d8bcd48a768be1c6fc5e64156b3c721', ref: (ref) => (this.viewerContainerElement = ref), class: "viewer-container", style: { cursor: cssCursor((_a = this.cursor) !== null && _a !== void 0 ? _a : '') }, onContextMenu: (event) => event.preventDefault() }, h("div", { key: '21c1a73f5829d61492930fc383f90b2ace08ee90', ref: (ref) => (this.canvasContainerElement = ref), class: classname('canvas-container', {
3293
+ return (h(Host, { key: 'cf89e8922ecbc6a4f024197ec20ff2d1a987953e' }, h("div", { key: '779eab813e3515178e51f729a952bd5b02978507', ref: (ref) => (this.viewerContainerElement = ref), class: "viewer-container", style: { cursor: cssCursor((_a = this.cursor) !== null && _a !== void 0 ? _a : '') }, onContextMenu: (event) => event.preventDefault() }, h("div", { key: '78f19335302d21fcb339e420779695ccd4045407', ref: (ref) => (this.canvasContainerElement = ref), class: classname('canvas-container', {
3294
3294
  'enable-pointer-events ': window.PointerEvent != null,
3295
- }) }, h("canvas", { key: 'ce9d22609bdef1ab64363cd453867b2d46fff855', ref: (ref) => {
3295
+ }) }, h("canvas", { key: '6de64c9e82d6e1a9843bb3f263a27ccdd5614314', ref: (ref) => {
3296
3296
  this.canvasElement = ref;
3297
3297
  this.stateMap.interactionTarget = ref;
3298
- }, class: "canvas" }), this.errorMessage != null ? (h("div", { class: "error-message" }, this.errorMessage)) : null), h("slot", { key: '7b06932ad3ed6ebec1ed1a8ce433a7b61ba75720' }))));
3298
+ }, class: "canvas" }), this.errorMessage != null ? (h("div", { class: "error-message" }, this.errorMessage)) : null), h("slot", { key: '35e36b86ae1bba5b85695354506bb9dcc3375b3f' }))));
3299
3299
  }
3300
3300
  /**
3301
3301
  * @internal
@@ -3877,8 +3877,12 @@ const Viewer = class {
3877
3877
  const backgroundColor = this.getBackgroundColor();
3878
3878
  writeDOM(() => {
3879
3879
  var _a, _b;
3880
- (_a = this.viewerContainerElement) === null || _a === void 0 ? void 0 : _a.style.setProperty('background', backgroundColor != null ? color.toHexString(backgroundColor) : '#ffffff');
3881
- (_b = this.canvasContainerElement) === null || _b === void 0 ? void 0 : _b.style.setProperty('background', backgroundColor != null ? color.toHexString(backgroundColor) : '#ffffff');
3880
+ (_a = this.viewerContainerElement) === null || _a === void 0 ? void 0 : _a.style.setProperty('background', backgroundColor != null
3881
+ ? color.toHexString(backgroundColor)
3882
+ : '#ffffff');
3883
+ (_b = this.canvasContainerElement) === null || _b === void 0 ? void 0 : _b.style.setProperty('background', backgroundColor != null
3884
+ ? color.toHexString(backgroundColor)
3885
+ : '#ffffff');
3882
3886
  });
3883
3887
  }
3884
3888
  async initializeDefaultInteractionHandlers() {