@vertexvis/viewer 0.13.2-canary.7 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/cjs/{_commonjsHelpers-537d719a.js → _commonjsHelpers-dcc4cf71.js} +21 -0
  2. package/dist/cjs/{app-globals-3671e828.js → app-globals-2035678d.js} +1 -1
  3. package/dist/cjs/{browser.esm-075810bf.js → browser.esm-0bcdc581.js} +1 -1
  4. package/dist/cjs/{bundle.esm-618a5fe9.js → bundle.esm-22b6f2d6.js} +35 -1
  5. package/dist/cjs/{config-fb124bac.js → config-c63caa4f.js} +3 -2
  6. package/dist/cjs/{cursors-d71f6a74.js → cursors-f5d3c9a6.js} +13 -1
  7. package/dist/cjs/{dom-57ef84e9.js → dom-8d90bfaf.js} +1 -1
  8. package/dist/cjs/dom-d1bbd67c.js +10 -0
  9. package/dist/cjs/elementRectObserver-9b28f182.js +25 -0
  10. package/dist/cjs/entities-9eb7e608.js +41 -0
  11. package/dist/cjs/{entities-90f1347a.js → entities-e71231d8.js} +4 -4
  12. package/dist/cjs/{grpc-web-client.umd-60a79aae.js → grpc-web-client.umd-2af20c1b.js} +1 -1
  13. package/dist/cjs/{index-e100709a.js → index-4138aa2c.js} +1 -0
  14. package/dist/cjs/{index-3bc6bac0.js → index-b9d13137.js} +1 -1
  15. package/dist/cjs/index.cjs.js +25 -22
  16. package/dist/cjs/loader.cjs.js +4 -4
  17. package/dist/cjs/{mapper-80ee2957.js → mapper-08bbab48.js} +4 -4
  18. package/dist/cjs/{markup-7f7de5f2.js → markup-f7e61d16.js} +2 -2
  19. package/dist/cjs/{measurement-f1ae9248.js → measurement-3367e9b7.js} +2 -2
  20. package/dist/cjs/{model-55abd9ab.js → model-5ca87867.js} +1 -1
  21. package/dist/cjs/model-a9cfd037.js +246 -0
  22. package/dist/cjs/{overlays-68e8eff2.js → overlays-b0ba69fd.js} +2 -2
  23. package/dist/cjs/{png-decoder-076131d8.js → png-decoder-ef097f37.js} +2 -2
  24. package/dist/cjs/{results-e9496869.js → results-178e89a3.js} +1 -1
  25. package/dist/cjs/{scene-92728420.js → scene-b6b78909.js} +49 -12
  26. package/dist/cjs/{stencil-a664cd10.js → stencil-ef19638e.js} +5 -1
  27. package/dist/cjs/{streamAttributes-81eb52f2.js → streamAttributes-c343bdc8.js} +1993 -78
  28. package/dist/cjs/utils-78928e4e.js +162 -0
  29. package/dist/cjs/{utils-6397efca.js → utils-b157b0af.js} +1 -1
  30. package/dist/cjs/{utils-463cd52e.js → utils-c74b8bf0.js} +1 -1
  31. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +16 -6
  32. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +15 -12
  33. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  34. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  35. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +3 -3
  36. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-scene-tree.cjs.entry.js +154 -27
  38. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +3 -3
  39. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  40. package/dist/cjs/{vertex-viewer-dom-element_3.cjs.entry.js → vertex-viewer-dom-element_2.cjs.entry.js} +20 -178
  41. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +191 -0
  42. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +6 -3
  43. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  44. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +49 -196
  45. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +5 -5
  46. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +5 -5
  47. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +8 -7
  48. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +16 -15
  49. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +10 -9
  50. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +18 -35
  51. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +8 -7
  52. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +12 -11
  53. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +167 -0
  54. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +276 -0
  55. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +322 -0
  56. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +13272 -0
  57. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +8 -7
  58. package/dist/cjs/vertex-viewer.cjs.entry.js +120 -52
  59. package/dist/cjs/viewer.cjs.js +4 -4
  60. package/dist/cjs/{viewport-54b1389d.js → viewport-5ca619f7.js} +14 -4
  61. package/dist/collection/__mocks__/regl-shape.js +6 -0
  62. package/dist/collection/__mocks__/regl.js +3 -0
  63. package/dist/collection/collection-manifest.json +5 -0
  64. package/dist/collection/components/scene-tree/lib/controller.js +17 -5
  65. package/dist/collection/components/scene-tree/lib/errors.js +7 -1
  66. package/dist/collection/components/scene-tree/lib/viewer-ops.js +12 -1
  67. package/dist/collection/components/scene-tree/scene-tree.js +112 -22
  68. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +0 -7
  69. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +33 -10
  70. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -2
  71. package/dist/collection/components/viewer/viewer.js +79 -14
  72. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +32 -4
  73. package/dist/collection/components/viewer-dom-group/utils.js +3 -2
  74. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +30 -2
  75. package/dist/collection/components/viewer-icon/viewer-icon.js +5 -2
  76. package/dist/collection/components/viewer-markup/utils.js +3 -2
  77. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +2 -2
  78. package/dist/collection/components/viewer-pin-group/pin-renderer.js +12 -0
  79. package/dist/collection/components/viewer-pin-group/utils.js +24 -0
  80. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +83 -0
  81. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +276 -0
  82. package/dist/collection/components/viewer-pin-label/utils.js +4 -0
  83. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +154 -0
  84. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +410 -0
  85. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +36 -0
  86. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +61 -0
  87. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +9 -0
  88. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +277 -0
  89. package/dist/collection/components/viewer-transform-widget/__mocks__/widget.js +21 -0
  90. package/dist/collection/components/viewer-transform-widget/util.js +78 -0
  91. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +48 -0
  92. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +442 -0
  93. package/dist/collection/components/viewer-transform-widget/widget.js +259 -0
  94. package/dist/collection/lib/cursors.js +11 -1
  95. package/dist/collection/lib/interactions/baseInteractionHandler.js +9 -2
  96. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +4 -3
  97. package/dist/collection/lib/interactions/interactionApi.js +21 -1
  98. package/dist/collection/lib/interactions/interactionApiOrthographic.js +18 -1
  99. package/dist/collection/lib/interactions/mouseInteractionHandler.js +4 -4
  100. package/dist/collection/lib/interactions/mouseInteractions.js +24 -1
  101. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +1 -1
  102. package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
  103. package/dist/collection/lib/mappers/streamAttributes.js +4 -2
  104. package/dist/collection/lib/pins/controller.js +100 -0
  105. package/dist/collection/lib/pins/interactions.js +183 -0
  106. package/dist/collection/lib/pins/model.js +136 -0
  107. package/dist/collection/lib/rendering/canvas.js +6 -28
  108. package/dist/collection/lib/scenes/camera.js +34 -2
  109. package/dist/collection/lib/scenes/colorMaterial.js +8 -8
  110. package/dist/collection/lib/scenes/mapper.js +2 -1
  111. package/dist/collection/lib/scenes/queries.js +6 -4
  112. package/dist/collection/lib/transforms/axis-lines.js +31 -0
  113. package/dist/collection/lib/transforms/axis-rotation.js +34 -0
  114. package/dist/collection/lib/transforms/axis-translation.js +30 -0
  115. package/dist/collection/lib/transforms/controller.js +117 -0
  116. package/dist/collection/lib/transforms/drawable.js +47 -0
  117. package/dist/collection/lib/transforms/hits.js +51 -0
  118. package/dist/collection/lib/transforms/line.js +58 -0
  119. package/dist/collection/lib/transforms/mesh.js +35 -0
  120. package/dist/collection/lib/transforms/shape.js +2 -0
  121. package/dist/collection/lib/transforms/util.js +4 -0
  122. package/dist/collection/lib/types/depthBuffer.js +2 -2
  123. package/dist/collection/lib/types/frameCamera.js +4 -6
  124. package/dist/collection/lib/types/viewport.js +14 -4
  125. package/dist/custom-elements/index.d.ts +30 -0
  126. package/dist/custom-elements/index.js +16835 -333
  127. package/dist/esm/{_commonjsHelpers-9943807e.js → _commonjsHelpers-11ca3be1.js} +20 -1
  128. package/dist/esm/{app-globals-3a04a531.js → app-globals-40df99a0.js} +1 -1
  129. package/dist/esm/{browser.esm-e72d80ad.js → browser.esm-1ddb69c9.js} +1 -1
  130. package/dist/esm/{bundle.esm-8ceccb91.js → bundle.esm-ce2c7ad3.js} +36 -2
  131. package/dist/esm/{config-fb7cd8ff.js → config-7075833a.js} +3 -2
  132. package/dist/esm/{cursors-fc2deed7.js → cursors-98b7d89d.js} +12 -2
  133. package/dist/esm/{dom-2cd18856.js → dom-5b164305.js} +1 -1
  134. package/dist/esm/dom-be140992.js +8 -0
  135. package/dist/esm/elementRectObserver-39cf7b95.js +23 -0
  136. package/dist/esm/{entities-78557270.js → entities-46be90d5.js} +4 -4
  137. package/dist/esm/entities-ce81dd7f.js +41 -0
  138. package/dist/esm/{grpc-web-client.umd-5982b7b0.js → grpc-web-client.umd-5409853c.js} +1 -1
  139. package/dist/esm/{index-10c1495a.js → index-a9fb8318.js} +1 -1
  140. package/dist/esm/{index-455380d0.js → index-e841d91b.js} +1 -1
  141. package/dist/esm/index.js +15 -14
  142. package/dist/esm/index.mjs +15 -14
  143. package/dist/esm/loader.js +4 -4
  144. package/dist/esm/loader.mjs +4 -4
  145. package/dist/esm/{mapper-da36de17.js → mapper-bde6c607.js} +4 -4
  146. package/dist/esm/{markup-c313d99c.js → markup-8904f2fe.js} +2 -2
  147. package/dist/esm/{measurement-544b69d5.js → measurement-3f9b0ae0.js} +2 -2
  148. package/dist/esm/{model-2a34b443.js → model-e54b081f.js} +1 -1
  149. package/dist/esm/model-f679c493.js +241 -0
  150. package/dist/esm/{overlays-354e275c.js → overlays-ea2d45ec.js} +2 -2
  151. package/dist/esm/{png-decoder-07de80d1.js → png-decoder-d4b65417.js} +2 -2
  152. package/dist/esm/{results-4d0c3568.js → results-3b4df2cf.js} +1 -1
  153. package/dist/esm/{scene-2bfcce74.js → scene-22ebacfd.js} +49 -12
  154. package/dist/esm/{stencil-9bf7fb9e.js → stencil-8b20e5a8.js} +5 -2
  155. package/dist/esm/{streamAttributes-d0b384b3.js → streamAttributes-72a92676.js} +1982 -67
  156. package/dist/esm/{utils-3ea0acdd.js → utils-0b980078.js} +1 -1
  157. package/dist/esm/utils-c714e2f7.js +153 -0
  158. package/dist/esm/{utils-e0941c61.js → utils-f11bd6f7.js} +1 -1
  159. package/dist/esm/vertex-scene-tree-search_3.entry.js +16 -6
  160. package/dist/esm/vertex-scene-tree-table-cell.entry.js +15 -12
  161. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  162. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  163. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +3 -3
  164. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  165. package/dist/esm/vertex-scene-tree.entry.js +154 -27
  166. package/dist/esm/vertex-viewer-button_3.entry.js +3 -3
  167. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  168. package/dist/esm/{vertex-viewer-dom-element_3.entry.js → vertex-viewer-dom-element_2.entry.js} +21 -178
  169. package/dist/esm/vertex-viewer-dom-group.entry.js +187 -0
  170. package/dist/esm/vertex-viewer-icon.entry.js +6 -3
  171. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  172. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +8 -155
  173. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  174. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  175. package/dist/esm/vertex-viewer-measurement-details.entry.js +8 -7
  176. package/dist/esm/vertex-viewer-measurement-distance.entry.js +16 -15
  177. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +10 -9
  178. package/dist/esm/vertex-viewer-measurement-precise.entry.js +15 -32
  179. package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -7
  180. package/dist/esm/vertex-viewer-measurements.entry.js +12 -11
  181. package/dist/esm/vertex-viewer-pin-group.entry.js +163 -0
  182. package/dist/esm/vertex-viewer-pin-label_2.entry.js +271 -0
  183. package/dist/esm/vertex-viewer-pin-tool.entry.js +318 -0
  184. package/dist/esm/vertex-viewer-transform-widget.entry.js +13268 -0
  185. package/dist/esm/vertex-viewer-view-cube.entry.js +8 -7
  186. package/dist/esm/vertex-viewer.entry.js +119 -51
  187. package/dist/esm/viewer.js +4 -4
  188. package/dist/esm/{viewport-5cc7b128.js → viewport-e39e2eba.js} +14 -4
  189. package/dist/types/__mocks__/regl-shape.d.ts +5 -0
  190. package/dist/types/__mocks__/regl.d.ts +5 -0
  191. package/dist/types/components/scene-tree/lib/controller.d.ts +13 -1
  192. package/dist/types/components/scene-tree/lib/errors.d.ts +3 -1
  193. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -0
  194. package/dist/types/components/scene-tree/scene-tree.d.ts +16 -4
  195. package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +5 -1
  196. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +2 -0
  197. package/dist/types/components/viewer/viewer.d.ts +13 -1
  198. package/dist/types/components/viewer-dom-element/viewer-dom-element.d.ts +10 -2
  199. package/dist/types/components/viewer-dom-group/viewer-dom-group.d.ts +9 -1
  200. package/dist/types/components/viewer-icon/viewer-icon.d.ts +1 -1
  201. package/dist/types/components/viewer-pin-group/pin-renderer.d.ts +8 -0
  202. package/dist/types/components/viewer-pin-group/utils.d.ts +2 -0
  203. package/dist/types/components/viewer-pin-group/viewer-pin-group.d.ts +49 -0
  204. package/dist/types/components/viewer-pin-label/utils.d.ts +1 -0
  205. package/dist/types/components/viewer-pin-label/viewer-pin-label.d.ts +77 -0
  206. package/dist/types/components/viewer-pin-label-line/viewer-pin-label-line.d.ts +7 -0
  207. package/dist/types/components/viewer-pin-tool/viewer-pin-tool.d.ts +68 -0
  208. package/dist/types/components/viewer-transform-widget/__mocks__/widget.d.ts +11 -0
  209. package/dist/types/components/viewer-transform-widget/util.d.ts +5 -0
  210. package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +81 -0
  211. package/dist/types/components/viewer-transform-widget/widget.d.ts +74 -0
  212. package/dist/types/components.d.ts +303 -12
  213. package/dist/types/interfaces.d.ts +1 -0
  214. package/dist/types/lib/cursors.d.ts +10 -0
  215. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +4 -3
  216. package/dist/types/lib/interactions/interactionApi.d.ts +10 -1
  217. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +7 -0
  218. package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +2 -2
  219. package/dist/types/lib/interactions/mouseInteractions.d.ts +6 -0
  220. package/dist/types/lib/pins/controller.d.ts +70 -0
  221. package/dist/types/lib/pins/interactions.d.ts +30 -0
  222. package/dist/types/lib/pins/model.d.ts +104 -0
  223. package/dist/types/lib/rendering/canvas.d.ts +1 -2
  224. package/dist/types/lib/scenes/camera.d.ts +10 -0
  225. package/dist/types/lib/scenes/colorMaterial.d.ts +1 -0
  226. package/dist/types/lib/scenes/queries.d.ts +4 -2
  227. package/dist/types/lib/transforms/axis-lines.d.ts +6 -0
  228. package/dist/types/lib/transforms/axis-rotation.d.ts +6 -0
  229. package/dist/types/lib/transforms/axis-translation.d.ts +6 -0
  230. package/dist/types/lib/transforms/controller.d.ts +17 -0
  231. package/dist/types/lib/transforms/drawable.d.ts +26 -0
  232. package/dist/types/lib/transforms/hits.d.ts +10 -0
  233. package/dist/types/lib/transforms/line.d.ts +31 -0
  234. package/dist/types/lib/transforms/mesh.d.ts +23 -0
  235. package/dist/types/lib/transforms/shape.d.ts +3 -0
  236. package/dist/types/lib/transforms/util.d.ts +2 -0
  237. package/dist/types/lib/types/frameCamera.d.ts +1 -0
  238. package/dist/types/lib/types/viewport.d.ts +8 -0
  239. package/dist/types/regl-shape.d.ts +26 -0
  240. package/dist/viewer/index.esm.js +1 -1
  241. package/dist/viewer/p-058632f4.js +4 -0
  242. package/dist/viewer/p-07aeee89.js +10 -0
  243. package/dist/viewer/{p-e75bba97.js → p-083f427e.js} +1 -1
  244. package/dist/viewer/{p-a455ae02.entry.js → p-08eda2b2.entry.js} +1 -1
  245. package/dist/viewer/{p-bcb66f97.js → p-096e60bd.js} +1 -1
  246. package/dist/viewer/p-0bc4b3f7.js +4 -0
  247. package/dist/viewer/p-148c5f1a.js +4 -0
  248. package/dist/viewer/p-1db9bd1a.entry.js +4 -0
  249. package/dist/viewer/{p-70ca1ea7.entry.js → p-1f251549.entry.js} +1 -1
  250. package/dist/viewer/p-29986489.js +4 -0
  251. package/dist/viewer/{p-cafa57a6.js → p-2e581b2a.js} +1 -1
  252. package/dist/viewer/{p-d2bcf788.entry.js → p-33daeb09.entry.js} +1 -1
  253. package/dist/viewer/p-39803f8f.js +4 -0
  254. package/dist/viewer/p-465a92d9.entry.js +4 -0
  255. package/dist/viewer/p-4a65ddb3.entry.js +4 -0
  256. package/dist/viewer/{p-099fe6ca.entry.js → p-4aaf02b4.entry.js} +1 -1
  257. package/dist/viewer/{p-31658489.entry.js → p-4c3a3738.entry.js} +1 -1
  258. package/dist/viewer/{p-e38458da.js → p-4d37d97c.js} +1 -1
  259. package/dist/viewer/p-4fdf8553.entry.js +4 -0
  260. package/dist/viewer/p-5679f46b.entry.js +4 -0
  261. package/dist/viewer/p-5809b400.js +4 -0
  262. package/dist/viewer/{p-fa9a0bed.js → p-58dacdce.js} +1 -1
  263. package/dist/viewer/p-61a042f0.entry.js +4 -0
  264. package/dist/viewer/{p-b8774c9c.js → p-6c377932.js} +1 -1
  265. package/dist/viewer/p-6d379d4a.js +4 -0
  266. package/dist/viewer/p-6d70b198.entry.js +4 -0
  267. package/dist/viewer/p-6e7e094a.entry.js +4 -0
  268. package/dist/viewer/{p-661f0612.js → p-70e5e8a8.js} +1 -1
  269. package/dist/viewer/p-74102b29.entry.js +32 -0
  270. package/dist/viewer/p-7a5a9a93.entry.js +4 -0
  271. package/dist/viewer/p-7c755e0e.entry.js +4 -0
  272. package/dist/viewer/{p-3a20a038.js → p-92fe4417.js} +1 -1
  273. package/dist/viewer/{p-7e0328aa.js → p-98e6a50e.js} +1 -1
  274. package/dist/viewer/{p-388a43f7.js → p-990f98c2.js} +1 -1
  275. package/dist/viewer/{p-487e054a.js → p-99352cf0.js} +1 -1
  276. package/dist/viewer/{p-1ca95f9a.entry.js → p-99799a71.entry.js} +1 -1
  277. package/dist/viewer/p-9acd1b44.js +4 -0
  278. package/dist/viewer/{p-69058178.js → p-9bcde9c8.js} +1 -1
  279. package/dist/viewer/{p-5b342e97.js → p-a2ef15e5.js} +1 -1
  280. package/dist/viewer/{p-61b1097b.entry.js → p-a32cc378.entry.js} +1 -1
  281. package/dist/viewer/p-a380f0c2.js +4 -0
  282. package/dist/viewer/{p-41028d3b.entry.js → p-af37b63e.entry.js} +1 -1
  283. package/dist/viewer/p-b6b727a6.entry.js +4 -0
  284. package/dist/viewer/p-c2e3312b.js +4 -0
  285. package/dist/viewer/{p-4717c98e.entry.js → p-c9f91798.entry.js} +1 -1
  286. package/dist/viewer/p-ca518dcb.entry.js +4 -0
  287. package/dist/viewer/p-d828fd18.entry.js +4 -0
  288. package/dist/viewer/p-d996b1d2.entry.js +4 -0
  289. package/dist/viewer/{p-3f0f83ad.js → p-db01460a.js} +1 -1
  290. package/dist/viewer/p-db716103.entry.js +4 -0
  291. package/dist/viewer/p-df8fbe56.js +4 -0
  292. package/dist/viewer/p-dfe5a97d.js +4 -0
  293. package/dist/viewer/p-e42cb163.js +4 -0
  294. package/dist/viewer/p-eb8e5db5.js +4 -0
  295. package/dist/viewer/{p-46459921.entry.js → p-ebb801c3.entry.js} +1 -1
  296. package/dist/viewer/p-ebd85d58.entry.js +4 -0
  297. package/dist/viewer/p-eefae62a.entry.js +4 -0
  298. package/dist/viewer/viewer.esm.js +1 -1
  299. package/package.json +12 -10
  300. package/readme.md +4 -4
  301. package/dist/viewer/p-0a189e62.entry.js +0 -4
  302. package/dist/viewer/p-112455b1.js +0 -4
  303. package/dist/viewer/p-3561d910.js +0 -4
  304. package/dist/viewer/p-5212dd2b.entry.js +0 -4
  305. package/dist/viewer/p-73a5eacc.entry.js +0 -4
  306. package/dist/viewer/p-77be081a.js +0 -4
  307. package/dist/viewer/p-809d09d9.js +0 -4
  308. package/dist/viewer/p-858bd2c7.entry.js +0 -4
  309. package/dist/viewer/p-89b66838.entry.js +0 -32
  310. package/dist/viewer/p-a93a63a9.js +0 -4
  311. package/dist/viewer/p-b043b076.entry.js +0 -4
  312. package/dist/viewer/p-b0ac6b3c.entry.js +0 -4
  313. package/dist/viewer/p-bcde5521.entry.js +0 -4
  314. package/dist/viewer/p-d1584404.js +0 -4
  315. package/dist/viewer/p-d32b54cb.js +0 -4
  316. package/dist/viewer/p-d3a20af4.entry.js +0 -4
  317. package/dist/viewer/p-d9f99f4d.entry.js +0 -4
  318. package/dist/viewer/p-ebd55df7.entry.js +0 -4
  319. package/dist/viewer/p-f0411993.entry.js +0 -4
  320. package/dist/viewer/p-f482325b.js +0 -10
  321. package/dist/viewer/p-fad9693e.js +0 -4
  322. package/dist/viewer/p-fec1a8d0.entry.js +0 -4
  323. package/dist/viewer/p-ffdeb08c.js +0 -4
@@ -1,13 +1,14 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { h, F as Fragment, r as registerInstance, H as Host } from './index-10c1495a.js';
5
- import { v as vector3, t as quaternion, u as euler } from './bundle.esm-8ceccb91.js';
6
- import { r as readDOM } from './stencil-9bf7fb9e.js';
7
- import { O as Orientation, e as FramePerspectiveCamera, H as StandardView } from './streamAttributes-d0b384b3.js';
8
- import { c as classnames } from './index-455380d0.js';
9
- import './browser.esm-e72d80ad.js';
10
- import './_commonjsHelpers-9943807e.js';
4
+ import { h, F as Fragment, r as registerInstance, H as Host } from './index-a9fb8318.js';
5
+ import { v as vector3, q as quaternion, u as euler } from './bundle.esm-ce2c7ad3.js';
6
+ import { r as readDOM } from './stencil-8b20e5a8.js';
7
+ import { O as Orientation, e as FramePerspectiveCamera, G as StandardView } from './streamAttributes-72a92676.js';
8
+ import './entities-ce81dd7f.js';
9
+ import { c as classnames } from './index-e841d91b.js';
10
+ import './browser.esm-1ddb69c9.js';
11
+ import './_commonjsHelpers-11ca3be1.js';
11
12
 
12
13
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
14
  const viewCubeSides = {
@@ -1,17 +1,18 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-10c1495a.js';
5
- import { p as point, v as vector3, h as angle, j as plane, r as ray, b as boundingBox, q as matrix2, d as dimensions } from './bundle.esm-8ceccb91.js';
6
- import { l as fromPbStencilBufferOrThrow, m as decodePng, n as DepthBuffer, t as toProtoDuration, E as EntityType, p as protoToDate, o as toPbStreamAttributes, q as toPbRGBi, S as StreamApi, r as StreamRequestError, s as fromPbFrameOrThrow, u as fromPbStartStreamResponseOrThrow, x as fromPbReconnectResponseOrThrow, y as fromPbSyncTimeResponseOrThrow, z as currentDateAsProtoTimestamp, B as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl, g as toProtobuf, C as toOrthographic, G as toPerspective } from './streamAttributes-d0b384b3.js';
7
- import { E as EventDispatcher, m as mapper, c as color, o as objects, u as uri, a as async, b as uuid } from './browser.esm-e72d80ad.js';
8
- import { c as classnames } from './index-455380d0.js';
9
- import { p as parseConfig } from './config-fb7cd8ff.js';
10
- import { C as CursorManager } from './cursors-fc2deed7.js';
11
- import { g as getMouseClientPosition, c as cssCursor } from './dom-2cd18856.js';
12
- import { I as ImageLoadError, f as fromUrn, C as CustomError, W as WebsocketConnectionError, a as SynchronizedClock, b as SceneRenderError, d as defaultSelectionMaterial, V as ViewerInitializationError, e as InteractionHandlerError, g as ComponentInitializationError, h as IllegalStateError, i as fromHex, S as Scene } from './scene-2bfcce74.js';
13
- import { V as Viewport } from './viewport-5cc7b128.js';
14
- import './_commonjsHelpers-9943807e.js';
4
+ import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-a9fb8318.js';
5
+ import { p as point, v as vector3, h as angle, j as plane, r as ray, b as boundingBox, s as matrix2, d as dimensions } from './bundle.esm-ce2c7ad3.js';
6
+ import { l as fromPbStencilBufferOrThrow, m as decodePng, n as DepthBuffer, t as toProtoDuration, g as toProtobuf, p as protoToDate, o as toPbStreamAttributes, q as toPbRGBi, S as StreamApi, r as StreamRequestError, s as fromPbFrameOrThrow, u as fromPbStartStreamResponseOrThrow, x as fromPbReconnectResponseOrThrow, y as fromPbSyncTimeResponseOrThrow, z as currentDateAsProtoTimestamp, B as fromPbRefreshTokenResponseOrThrow, W as WebSocketClientImpl, C as toOrthographic, E as toPerspective } from './streamAttributes-72a92676.js';
7
+ import { E as EventDispatcher, m as mapper, c as color, o as objects, u as uri, a as async, b as uuid } from './browser.esm-1ddb69c9.js';
8
+ import { c as classnames } from './index-e841d91b.js';
9
+ import { p as parseConfig } from './config-7075833a.js';
10
+ import { C as CursorManager } from './cursors-98b7d89d.js';
11
+ import { g as getMouseClientPosition, c as cssCursor } from './dom-5b164305.js';
12
+ import { I as ImageLoadError, f as fromUrn, C as CustomError, W as WebsocketConnectionError, a as SynchronizedClock, b as SceneRenderError, d as defaultSelectionMaterial, V as ViewerInitializationError, e as InteractionHandlerError, g as ComponentInitializationError, h as IllegalStateError, i as fromHex, S as Scene } from './scene-22ebacfd.js';
13
+ import { E as EntityType } from './entities-ce81dd7f.js';
14
+ import { V as Viewport } from './viewport-e39e2eba.js';
15
+ import './_commonjsHelpers-11ca3be1.js';
15
16
 
16
17
  /**
17
18
  * A value that represents if a pixel does not contain a stencil value.
@@ -591,6 +592,26 @@ class InteractionApi {
591
592
  return camera;
592
593
  });
593
594
  }
595
+ /**
596
+ * Performs a pivot operation of the scene's camera, updating the lookAt
597
+ * while maintaining the position, and requests a new image for the
598
+ * updated scene.
599
+ *
600
+ * @param degreesLocalX The angle to rotate the lookAt point around the local x-axis
601
+ * @param degreesLocalY The angle to rotate the lookAt point around the local y-axis
602
+ */
603
+ async pivotCamera(degreesLocalX, degreesLocalY) {
604
+ return this.transformCamera(({ camera }) => {
605
+ const { position, up, lookAt } = camera;
606
+ const normalizedUp = vector3.normalize(up);
607
+ const normalizedViewVector = vector3.normalize(camera.viewVector);
608
+ const xVector = vector3.cross(normalizedUp, normalizedViewVector);
609
+ const yVector = vector3.cross(normalizedViewVector, xVector);
610
+ const updatedLookAtX = vector3.rotateAboutAxis(angle.toRadians(degreesLocalX), lookAt, xVector, position);
611
+ const updatedLookAtY = vector3.rotateAboutAxis(angle.toRadians(degreesLocalY), updatedLookAtX, yVector, position);
612
+ return camera.update(Object.assign(Object.assign({}, camera), { lookAt: updatedLookAtY }));
613
+ });
614
+ }
594
615
  /**
595
616
  * Marks the end of an interaction.
596
617
  */
@@ -673,6 +694,23 @@ class InteractionApiOrthographic extends InteractionApi {
673
694
  constructor(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter) {
674
695
  super(stream, cursors, getConfig, getScene, getFrame, getViewport, tapEmitter, doubleTapEmitter, longPressEmitter, interactionStartedEmitter, interactionFinishedEmitter);
675
696
  }
697
+ /**
698
+ * Returns a 3D point in world space for the given 2D point in viewport space.
699
+ *
700
+ * @param point A point in 2D viewport space to transform.
701
+ * @returns A 3D point in world space.
702
+ */
703
+ async getWorldPointFromViewport(point) {
704
+ const viewport = this.getViewport();
705
+ const frame = this.getFrame();
706
+ if (frame == null) {
707
+ throw new Error('Cannot get world point. Frame is undefined.');
708
+ }
709
+ const depthBuffer = await frame.depthBuffer();
710
+ return depthBuffer != null
711
+ ? viewport.transformPointToOrthographicWorldSpace(point, depthBuffer, 0.5)
712
+ : undefined;
713
+ }
676
714
  /**
677
715
  * Performs a pan operation of the scene's camera, and requests a new image
678
716
  * for the updated scene.
@@ -878,11 +916,11 @@ class FlyToPositionKeyInteraction {
878
916
  hit.hitPoint.y != null &&
879
917
  hit.hitPoint.z != null) {
880
918
  await this.stream.flyTo({
881
- camera: camera
919
+ camera: toProtobuf(camera
882
920
  .update({
883
921
  lookAt: vector3.create(hit.hitPoint.x, hit.hitPoint.y, hit.hitPoint.z),
884
922
  })
885
- .toFrameCamera(),
923
+ .toFrameCamera()),
886
924
  animation: {
887
925
  duration: toProtoDuration(this.configProvider().animation.durationMs),
888
926
  },
@@ -902,7 +940,7 @@ const SCROLL_WHEEL_DELTA_PERCENTAGES = [0.2, 0.15, 0.25, 0.25, 0.15];
902
940
  const DEFAULT_FONT_SIZE = 16;
903
941
  const DEFAULT_LINE_HEIGHT = 1.2;
904
942
  class BaseInteractionHandler {
905
- constructor(downEvent, upEvent, moveEvent, rotateInteraction, rotatePointInteraction, zoomInteraction, panInteraction, twistInteraction, getConfig) {
943
+ constructor(downEvent, upEvent, moveEvent, rotateInteraction, rotatePointInteraction, zoomInteraction, panInteraction, twistInteraction, pivotInteraction, getConfig) {
906
944
  this.downEvent = downEvent;
907
945
  this.upEvent = upEvent;
908
946
  this.moveEvent = moveEvent;
@@ -911,6 +949,7 @@ class BaseInteractionHandler {
911
949
  this.zoomInteraction = zoomInteraction;
912
950
  this.panInteraction = panInteraction;
913
951
  this.twistInteraction = twistInteraction;
952
+ this.pivotInteraction = pivotInteraction;
914
953
  this.getConfig = getConfig;
915
954
  this.primaryInteraction = this.rotateInteraction;
916
955
  this.isDragging = false;
@@ -958,6 +997,9 @@ class BaseInteractionHandler {
958
997
  case 'rotate-point':
959
998
  this.currentInteraction = this.rotatePointInteraction;
960
999
  break;
1000
+ case 'pivot':
1001
+ this.currentInteraction = this.pivotInteraction;
1002
+ break;
961
1003
  default:
962
1004
  this.currentInteraction = undefined;
963
1005
  }
@@ -989,6 +1031,9 @@ class BaseInteractionHandler {
989
1031
  case 'pan':
990
1032
  this.primaryInteraction = this.panInteraction;
991
1033
  break;
1034
+ case 'pivot':
1035
+ this.primaryInteraction = this.pivotInteraction;
1036
+ break;
992
1037
  }
993
1038
  this.primaryInteractionTypeChange.emit();
994
1039
  }
@@ -1351,10 +1396,33 @@ class TwistInteraction extends MouseInteraction {
1351
1396
  super.endDrag(event, api);
1352
1397
  }
1353
1398
  }
1399
+ class PivotInteraction extends MouseInteraction {
1400
+ constructor() {
1401
+ super(...arguments);
1402
+ this.type = 'pivot';
1403
+ }
1404
+ beginDrag(event, canvasPosition, api) {
1405
+ if (this.currentPosition == null) {
1406
+ this.currentPosition = point.create(event.screenX, event.screenY);
1407
+ api.beginInteraction();
1408
+ }
1409
+ }
1410
+ drag(event, api) {
1411
+ if (this.currentPosition != null) {
1412
+ const position = point.create(event.screenX, event.screenY);
1413
+ const delta = point.subtract(position, this.currentPosition);
1414
+ api.pivotCamera(-0.25 * delta.y, 0.25 * delta.x);
1415
+ this.currentPosition = position;
1416
+ }
1417
+ }
1418
+ endDrag(event, api) {
1419
+ super.endDrag(event, api);
1420
+ }
1421
+ }
1354
1422
 
1355
1423
  class MouseInteractionHandler extends BaseInteractionHandler {
1356
- constructor(getConfig, rotateInteraction = new RotateInteraction(), rotatePointInteraction = new RotatePointInteraction(), zoomInteraction = new ZoomInteraction(), panInteraction = new PanInteraction(), twistInteraction = new TwistInteraction()) {
1357
- super('mousedown', 'mouseup', 'mousemove', rotateInteraction, rotatePointInteraction, zoomInteraction, panInteraction, twistInteraction, getConfig);
1424
+ constructor(getConfig, rotateInteraction = new RotateInteraction(), rotatePointInteraction = new RotatePointInteraction(), zoomInteraction = new ZoomInteraction(), panInteraction = new PanInteraction(), twistInteraction = new TwistInteraction(), pivotInteraction = new PivotInteraction()) {
1425
+ super('mousedown', 'mouseup', 'mousemove', rotateInteraction, rotatePointInteraction, zoomInteraction, panInteraction, twistInteraction, pivotInteraction, getConfig);
1358
1426
  }
1359
1427
  }
1360
1428
 
@@ -1379,7 +1447,7 @@ class MultiTouchInteractionHandler {
1379
1447
  (_b = this.interactionApi) === null || _b === void 0 ? void 0 : _b.zoomCamera(zoom);
1380
1448
  (_c = this.interactionApi) === null || _c === void 0 ? void 0 : _c.panCameraByDelta(delta);
1381
1449
  // Setting a minimum angle to prevent wobbling
1382
- if (Math.abs(angle$1) > 0.2) {
1450
+ if (Math.abs(angle$1) > 0.5) {
1383
1451
  (_d = this.interactionApi) === null || _d === void 0 ? void 0 : _d.twistCamera(angle$1);
1384
1452
  }
1385
1453
  }
@@ -1443,7 +1511,7 @@ class MultiPointerInteractionHandler extends MultiTouchInteractionHandler {
1443
1511
 
1444
1512
  class PointerInteractionHandler extends BaseInteractionHandler {
1445
1513
  constructor(getConfig) {
1446
- super('pointerdown', 'pointerup', 'pointermove', new RotateInteraction(), new RotatePointInteraction(), new ZoomInteraction(), new PanInteraction(), new TwistInteraction(), getConfig);
1514
+ super('pointerdown', 'pointerup', 'pointermove', new RotateInteraction(), new RotatePointInteraction(), new ZoomInteraction(), new PanInteraction(), new TwistInteraction(), new PivotInteraction(), getConfig);
1447
1515
  this.touchPoints = new Set();
1448
1516
  this.handlePointerDown = this.handlePointerDown.bind(this);
1449
1517
  this.handlePointerUp = this.handlePointerUp.bind(this);
@@ -1906,36 +1974,15 @@ function measureCanvasRenderer(meter, renderer, logFrameRate, callback, interval
1906
1974
  function createCanvasRenderer() {
1907
1975
  let lastFrameNumber;
1908
1976
  return async (data) => {
1909
- var _a;
1910
- const frameNumber = data.frame.sequenceNumber;
1911
- const image = await loadImageBytes(data.frame.image.imageBytes);
1912
- if (lastFrameNumber == null || frameNumber > lastFrameNumber) {
1913
- lastFrameNumber = frameNumber;
1914
- (_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
1915
- drawImage(image, data);
1916
- }
1917
- image.dispose();
1918
- return data.frame;
1919
- };
1920
- }
1921
- function createHiddenCanvasRenderer() {
1922
- const hiddenCanvas = document.createElement('canvas');
1923
- let lastFrameNumber;
1924
- return async (data) => {
1925
- var _a;
1977
+ var _a, _b, _c;
1926
1978
  const frameNumber = data.frame.sequenceNumber;
1927
1979
  const frameIsNewer = lastFrameNumber == null || frameNumber > lastFrameNumber;
1928
- const frameDimensionsMatch = data.dimensions == null ||
1929
- dimensions.isEqual(data.dimensions, data.frame.image.imageAttr.frameDimensions);
1930
1980
  const image = await loadImageBytes(data.frame.image.imageBytes);
1931
- hiddenCanvas.width = data.canvasDimensions.width;
1932
- hiddenCanvas.height = data.canvasDimensions.height;
1933
- const ctx = hiddenCanvas.getContext('2d');
1934
- if (ctx != null && frameIsNewer && frameDimensionsMatch) {
1981
+ const predicatePassing = (_b = (_a = data.predicate) === null || _a === void 0 ? void 0 : _a.call(data)) !== null && _b !== void 0 ? _b : true;
1982
+ if (frameIsNewer && predicatePassing) {
1935
1983
  lastFrameNumber = frameNumber;
1936
- drawImage(image, Object.assign(Object.assign({}, data), { canvas: ctx }));
1937
- (_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
1938
- data.canvas.drawImage(hiddenCanvas, 0, 0);
1984
+ (_c = data.beforeDraw) === null || _c === void 0 ? void 0 : _c.call(data);
1985
+ drawImage(image, data);
1939
1986
  }
1940
1987
  image.dispose();
1941
1988
  return data.frame;
@@ -2414,6 +2461,7 @@ let Viewer = class {
2414
2461
  this.sceneChanged = createEvent(this, "sceneChanged", 7);
2415
2462
  this.interactionStarted = createEvent(this, "interactionStarted", 7);
2416
2463
  this.interactionFinished = createEvent(this, "interactionFinished", 7);
2464
+ this.cameraTypeChanged = createEvent(this, "cameraTypeChanged", 7);
2417
2465
  this.deviceIdChange = createEvent(this, "deviceIdChange", 7);
2418
2466
  this.dimensionschange = createEvent(this, "dimensionschange", 7);
2419
2467
  /**
@@ -2454,6 +2502,12 @@ let Viewer = class {
2454
2502
  * **Note:** This feature is experimental, and may cause slower frame rates.
2455
2503
  */
2456
2504
  this.experimentalGhostingOpacity = 0;
2505
+ /**
2506
+ * Specifies whether to use the default lights for the scene. When false, default
2507
+ * lights are used. When true, no default lights are used, and the lights must
2508
+ * be specified separately.
2509
+ */
2510
+ this.noDefaultLights = false;
2457
2511
  /**
2458
2512
  * The default hex color or material to use when selecting items.
2459
2513
  */
@@ -2741,6 +2795,9 @@ let Viewer = class {
2741
2795
  handleExperimentalGhostingOpacityChanged() {
2742
2796
  this.updateStreamAttributes();
2743
2797
  }
2798
+ handleNoDefaultLightsChanged() {
2799
+ this.updateStreamAttributes();
2800
+ }
2744
2801
  /**
2745
2802
  * @ignore
2746
2803
  */
@@ -2944,7 +3001,6 @@ let Viewer = class {
2944
3001
  if (previous.type !== 'connected') {
2945
3002
  this.errorMessage = undefined;
2946
3003
  this.canvasRenderer = measureCanvasRenderer(paintTime, createCanvasRenderer(), this.getResolvedConfig().flags.logFrameRate, (timings) => this.reportPerformance(timings));
2947
- this.resizeRenderer = measureCanvasRenderer(paintTime, createHiddenCanvasRenderer(), this.getResolvedConfig().flags.logFrameRate, (timings) => this.reportPerformance(timings));
2948
3004
  this.emitConnectionChange({
2949
3005
  status: 'connected',
2950
3006
  jwt: state.token.token,
@@ -2988,14 +3044,19 @@ let Viewer = class {
2988
3044
  this.updateCanvasDimensions(canvasDimensions);
2989
3045
  this.isResizeUpdate = false;
2990
3046
  },
3047
+ predicate: () => {
3048
+ if (this.isResizeUpdate) {
3049
+ return (this.dimensions == null ||
3050
+ dimensions.isEqual(this.dimensions, data.frame.image.imageAttr.frameDimensions));
3051
+ }
3052
+ return true;
3053
+ },
2991
3054
  };
2992
3055
  this.frameReceived.emit(this.frame);
2993
3056
  if (this.frame.scene.hasChanged) {
2994
3057
  this.sceneChanged.emit();
2995
3058
  }
2996
- const drawnFrame = this.isResizeUpdate
2997
- ? await this.resizeRenderer(data)
2998
- : await this.canvasRenderer(data);
3059
+ const drawnFrame = await this.canvasRenderer(data);
2999
3060
  this.dispatchFrameDrawn(drawnFrame);
3000
3061
  }
3001
3062
  }
@@ -3060,6 +3121,7 @@ let Viewer = class {
3060
3121
  return {
3061
3122
  depthBuffers: this.getDepthBufferStreamAttributesValue(),
3062
3123
  experimentalGhosting: this.experimentalGhostingOpacity,
3124
+ noDefaultLights: this.noDefaultLights,
3063
3125
  featureLines: this.featureLines,
3064
3126
  featureHighlighting: this.featureHighlighting,
3065
3127
  featureMaps: this.featureMaps,
@@ -3076,13 +3138,18 @@ let Viewer = class {
3076
3138
  (_a = this.stream) === null || _a === void 0 ? void 0 : _a.update({ streamAttributes: this.getStreamAttributes() });
3077
3139
  }
3078
3140
  updateInteractionApi(previousFrame) {
3079
- if (previousFrame != null && this.frame != null) {
3080
- const hasChangedFromPerspective = previousFrame.scene.camera.isPerspective() &&
3141
+ if (this.frame != null) {
3142
+ const hasChangedFromPerspective = (previousFrame == null || previousFrame.scene.camera.isPerspective()) &&
3081
3143
  this.frame.scene.camera.isOrthographic();
3082
- const hasChangedFromOrthographic = previousFrame.scene.camera.isOrthographic() &&
3144
+ const hasChangedFromOrthographic = (previousFrame == null ||
3145
+ previousFrame.scene.camera.isOrthographic()) &&
3083
3146
  this.frame.scene.camera.isPerspective();
3084
3147
  if (hasChangedFromPerspective || hasChangedFromOrthographic) {
3085
3148
  this.interactionApi = this.createInteractionApi();
3149
+ this.cameraType = this.frame.scene.camera.isPerspective()
3150
+ ? 'perspective'
3151
+ : 'orthographic';
3152
+ this.cameraTypeChanged.emit(this.cameraType);
3086
3153
  this.interactionHandlers.forEach((handler) => this.initializeInteractionHandler(handler));
3087
3154
  }
3088
3155
  }
@@ -3147,6 +3214,7 @@ let Viewer = class {
3147
3214
  "cameraType": ["handleCameraTypeChanged"],
3148
3215
  "depthBuffers": ["handleDepthBuffersChanged"],
3149
3216
  "experimentalGhostingOpacity": ["handleExperimentalGhostingOpacityChanged"],
3217
+ "noDefaultLights": ["handleNoDefaultLightsChanged"],
3150
3218
  "featureLines": ["handleFeatureLinesChanged"],
3151
3219
  "featureHighlighting": ["handleFeatureHighlightingChanged"],
3152
3220
  "featureMaps": ["handleFeatureMapsChanged"],
@@ -1,9 +1,9 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { d as doc, N as NAMESPACE, w as win, p as promiseResolve, b as bootstrapLazy } from './index-10c1495a.js';
5
- import { g as globalScripts } from './app-globals-3a04a531.js';
6
- import './_commonjsHelpers-9943807e.js';
4
+ import { d as doc, N as NAMESPACE, w as win, p as promiseResolve, b as bootstrapLazy } from './index-a9fb8318.js';
5
+ import { g as globalScripts } from './app-globals-40df99a0.js';
6
+ import './_commonjsHelpers-11ca3be1.js';
7
7
 
8
8
  /*
9
9
  Stencil Client Patch Browser v2.12.1 | MIT Licensed | https://stenciljs.com
@@ -72,5 +72,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
72
72
 
73
73
  patchBrowser().then(options => {
74
74
  globalScripts();
75
- return bootstrapLazy([["vertex-viewer-default-toolbar",[[1,"vertex-viewer-default-toolbar",{"viewer":[16],"placement":[1],"direction":[1],"animationsDisabled":[4,"animations-disabled"],"animationMs":[2,"animation-ms"]}]]],["vertex-scene-tree",[[1,"vertex-scene-tree",{"overScanCount":[2,"over-scan-count"],"viewerSelector":[1,"viewer-selector"],"viewer":[1040],"rowData":[16],"config":[16],"configEnv":[1,"config-env"],"controller":[1040],"filterOnMetadata":[1028,"filter-on-metadata"],"metadataKeys":[16],"rows":[32],"totalRows":[32],"stateMap":[32],"connectionErrorDetails":[32],"attemptingRetry":[32],"invalidateRows":[64],"scrollToIndex":[64],"scrollToItem":[64],"expandAll":[64],"collapseAll":[64],"expandItem":[64],"collapseItem":[64],"toggleExpandItem":[64],"toggleItemVisibility":[64],"hideItem":[64],"showItem":[64],"selectItem":[64],"deselectItem":[64],"getRowAtIndex":[64],"getRowForEvent":[64],"getRowAtClientY":[64],"filterItems":[64],"fetchMetadataKeys":[64]},[[0,"search","handleSearch"]]]]],["vertex-viewer-measurement-tool",[[1,"vertex-viewer-measurement-tool",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"isMeasuring":[1540,"is-measuring"],"snapDistance":[2,"snap-distance"],"stateMap":[32]}]]],["vertex-viewer-markup",[[1,"vertex-viewer-markup",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"selectedMarkupId":[1025,"selected-markup-id"],"selectNew":[4,"select-new"],"toSelectMarkupId":[32],"pointerDownPosition":[32],"addMarkup":[64],"removeMarkup":[64],"getMarkupElements":[64],"getMarkupElement":[64]},[[0,"markupEnd","handleMarkupEnd"],[1,"pointerdown","handleMarkupPointerDown"]]]]],["vertex-viewer-markup-tool",[[1,"vertex-viewer-markup-tool",{"arrowTemplateId":[1,"arrow-template-id"],"circleTemplateId":[1,"circle-template-id"],"freeformTemplateId":[1,"freeform-template-id"],"tool":[1],"disabled":[4],"viewer":[16],"stateMap":[32],"reset":[64]}]]],["vertex-viewer-measurements",[[1,"vertex-viewer-measurements",{"distanceTemplateId":[1,"distance-template-id"],"tool":[1],"units":[1],"fractionalDigits":[2,"fractional-digits"],"disabled":[4],"viewer":[16],"selectedMeasurementId":[1025,"selected-measurement-id"],"snapDistance":[2,"snap-distance"],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"measurementModel":[16],"addMeasurement":[64],"removeMeasurement":[64],"getMeasurementElement":[64],"getMeasurementElements":[64]},[[0,"measureEnd","handleMeasureEnd"],[1,"pointerdown","handleMeasurementPointerDown"]]]]],["vertex-viewer-view-cube",[[1,"vertex-viewer-view-cube",{"xPositiveLabel":[1,"x-positive-label"],"xNegativeLabel":[1,"x-negative-label"],"yPositiveLabel":[1,"y-positive-label"],"yNegativeLabel":[1,"y-negative-label"],"zPositiveLabel":[1,"z-positive-label"],"zNegativeLabel":[1,"z-negative-label"],"standardViewsOff":[4,"standard-views-off"],"animationDuration":[2,"animation-duration"],"triadOff":[4,"triad-off"],"worldOrientation":[1040],"camera":[1040],"viewer":[16],"boxLength":[32],"triadPosition":[32]}]]],["vertex-viewer-measurement-precise",[[1,"vertex-viewer-measurement-precise",{"measurementModel":[16],"measurementOverlays":[16],"measurementController":[1040],"measurableEntityTypes":[16],"viewer":[16],"configEnv":[1,"config-env"],"config":[16],"overlays":[32]}]]],["vertex-scene-tree-table-cell",[[1,"vertex-scene-tree-table-cell",{"node":[16],"tree":[16],"value":[1],"placeholder":[1],"hoveredNodeId":[1,"hovered-node-id"],"expandToggle":[4,"expand-toggle"],"visibilityToggle":[4,"visibility-toggle"],"interactionsDisabled":[4,"interactions-disabled"],"recurseParentSelectionDisabled":[4,"recurse-parent-selection-disabled"]}]]],["vertex-scene-tree-table-column",[[1,"vertex-scene-tree-table-column",{"initialWidth":[2,"initial-width"],"minWidth":[2,"min-width"],"maxWidth":[2,"max-width"]}]]],["vertex-scene-tree-table-header",[[1,"vertex-scene-tree-table-header"]]],["vertex-scene-tree-table-resize-divider",[[1,"vertex-scene-tree-table-resize-divider",{"dragging":[32]}]]],["vertex-scene-tree-toolbar-group",[[1,"vertex-scene-tree-toolbar-group"]]],["vertex-viewer",[[1,"vertex-viewer",{"src":[1],"clientId":[1,"client-id"],"deviceId":[1,"device-id"],"config":[1],"configEnv":[1,"config-env"],"resolvedConfig":[1040],"cameraControls":[4,"camera-controls"],"cameraType":[1,"camera-type"],"keyboardControls":[4,"keyboard-controls"],"rotateAroundTapPoint":[4,"rotate-around-tap-point"],"token":[1025],"depthBuffers":[1,"depth-buffers"],"experimentalGhostingOpacity":[2,"experimental-ghosting-opacity"],"featureLines":[16],"featureHighlighting":[16],"featureMaps":[1,"feature-maps"],"selectionMaterial":[1,"selection-material"],"resizeDebounce":[2,"resize-debounce"],"frame":[1040],"stream":[1040],"stencilBuffer":[1040],"viewport":[1040],"dimensions":[32],"hostDimensions":[32],"errorMessage":[32],"cursor":[32],"stateMap":[32],"dispatchFrameDrawn":[64],"registerInteractionHandler":[64],"registerTapKeyInteraction":[64],"getInteractionTarget":[64],"addCursor":[64],"getInteractionHandlers":[64],"getBaseInteractionHandler":[64],"getJwt":[64],"load":[64],"unload":[64],"scene":[64],"isSceneReady":[64]},[[0,"tap","handleTapEvent"]]]]],["vertex-viewer-measurement-details",[[1,"vertex-viewer-measurement-details",{"measurementModel":[16],"measurementOverlays":[16],"measurementOutcome":[1040],"distanceUnits":[1,"distance-units"],"angleUnits":[1,"angle-units"],"fractionalDigits":[2,"fractional-digits"],"distanceFormatter":[16],"angleFormatter":[16],"areaFormatter":[16],"resultTypes":[16],"overlay":[32],"distanceMeasurementUnits":[32],"angleMeasurementUnits":[32],"areaMeasurementUnits":[32]}]]],["vertex-viewer-measurement-distance",[[1,"vertex-viewer-measurement-distance",{"start":[1040],"startJson":[1,"start-json"],"end":[1040],"endJson":[1,"end-json"],"distance":[1026],"showAxisReferenceLines":[4,"show-axis-reference-lines"],"snapDistance":[2,"snap-distance"],"units":[1],"fractionalDigits":[2,"fractional-digits"],"labelFormatter":[16],"anchorLabelOffset":[2,"anchor-label-offset"],"lineCapLength":[2,"line-cap-length"],"mode":[513],"interactingAnchor":[1537,"interacting-anchor"],"invalid":[1540],"camera":[16],"hitProvider":[16],"indicatorPt":[1040],"viewer":[16],"measurementModel":[16],"viewport":[32],"elementBounds":[32],"interactionCount":[32],"internalCamera":[32],"invalidateStateCounter":[32],"stateMap":[32],"measurementUnits":[32],"computeElementMetrics":[64]}]]],["vertex-scene-tree-search_3",[[1,"vertex-scene-tree-search",{"debounce":[2],"disabled":[4],"placeholder":[1],"value":[1025],"focused":[32],"setFocus":[64]}],[1,"vertex-scene-tree-table-layout",{"tree":[16],"controller":[16],"rows":[16],"totalRows":[2,"total-rows"],"rowHeight":[1026,"row-height"],"overScanCount":[2,"over-scan-count"],"rowData":[16],"layoutOffset":[1026,"layout-offset"],"scrollOffset":[1026,"scroll-offset"],"layoutHeight":[1026,"layout-height"],"layoutWidth":[1026,"layout-width"],"viewportStartIndex":[1026,"viewport-start-index"],"viewportEndIndex":[1026,"viewport-end-index"],"columnGridLayout":[32],"columnGridFixedLayout":[32],"hoveredNodeId":[32],"isComputingCellHeight":[32],"lastDividerPointerPosition":[32],"resizingColumnIndex":[32],"stateMap":[32],"scrollToPosition":[64]}],[1,"vertex-scene-tree-toolbar"]]],["vertex-viewer-button_3",[[1,"vertex-viewer-toolbar",{"placement":[1],"direction":[1]}],[1,"vertex-viewer-button"],[1,"vertex-viewer-toolbar-group",{"direction":[1]}]]],["vertex-viewer-dom-element_3",[[1,"vertex-viewer-dom-element",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040],"occlusionOff":[4,"occlusion-off"],"occluded":[516],"billboardOff":[4,"billboard-off"],"interactionsOff":[516,"interactions-off"]}],[1,"vertex-viewer-dom-group",{"position":[1040],"positionJson":[1,"position"],"rotation":[1040],"rotationJson":[1,"rotation"],"quaternion":[1040],"quaternionJson":[1,"quaternion"],"scale":[1040],"scaleJson":[1,"scale"],"matrix":[1040]}],[1,"vertex-viewer-dom-renderer",{"drawMode":[1,"draw-mode"],"viewer":[16],"camera":[1040],"depthBuffer":[1040],"viewport":[32],"invalidateFrameCounter":[32]},[[0,"propertyChange","handlePropertyChange"]]]]],["vertex-viewer-icon",[[1,"vertex-viewer-icon",{"name":[1],"size":[1]}]]],["vertex-viewer-layer",[[1,"vertex-viewer-layer",{"stretchOff":[516,"stretch-off"]}]]],["vertex-viewer-markup-arrow_3",[[1,"vertex-viewer-markup-arrow",{"start":[1040],"startJson":[1,"start"],"end":[1040],"endJson":[1,"end"],"mode":[513],"viewer":[16],"elementBounds":[32],"editAnchor":[32],"dispose":[64]}],[1,"vertex-viewer-markup-circle",{"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"startPosition":[32],"editAnchor":[32],"resizeBounds":[32],"dispose":[64]}],[1,"vertex-viewer-markup-freeform",{"points":[1040],"pointsJson":[1,"points"],"bounds":[1040],"boundsJson":[1,"bounds"],"mode":[513],"viewer":[16],"elementBounds":[32],"resizeStartPosition":[32],"editAnchor":[32],"resizeBounds":[32],"resizePoints":[32],"screenPoints":[32],"dispose":[64]}]]],["vertex-viewer-measurement-line_2",[[1,"vertex-viewer-measurement-overlays",{"measurementOverlays":[16],"camera":[1040],"viewer":[16],"overlays":[32]}],[1,"vertex-viewer-measurement-line",{"start":[16],"end":[16],"capLength":[2,"cap-length"],"pointerEvents":[1,"pointer-events"]}]]]], options);
75
+ return bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"pins\":[1040],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-viewer-default-toolbar\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"vertex-scene-tree\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[16],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"stateMap\":[32],\"errorDetails\":[32],\"attemptingRetry\":[32],\"invalidateRows\":[64],\"scrollToIndex\":[64],\"scrollToItem\":[64],\"expandAll\":[64],\"collapseAll\":[64],\"expandItem\":[64],\"collapseItem\":[64],\"toggleExpandItem\":[64],\"toggleItemVisibility\":[64],\"hideItem\":[64],\"showItem\":[64],\"selectItem\":[64],\"deselectItem\":[64],\"getRowAtIndex\":[64],\"getRowForEvent\":[64],\"getRowAtClientY\":[64],\"filterItems\":[64],\"selectFilteredItems\":[64],\"fetchMetadataKeys\":[64]},[[0,\"search\",\"handleSearch\"]]]]],[\"vertex-viewer-measurement-tool\",[[1,\"vertex-viewer-measurement-tool\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"isMeasuring\":[1540,\"is-measuring\"],\"snapDistance\":[2,\"snap-distance\"],\"stateMap\":[32]}]]],[\"vertex-viewer-markup\",[[1,\"vertex-viewer-markup\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"selectedMarkupId\":[1025,\"selected-markup-id\"],\"selectNew\":[4,\"select-new\"],\"toSelectMarkupId\":[32],\"pointerDownPosition\":[32],\"addMarkup\":[64],\"removeMarkup\":[64],\"getMarkupElements\":[64],\"getMarkupElement\":[64]},[[0,\"markupEnd\",\"handleMarkupEnd\"],[1,\"pointerdown\",\"handleMarkupPointerDown\"]]]]],[\"vertex-viewer-markup-tool\",[[1,\"vertex-viewer-markup-tool\",{\"arrowTemplateId\":[1,\"arrow-template-id\"],\"circleTemplateId\":[1,\"circle-template-id\"],\"freeformTemplateId\":[1,\"freeform-template-id\"],\"tool\":[1],\"disabled\":[4],\"viewer\":[16],\"stateMap\":[32],\"reset\":[64]}]]],[\"vertex-viewer-measurements\",[[1,\"vertex-viewer-measurements\",{\"distanceTemplateId\":[1,\"distance-template-id\"],\"tool\":[1],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"disabled\":[4],\"viewer\":[16],\"selectedMeasurementId\":[1025,\"selected-measurement-id\"],\"snapDistance\":[2,\"snap-distance\"],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"measurementModel\":[16],\"addMeasurement\":[64],\"removeMeasurement\":[64],\"getMeasurementElement\":[64],\"getMeasurementElements\":[64]},[[0,\"measureEnd\",\"handleMeasureEnd\"],[1,\"pointerdown\",\"handleMeasurementPointerDown\"]]]]],[\"vertex-viewer-view-cube\",[[1,\"vertex-viewer-view-cube\",{\"xPositiveLabel\":[1,\"x-positive-label\"],\"xNegativeLabel\":[1,\"x-negative-label\"],\"yPositiveLabel\":[1,\"y-positive-label\"],\"yNegativeLabel\":[1,\"y-negative-label\"],\"zPositiveLabel\":[1,\"z-positive-label\"],\"zNegativeLabel\":[1,\"z-negative-label\"],\"standardViewsOff\":[4,\"standard-views-off\"],\"animationDuration\":[2,\"animation-duration\"],\"triadOff\":[4,\"triad-off\"],\"worldOrientation\":[1040],\"camera\":[1040],\"viewer\":[16],\"boxLength\":[32],\"triadPosition\":[32]}]]],[\"vertex-viewer-measurement-precise\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[16],\"overlays\":[32]}]]],[\"vertex-scene-tree-table-cell\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hoveredNodeId\":[1,\"hovered-node-id\"],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"interactionsDisabled\":[4,\"interactions-disabled\"],\"recurseParentSelectionDisabled\":[4,\"recurse-parent-selection-disabled\"]}]]],[\"vertex-scene-tree-table-column\",[[1,\"vertex-scene-tree-table-column\",{\"initialWidth\":[2,\"initial-width\"],\"minWidth\":[2,\"min-width\"],\"maxWidth\":[2,\"max-width\"]}]]],[\"vertex-scene-tree-table-header\",[[1,\"vertex-scene-tree-table-header\"]]],[\"vertex-scene-tree-table-resize-divider\",[[1,\"vertex-scene-tree-table-resize-divider\",{\"dragging\":[32]}]]],[\"vertex-scene-tree-toolbar-group\",[[1,\"vertex-scene-tree-toolbar-group\"]]],[\"vertex-viewer\",[[1,\"vertex-viewer\",{\"src\":[1],\"clientId\":[1,\"client-id\"],\"deviceId\":[1025,\"device-id\"],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"resolvedConfig\":[1040],\"cameraControls\":[4,\"camera-controls\"],\"cameraType\":[1537,\"camera-type\"],\"keyboardControls\":[4,\"keyboard-controls\"],\"rotateAroundTapPoint\":[4,\"rotate-around-tap-point\"],\"token\":[1025],\"depthBuffers\":[1,\"depth-buffers\"],\"experimentalGhostingOpacity\":[2,\"experimental-ghosting-opacity\"],\"noDefaultLights\":[4,\"no-default-lights\"],\"featureLines\":[16],\"featureHighlighting\":[16],\"featureMaps\":[1,\"feature-maps\"],\"selectionMaterial\":[1,\"selection-material\"],\"resizeDebounce\":[2,\"resize-debounce\"],\"frame\":[1040],\"stream\":[1040],\"stencilBuffer\":[1040],\"viewport\":[1040],\"dimensions\":[32],\"hostDimensions\":[32],\"errorMessage\":[32],\"cursor\":[32],\"stateMap\":[32],\"dispatchFrameDrawn\":[64],\"registerInteractionHandler\":[64],\"registerTapKeyInteraction\":[64],\"getInteractionTarget\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getBaseInteractionHandler\":[64],\"getJwt\":[64],\"load\":[64],\"unload\":[64],\"scene\":[64],\"isSceneReady\":[64]},[[0,\"tap\",\"handleTapEvent\"]]]]],[\"vertex-viewer-measurement-details\",[[1,\"vertex-viewer-measurement-details\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementOutcome\":[1040],\"distanceUnits\":[1,\"distance-units\"],\"angleUnits\":[1,\"angle-units\"],\"fractionalDigits\":[2,\"fractional-digits\"],\"distanceFormatter\":[16],\"angleFormatter\":[16],\"areaFormatter\":[16],\"resultTypes\":[16],\"overlay\":[32],\"distanceMeasurementUnits\":[32],\"angleMeasurementUnits\":[32],\"areaMeasurementUnits\":[32]}]]],[\"vertex-viewer-transform-widget\",[[1,\"vertex-viewer-transform-widget\",{\"viewer\":[16],\"position\":[1040],\"controller\":[1040],\"hovered\":[1040]}]]],[\"vertex-viewer-icon\",[[1,\"vertex-viewer-icon\",{\"name\":[1],\"size\":[1]}]]],[\"vertex-viewer-pin-group\",[[0,\"vertex-viewer-pin-group\",{\"pin\":[16],\"matrix\":[1040],\"projectionViewMatrix\":[16],\"elementBounds\":[1040],\"pinModel\":[16],\"pinController\":[16],\"selected\":[4],\"invalidateStateCounter\":[32],\"leafNodesRendered\":[32]}]]],[\"vertex-viewer-dom-group\",[[1,\"vertex-viewer-dom-group\",{\"position\":[1040],\"positionJson\":[1,\"position\"],\"rotation\":[1040],\"rotationJson\":[1,\"rotation\"],\"quaternion\":[1040],\"quaternionJson\":[1,\"quaternion\"],\"scale\":[1040],\"scaleJson\":[1,\"scale\"],\"matrix\":[1040]}]]],[\"vertex-viewer-measurement-distance\",[[1,\"vertex-viewer-measurement-distance\",{\"start\":[1040],\"startJson\":[1,\"start-json\"],\"end\":[1040],\"endJson\":[1,\"end-json\"],\"distance\":[1026],\"showAxisReferenceLines\":[4,\"show-axis-reference-lines\"],\"snapDistance\":[2,\"snap-distance\"],\"units\":[1],\"fractionalDigits\":[2,\"fractional-digits\"],\"labelFormatter\":[16],\"anchorLabelOffset\":[2,\"anchor-label-offset\"],\"lineCapLength\":[2,\"line-cap-length\"],\"mode\":[513],\"interactingAnchor\":[1537,\"interacting-anchor\"],\"invalid\":[1540],\"camera\":[16],\"hitProvider\":[16],\"indicatorPt\":[1040],\"viewer\":[16],\"measurementModel\":[16],\"viewport\":[32],\"elementBounds\":[32],\"interactionCount\":[32],\"internalCamera\":[32],\"invalidateStateCounter\":[32],\"stateMap\":[32],\"measurementUnits\":[32],\"computeElementMetrics\":[64]}]]],[\"vertex-scene-tree-search_3\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"value\":[1025],\"focused\":[32],\"setFocus\":[64]}],[1,\"vertex-scene-tree-table-layout\",{\"tree\":[16],\"controller\":[16],\"rows\":[16],\"totalRows\":[2,\"total-rows\"],\"rowHeight\":[1026,\"row-height\"],\"overScanCount\":[2,\"over-scan-count\"],\"rowData\":[16],\"layoutOffset\":[1026,\"layout-offset\"],\"scrollOffset\":[1026,\"scroll-offset\"],\"layoutHeight\":[1026,\"layout-height\"],\"layoutWidth\":[1026,\"layout-width\"],\"viewportStartIndex\":[1026,\"viewport-start-index\"],\"viewportEndIndex\":[1026,\"viewport-end-index\"],\"columnGridLayout\":[32],\"columnGridFixedLayout\":[32],\"hoveredNodeId\":[32],\"isComputingCellHeight\":[32],\"lastDividerPointerPosition\":[32],\"resizingColumnIndex\":[32],\"isScrolling\":[32],\"scrollTimer\":[32],\"stateMap\":[32],\"scrollToPosition\":[64]}],[1,\"vertex-scene-tree-toolbar\"]]],[\"vertex-viewer-layer\",[[1,\"vertex-viewer-layer\",{\"stretchOff\":[516,\"stretch-off\"]}]]],[\"vertex-viewer-button_3\",[[1,\"vertex-viewer-toolbar\",{\"placement\":[1],\"direction\":[1]}],[1,\"vertex-viewer-button\"],[1,\"vertex-viewer-toolbar-group\",{\"direction\":[1]}]]],[\"vertex-viewer-pin-label_2\",[[0,\"vertex-viewer-pin-label\",{\"pin\":[16],\"elementBounds\":[16],\"value\":[1025],\"pinController\":[16],\"focused\":[32],\"computedScreenPosition\":[32],\"textareaRows\":[32],\"contentElBounds\":[32],\"setFocus\":[64]}],[0,\"vertex-viewer-pin-label-line\",{\"pinPoint\":[16],\"labelPoint\":[16]}]]],[\"vertex-viewer-dom-element_2\",[[1,\"vertex-viewer-dom-renderer\",{\"drawMode\":[1,\"draw-mode\"],\"viewer\":[16],\"camera\":[1040],\"depthBuffer\":[1040],\"viewport\":[32],\"invalidateFrameCounter\":[32]},[[0,\"propertyChange\",\"handlePropertyChange\"]]],[1,\"vertex-viewer-dom-element\",{\"position\":[1040],\"positionJson\":[1,\"position\"],\"rotation\":[1040],\"rotationJson\":[1,\"rotation\"],\"quaternion\":[1040],\"quaternionJson\":[1,\"quaternion\"],\"scale\":[1040],\"scaleJson\":[1,\"scale\"],\"matrix\":[1040],\"occlusionOff\":[4,\"occlusion-off\"],\"occluded\":[516],\"billboardOff\":[4,\"billboard-off\"],\"interactionsOff\":[516,\"interactions-off\"]}]]],[\"vertex-viewer-markup-arrow_3\",[[1,\"vertex-viewer-markup-arrow\",{\"start\":[1040],\"startJson\":[1,\"start\"],\"end\":[1040],\"endJson\":[1,\"end\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"editAnchor\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"startPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"resizeStartPosition\":[32],\"editAnchor\":[32],\"resizeBounds\":[32],\"resizePoints\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]],[\"vertex-viewer-measurement-line_2\",[[1,\"vertex-viewer-measurement-overlays\",{\"measurementOverlays\":[16],\"camera\":[1040],\"viewer\":[16],\"overlays\":[32]}],[1,\"vertex-viewer-measurement-line\",{\"start\":[16],\"end\":[16],\"capLength\":[2,\"cap-length\"],\"pointerEvents\":[1,\"pointer-events\"]}]]]]"), options);
76
76
  });
@@ -1,7 +1,7 @@
1
1
  /**!
2
2
  * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
- import { d as dimensions, p as point, v as vector3, r as ray, i as rectangle } from './bundle.esm-8ceccb91.js';
4
+ import { d as dimensions, p as point, v as vector3, r as ray, i as rectangle } from './bundle.esm-ce2c7ad3.js';
5
5
 
6
6
  /**
7
7
  * A `Viewport` represents the drawing area in the viewer.
@@ -35,6 +35,16 @@ class Viewport {
35
35
  static fromDimensions(dimensions) {
36
36
  return new Viewport(dimensions.width, dimensions.height);
37
37
  }
38
+ /**
39
+ * Transforms a normalized device coordinate to a 2D point within the
40
+ * viewport.
41
+ *
42
+ * @param ndc A 2D point in NDC.
43
+ * @returns A 2D point in the coordinate space of the viewport.
44
+ */
45
+ transformNdcPointToViewport(ndc) {
46
+ return point.create(ndc.x * this.center.x + this.center.x, -ndc.y * this.center.y + this.center.y);
47
+ }
38
48
  /**
39
49
  * Transforms a normalized device coordinate to a 2D point within the
40
50
  * viewport.
@@ -43,7 +53,7 @@ class Viewport {
43
53
  * @returns A 2D point in the coordinate space of the viewport.
44
54
  */
45
55
  transformVectorToViewport(ndc) {
46
- return point.create(ndc.x * this.center.x + this.center.x, -ndc.y * this.center.y + this.center.y);
56
+ return this.transformNdcPointToViewport(ndc);
47
57
  }
48
58
  /**
49
59
  * Transforms a world point to 2D point in viewport space.
@@ -131,9 +141,9 @@ class Viewport {
131
141
  */
132
142
  transformPointToOrthographicRay(pt, image, camera) {
133
143
  const ndc = this.transformScreenPointToNdc(pt, image);
134
- const world = vector3.transformNdcToWorldSpace(vector3.create(ndc.x, ndc.y, 0.5), camera.worldMatrix, camera.projectionMatrixInverse);
144
+ const origin = vector3.transformNdcToWorldSpace(vector3.create(ndc.x, ndc.y, 0), camera.worldMatrix, camera.projectionMatrixInverse);
135
145
  return ray.create({
136
- origin: world,
146
+ origin,
137
147
  direction: vector3.normalize(camera.viewVector),
138
148
  });
139
149
  }
@@ -0,0 +1,5 @@
1
+ /// <reference types="jest" />
2
+ declare const _default: jest.Mock<{
3
+ createShape: jest.Mock<jest.Mock<any, any>, []>;
4
+ }, []>;
5
+ export default _default;
@@ -0,0 +1,5 @@
1
+ /// <reference types="jest" />
2
+ declare const _default: jest.Mock<{
3
+ frame: jest.Mock<any, [callback: any]>;
4
+ }, []>;
5
+ export default _default;
@@ -1,7 +1,7 @@
1
1
  import { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';
2
2
  import { GetTreeResponse } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb';
3
3
  import { SceneTreeAPIClient } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';
4
- import { Disposable, EventDispatcher } from '@vertexvis/utils';
4
+ import { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';
5
5
  import { MetadataKey } from '../interfaces';
6
6
  import { SceneTreeErrorDetails } from './errors';
7
7
  import { Row } from './row';
@@ -12,6 +12,7 @@ export interface ConnectOptions {
12
12
  export declare type JwtProvider = () => string | undefined;
13
13
  export interface SceneTreeState {
14
14
  totalRows: number;
15
+ totalFilteredRows?: number;
15
16
  rows: Row[];
16
17
  connection: ConnectionState;
17
18
  }
@@ -52,6 +53,10 @@ export interface FilterTreeOptions {
52
53
  * nodes.
53
54
  */
54
55
  includeCollapsed?: boolean;
56
+ /**
57
+ * Indicates if the filter should be an exact match with the results.
58
+ */
59
+ exactMatch?: boolean;
55
60
  /**
56
61
  * The metadata keys to filter the tree on.
57
62
  */
@@ -89,6 +94,13 @@ export declare class SceneTreeController {
89
94
  */
90
95
  get isConnected(): boolean;
91
96
  constructor(client: SceneTreeAPIClient, rowLimit: number, connectOptions?: ConnectOptions);
97
+ /**
98
+ * Registers an event listener that will be invoked when the state changes
99
+ *
100
+ * @param listener The listener to add.
101
+ * @returns A disposable that can be used to remove the listener.
102
+ */
103
+ stateChanged(listener: Listener<SceneTreeState | undefined>): Disposable;
92
104
  connect(jwtProvider: JwtProvider): Promise<void>;
93
105
  private clearReconnectTimer;
94
106
  private startIdleReconnectTimer;
@@ -1,6 +1,8 @@
1
1
  export declare enum SceneTreeErrorCode {
2
2
  UNKNOWN = 0,
3
- SCENE_TREE_DISABLED = 1
3
+ SCENE_TREE_DISABLED = 1,
4
+ MISSING_VIEWER = 2,
5
+ DISCONNECTED = 3
4
6
  }
5
7
  export declare class SceneTreeErrorDetails {
6
8
  readonly code: SceneTreeErrorCode;
@@ -8,4 +8,5 @@ export declare function showItem(viewer: HTMLVertexViewerElement, id: string): P
8
8
  export declare function hideItem(viewer: HTMLVertexViewerElement, id: string): Promise<void>;
9
9
  export declare function selectItem(viewer: HTMLVertexViewerElement, id: string, { material, append }: ViewerSelectItemOptions): Promise<void>;
10
10
  export declare function selectRangeInSceneTree(viewer: HTMLVertexViewerElement, start: number, end: number, { material, append }: ViewerSelectItemOptions): Promise<void>;
11
+ export declare function selectFilterResults(viewer: HTMLVertexViewerElement, filter: string, keys: string[], exactMatch: boolean, { material, append }: ViewerSelectItemOptions): Promise<void>;
11
12
  export declare function deselectItem(viewer: HTMLVertexViewerElement, id: string): Promise<void>;
@@ -97,10 +97,13 @@ export declare class SceneTree {
97
97
  configEnv: Environment;
98
98
  controller?: SceneTreeController;
99
99
  /**
100
- * Temporary flag to indicate whether metadata should be used when filtering
101
- * as opposed to just the name of the item.
100
+ * Indicates whether the metadata search should use an exact match.
102
101
  */
103
- filterOnMetadata: boolean;
102
+ metadataSearchExactMatch: boolean;
103
+ /**
104
+ * A list of the metadata keys that a scene tree search should be performed on.
105
+ */
106
+ metadataSearchKeys: MetadataKey[];
104
107
  /**
105
108
  * A list of part metadata keys that will be made available to each row. This
106
109
  * metadata can be used for data binding inside the scene tree's template.
@@ -115,7 +118,7 @@ export declare class SceneTree {
115
118
  * @State to allow to preserve state across live-reloads.
116
119
  */
117
120
  private stateMap;
118
- private connectionErrorDetails;
121
+ private errorDetails;
119
122
  private attemptingRetry;
120
123
  private el;
121
124
  private lastSelectedItemId?;
@@ -251,6 +254,14 @@ export declare class SceneTree {
251
254
  * the result of this filter when the promise completes.
252
255
  */
253
256
  filterItems(term: string, options?: FilterTreeOptions): Promise<void>;
257
+ /**
258
+ * Performs an async request that will select the filtered items in the tree
259
+ * that match the given term.
260
+ *
261
+ * @param term The filter term.
262
+ * @returns A promise that completes when the request has completed.
263
+ */
264
+ selectFilteredItems(term: string): Promise<void>;
254
265
  /**
255
266
  * Fetches the metadata keys that are available to the scene tree. Metadata
256
267
  * keys can be assigned to the scene tree using the `metadataKeys` property.
@@ -272,6 +283,7 @@ export declare class SceneTree {
272
283
  * @ignore
273
284
  */
274
285
  protected componentDidLoad(): Promise<void>;
286
+ componentWillRender(): void;
275
287
  /**
276
288
  * @ignore
277
289
  */
@@ -28,6 +28,10 @@ export declare class SceneTreeTableCell {
28
28
  * @internal
29
29
  */
30
30
  hoveredNodeId?: string;
31
+ /**
32
+ * @internal
33
+ */
34
+ isScrolling?: boolean;
31
35
  /**
32
36
  * Indicates whether to display a button for toggling the expanded state of
33
37
  * the node associated with this cell.
@@ -74,7 +78,7 @@ export declare class SceneTreeTableCell {
74
78
  componentWillRender(): void;
75
79
  render(): h.JSX.IntrinsicElements;
76
80
  private displayValue;
77
- private handleCellPointerDown;
81
+ private handleCellPointerUp;
78
82
  private toggleExpansion;
79
83
  private toggleVisibility;
80
84
  private toggleAttribute;
@@ -99,6 +99,8 @@ export declare class SceneTreeTableLayout {
99
99
  private isComputingCellHeight;
100
100
  private lastDividerPointerPosition?;
101
101
  private resizingColumnIndex?;
102
+ private isScrolling;
103
+ private scrollTimer;
102
104
  /**
103
105
  * This stores internal state that you want to preserve across live-reloads,
104
106
  * but shouldn't trigger a refresh if the data changes. Marking this with