@vertexvis/viewer 0.13.2-canary.9 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/dist/cjs/{_commonjsHelpers-537d719a.js → _commonjsHelpers-dcc4cf71.js} +21 -0
  2. package/dist/cjs/{app-globals-3671e828.js → app-globals-2035678d.js} +1 -1
  3. package/dist/cjs/{browser.esm-075810bf.js → browser.esm-0bcdc581.js} +1 -1
  4. package/dist/cjs/{bundle.esm-618a5fe9.js → bundle.esm-22b6f2d6.js} +35 -1
  5. package/dist/cjs/{config-fb124bac.js → config-c63caa4f.js} +3 -2
  6. package/dist/cjs/{cursors-d71f6a74.js → cursors-f5d3c9a6.js} +13 -1
  7. package/dist/cjs/{dom-57ef84e9.js → dom-8d90bfaf.js} +1 -1
  8. package/dist/cjs/dom-d1bbd67c.js +10 -0
  9. package/dist/cjs/elementRectObserver-9b28f182.js +25 -0
  10. package/dist/cjs/entities-9eb7e608.js +41 -0
  11. package/dist/cjs/{entities-90f1347a.js → entities-e71231d8.js} +4 -4
  12. package/dist/cjs/{grpc-web-client.umd-60a79aae.js → grpc-web-client.umd-2af20c1b.js} +1 -1
  13. package/dist/cjs/{index-e100709a.js → index-4138aa2c.js} +1 -0
  14. package/dist/cjs/{index-3bc6bac0.js → index-b9d13137.js} +1 -1
  15. package/dist/cjs/index.cjs.js +25 -22
  16. package/dist/cjs/loader.cjs.js +4 -4
  17. package/dist/cjs/{mapper-80ee2957.js → mapper-08bbab48.js} +4 -4
  18. package/dist/cjs/{markup-7f7de5f2.js → markup-f7e61d16.js} +2 -2
  19. package/dist/cjs/{measurement-f1ae9248.js → measurement-3367e9b7.js} +2 -2
  20. package/dist/cjs/{model-55abd9ab.js → model-5ca87867.js} +1 -1
  21. package/dist/cjs/model-a9cfd037.js +246 -0
  22. package/dist/cjs/{overlays-68e8eff2.js → overlays-b0ba69fd.js} +2 -2
  23. package/dist/cjs/{png-decoder-076131d8.js → png-decoder-ef097f37.js} +2 -2
  24. package/dist/cjs/{results-e9496869.js → results-178e89a3.js} +1 -1
  25. package/dist/cjs/{scene-92728420.js → scene-b6b78909.js} +49 -12
  26. package/dist/cjs/{stencil-a664cd10.js → stencil-ef19638e.js} +5 -1
  27. package/dist/cjs/{streamAttributes-81eb52f2.js → streamAttributes-c343bdc8.js} +1993 -78
  28. package/dist/cjs/utils-78928e4e.js +162 -0
  29. package/dist/cjs/{utils-6397efca.js → utils-b157b0af.js} +1 -1
  30. package/dist/cjs/{utils-463cd52e.js → utils-c74b8bf0.js} +1 -1
  31. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +16 -6
  32. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +16 -14
  33. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  34. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  35. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +3 -3
  36. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-scene-tree.cjs.entry.js +154 -27
  38. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +3 -3
  39. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  40. package/dist/cjs/{vertex-viewer-dom-element_3.cjs.entry.js → vertex-viewer-dom-element_2.cjs.entry.js} +20 -178
  41. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +191 -0
  42. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +6 -3
  43. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  44. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +49 -196
  45. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +5 -5
  46. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +5 -5
  47. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +8 -7
  48. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +16 -15
  49. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +10 -9
  50. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +18 -35
  51. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +8 -7
  52. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +12 -11
  53. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +167 -0
  54. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +276 -0
  55. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +322 -0
  56. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +13272 -0
  57. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +8 -7
  58. package/dist/cjs/vertex-viewer.cjs.entry.js +119 -52
  59. package/dist/cjs/viewer.cjs.js +4 -4
  60. package/dist/cjs/{viewport-54b1389d.js → viewport-5ca619f7.js} +14 -4
  61. package/dist/collection/__mocks__/regl-shape.js +6 -0
  62. package/dist/collection/__mocks__/regl.js +3 -0
  63. package/dist/collection/collection-manifest.json +5 -0
  64. package/dist/collection/components/scene-tree/lib/controller.js +17 -5
  65. package/dist/collection/components/scene-tree/lib/errors.js +7 -1
  66. package/dist/collection/components/scene-tree/lib/viewer-ops.js +12 -1
  67. package/dist/collection/components/scene-tree/scene-tree.js +112 -22
  68. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +0 -7
  69. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +34 -12
  70. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -2
  71. package/dist/collection/components/viewer/viewer.js +79 -14
  72. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +32 -4
  73. package/dist/collection/components/viewer-dom-group/utils.js +3 -2
  74. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +30 -2
  75. package/dist/collection/components/viewer-icon/viewer-icon.js +5 -2
  76. package/dist/collection/components/viewer-markup/utils.js +3 -2
  77. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +2 -2
  78. package/dist/collection/components/viewer-pin-group/pin-renderer.js +12 -0
  79. package/dist/collection/components/viewer-pin-group/utils.js +24 -0
  80. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +83 -0
  81. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +276 -0
  82. package/dist/collection/components/viewer-pin-label/utils.js +4 -0
  83. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +154 -0
  84. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +410 -0
  85. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +36 -0
  86. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +61 -0
  87. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +9 -0
  88. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +277 -0
  89. package/dist/collection/components/viewer-transform-widget/__mocks__/widget.js +21 -0
  90. package/dist/collection/components/viewer-transform-widget/util.js +78 -0
  91. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +48 -0
  92. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +442 -0
  93. package/dist/collection/components/viewer-transform-widget/widget.js +259 -0
  94. package/dist/collection/lib/cursors.js +11 -1
  95. package/dist/collection/lib/interactions/baseInteractionHandler.js +9 -2
  96. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +4 -3
  97. package/dist/collection/lib/interactions/interactionApi.js +21 -1
  98. package/dist/collection/lib/interactions/interactionApiOrthographic.js +18 -1
  99. package/dist/collection/lib/interactions/mouseInteractionHandler.js +4 -4
  100. package/dist/collection/lib/interactions/mouseInteractions.js +24 -1
  101. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +1 -2
  102. package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
  103. package/dist/collection/lib/mappers/streamAttributes.js +4 -2
  104. package/dist/collection/lib/pins/controller.js +100 -0
  105. package/dist/collection/lib/pins/interactions.js +183 -0
  106. package/dist/collection/lib/pins/model.js +136 -0
  107. package/dist/collection/lib/rendering/canvas.js +6 -28
  108. package/dist/collection/lib/scenes/camera.js +34 -2
  109. package/dist/collection/lib/scenes/colorMaterial.js +8 -8
  110. package/dist/collection/lib/scenes/mapper.js +2 -1
  111. package/dist/collection/lib/scenes/queries.js +6 -4
  112. package/dist/collection/lib/transforms/axis-lines.js +31 -0
  113. package/dist/collection/lib/transforms/axis-rotation.js +34 -0
  114. package/dist/collection/lib/transforms/axis-translation.js +30 -0
  115. package/dist/collection/lib/transforms/controller.js +117 -0
  116. package/dist/collection/lib/transforms/drawable.js +47 -0
  117. package/dist/collection/lib/transforms/hits.js +51 -0
  118. package/dist/collection/lib/transforms/line.js +58 -0
  119. package/dist/collection/lib/transforms/mesh.js +35 -0
  120. package/dist/collection/lib/transforms/shape.js +2 -0
  121. package/dist/collection/lib/transforms/util.js +4 -0
  122. package/dist/collection/lib/types/depthBuffer.js +2 -2
  123. package/dist/collection/lib/types/frameCamera.js +4 -6
  124. package/dist/collection/lib/types/viewport.js +14 -4
  125. package/dist/custom-elements/index.d.ts +30 -0
  126. package/dist/custom-elements/index.js +16835 -335
  127. package/dist/esm/{_commonjsHelpers-9943807e.js → _commonjsHelpers-11ca3be1.js} +20 -1
  128. package/dist/esm/{app-globals-3a04a531.js → app-globals-40df99a0.js} +1 -1
  129. package/dist/esm/{browser.esm-e72d80ad.js → browser.esm-1ddb69c9.js} +1 -1
  130. package/dist/esm/{bundle.esm-8ceccb91.js → bundle.esm-ce2c7ad3.js} +36 -2
  131. package/dist/esm/{config-fb7cd8ff.js → config-7075833a.js} +3 -2
  132. package/dist/esm/{cursors-fc2deed7.js → cursors-98b7d89d.js} +12 -2
  133. package/dist/esm/{dom-2cd18856.js → dom-5b164305.js} +1 -1
  134. package/dist/esm/dom-be140992.js +8 -0
  135. package/dist/esm/elementRectObserver-39cf7b95.js +23 -0
  136. package/dist/esm/{entities-78557270.js → entities-46be90d5.js} +4 -4
  137. package/dist/esm/entities-ce81dd7f.js +41 -0
  138. package/dist/esm/{grpc-web-client.umd-5982b7b0.js → grpc-web-client.umd-5409853c.js} +1 -1
  139. package/dist/esm/{index-10c1495a.js → index-a9fb8318.js} +1 -1
  140. package/dist/esm/{index-455380d0.js → index-e841d91b.js} +1 -1
  141. package/dist/esm/index.js +15 -14
  142. package/dist/esm/index.mjs +15 -14
  143. package/dist/esm/loader.js +4 -4
  144. package/dist/esm/loader.mjs +4 -4
  145. package/dist/esm/{mapper-da36de17.js → mapper-bde6c607.js} +4 -4
  146. package/dist/esm/{markup-c313d99c.js → markup-8904f2fe.js} +2 -2
  147. package/dist/esm/{measurement-544b69d5.js → measurement-3f9b0ae0.js} +2 -2
  148. package/dist/esm/{model-2a34b443.js → model-e54b081f.js} +1 -1
  149. package/dist/esm/model-f679c493.js +241 -0
  150. package/dist/esm/{overlays-354e275c.js → overlays-ea2d45ec.js} +2 -2
  151. package/dist/esm/{png-decoder-07de80d1.js → png-decoder-d4b65417.js} +2 -2
  152. package/dist/esm/{results-4d0c3568.js → results-3b4df2cf.js} +1 -1
  153. package/dist/esm/{scene-2bfcce74.js → scene-22ebacfd.js} +49 -12
  154. package/dist/esm/{stencil-9bf7fb9e.js → stencil-8b20e5a8.js} +5 -2
  155. package/dist/esm/{streamAttributes-d0b384b3.js → streamAttributes-72a92676.js} +1982 -67
  156. package/dist/esm/{utils-3ea0acdd.js → utils-0b980078.js} +1 -1
  157. package/dist/esm/utils-c714e2f7.js +153 -0
  158. package/dist/esm/{utils-e0941c61.js → utils-f11bd6f7.js} +1 -1
  159. package/dist/esm/vertex-scene-tree-search_3.entry.js +16 -6
  160. package/dist/esm/vertex-scene-tree-table-cell.entry.js +16 -14
  161. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  162. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  163. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +3 -3
  164. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  165. package/dist/esm/vertex-scene-tree.entry.js +154 -27
  166. package/dist/esm/vertex-viewer-button_3.entry.js +3 -3
  167. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  168. package/dist/esm/{vertex-viewer-dom-element_3.entry.js → vertex-viewer-dom-element_2.entry.js} +21 -178
  169. package/dist/esm/vertex-viewer-dom-group.entry.js +187 -0
  170. package/dist/esm/vertex-viewer-icon.entry.js +6 -3
  171. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  172. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +8 -155
  173. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  174. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  175. package/dist/esm/vertex-viewer-measurement-details.entry.js +8 -7
  176. package/dist/esm/vertex-viewer-measurement-distance.entry.js +16 -15
  177. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +10 -9
  178. package/dist/esm/vertex-viewer-measurement-precise.entry.js +15 -32
  179. package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -7
  180. package/dist/esm/vertex-viewer-measurements.entry.js +12 -11
  181. package/dist/esm/vertex-viewer-pin-group.entry.js +163 -0
  182. package/dist/esm/vertex-viewer-pin-label_2.entry.js +271 -0
  183. package/dist/esm/vertex-viewer-pin-tool.entry.js +318 -0
  184. package/dist/esm/vertex-viewer-transform-widget.entry.js +13268 -0
  185. package/dist/esm/vertex-viewer-view-cube.entry.js +8 -7
  186. package/dist/esm/vertex-viewer.entry.js +118 -51
  187. package/dist/esm/viewer.js +4 -4
  188. package/dist/esm/{viewport-5cc7b128.js → viewport-e39e2eba.js} +14 -4
  189. package/dist/types/__mocks__/regl-shape.d.ts +5 -0
  190. package/dist/types/__mocks__/regl.d.ts +5 -0
  191. package/dist/types/components/scene-tree/lib/controller.d.ts +13 -1
  192. package/dist/types/components/scene-tree/lib/errors.d.ts +3 -1
  193. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -0
  194. package/dist/types/components/scene-tree/scene-tree.d.ts +16 -4
  195. package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +6 -2
  196. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +2 -0
  197. package/dist/types/components/viewer/viewer.d.ts +13 -1
  198. package/dist/types/components/viewer-dom-element/viewer-dom-element.d.ts +10 -2
  199. package/dist/types/components/viewer-dom-group/viewer-dom-group.d.ts +9 -1
  200. package/dist/types/components/viewer-icon/viewer-icon.d.ts +1 -1
  201. package/dist/types/components/viewer-pin-group/pin-renderer.d.ts +8 -0
  202. package/dist/types/components/viewer-pin-group/utils.d.ts +2 -0
  203. package/dist/types/components/viewer-pin-group/viewer-pin-group.d.ts +49 -0
  204. package/dist/types/components/viewer-pin-label/utils.d.ts +1 -0
  205. package/dist/types/components/viewer-pin-label/viewer-pin-label.d.ts +77 -0
  206. package/dist/types/components/viewer-pin-label-line/viewer-pin-label-line.d.ts +7 -0
  207. package/dist/types/components/viewer-pin-tool/viewer-pin-tool.d.ts +68 -0
  208. package/dist/types/components/viewer-transform-widget/__mocks__/widget.d.ts +11 -0
  209. package/dist/types/components/viewer-transform-widget/util.d.ts +5 -0
  210. package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +81 -0
  211. package/dist/types/components/viewer-transform-widget/widget.d.ts +74 -0
  212. package/dist/types/components.d.ts +303 -12
  213. package/dist/types/interfaces.d.ts +1 -0
  214. package/dist/types/lib/cursors.d.ts +10 -0
  215. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +4 -3
  216. package/dist/types/lib/interactions/interactionApi.d.ts +10 -1
  217. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +7 -0
  218. package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +2 -2
  219. package/dist/types/lib/interactions/mouseInteractions.d.ts +6 -0
  220. package/dist/types/lib/pins/controller.d.ts +70 -0
  221. package/dist/types/lib/pins/interactions.d.ts +30 -0
  222. package/dist/types/lib/pins/model.d.ts +104 -0
  223. package/dist/types/lib/rendering/canvas.d.ts +1 -2
  224. package/dist/types/lib/scenes/camera.d.ts +10 -0
  225. package/dist/types/lib/scenes/colorMaterial.d.ts +1 -0
  226. package/dist/types/lib/scenes/queries.d.ts +4 -2
  227. package/dist/types/lib/transforms/axis-lines.d.ts +6 -0
  228. package/dist/types/lib/transforms/axis-rotation.d.ts +6 -0
  229. package/dist/types/lib/transforms/axis-translation.d.ts +6 -0
  230. package/dist/types/lib/transforms/controller.d.ts +17 -0
  231. package/dist/types/lib/transforms/drawable.d.ts +26 -0
  232. package/dist/types/lib/transforms/hits.d.ts +10 -0
  233. package/dist/types/lib/transforms/line.d.ts +31 -0
  234. package/dist/types/lib/transforms/mesh.d.ts +23 -0
  235. package/dist/types/lib/transforms/shape.d.ts +3 -0
  236. package/dist/types/lib/transforms/util.d.ts +2 -0
  237. package/dist/types/lib/types/frameCamera.d.ts +1 -0
  238. package/dist/types/lib/types/viewport.d.ts +8 -0
  239. package/dist/types/regl-shape.d.ts +26 -0
  240. package/dist/viewer/index.esm.js +1 -1
  241. package/dist/viewer/p-058632f4.js +4 -0
  242. package/dist/viewer/p-07aeee89.js +10 -0
  243. package/dist/viewer/{p-e75bba97.js → p-083f427e.js} +1 -1
  244. package/dist/viewer/{p-a455ae02.entry.js → p-08eda2b2.entry.js} +1 -1
  245. package/dist/viewer/{p-bcb66f97.js → p-096e60bd.js} +1 -1
  246. package/dist/viewer/p-0bc4b3f7.js +4 -0
  247. package/dist/viewer/p-148c5f1a.js +4 -0
  248. package/dist/viewer/p-1db9bd1a.entry.js +4 -0
  249. package/dist/viewer/{p-70ca1ea7.entry.js → p-1f251549.entry.js} +1 -1
  250. package/dist/viewer/p-29986489.js +4 -0
  251. package/dist/viewer/{p-cafa57a6.js → p-2e581b2a.js} +1 -1
  252. package/dist/viewer/{p-d2bcf788.entry.js → p-33daeb09.entry.js} +1 -1
  253. package/dist/viewer/p-39803f8f.js +4 -0
  254. package/dist/viewer/p-465a92d9.entry.js +4 -0
  255. package/dist/viewer/p-4a65ddb3.entry.js +4 -0
  256. package/dist/viewer/{p-099fe6ca.entry.js → p-4aaf02b4.entry.js} +1 -1
  257. package/dist/viewer/{p-31658489.entry.js → p-4c3a3738.entry.js} +1 -1
  258. package/dist/viewer/{p-e38458da.js → p-4d37d97c.js} +1 -1
  259. package/dist/viewer/p-4fdf8553.entry.js +4 -0
  260. package/dist/viewer/p-5679f46b.entry.js +4 -0
  261. package/dist/viewer/p-5809b400.js +4 -0
  262. package/dist/viewer/{p-fa9a0bed.js → p-58dacdce.js} +1 -1
  263. package/dist/viewer/p-61a042f0.entry.js +4 -0
  264. package/dist/viewer/{p-b8774c9c.js → p-6c377932.js} +1 -1
  265. package/dist/viewer/p-6d379d4a.js +4 -0
  266. package/dist/viewer/p-6d70b198.entry.js +4 -0
  267. package/dist/viewer/p-6e7e094a.entry.js +4 -0
  268. package/dist/viewer/{p-661f0612.js → p-70e5e8a8.js} +1 -1
  269. package/dist/viewer/p-74102b29.entry.js +32 -0
  270. package/dist/viewer/p-7a5a9a93.entry.js +4 -0
  271. package/dist/viewer/p-7c755e0e.entry.js +4 -0
  272. package/dist/viewer/{p-3a20a038.js → p-92fe4417.js} +1 -1
  273. package/dist/viewer/{p-7e0328aa.js → p-98e6a50e.js} +1 -1
  274. package/dist/viewer/{p-388a43f7.js → p-990f98c2.js} +1 -1
  275. package/dist/viewer/{p-487e054a.js → p-99352cf0.js} +1 -1
  276. package/dist/viewer/{p-1ca95f9a.entry.js → p-99799a71.entry.js} +1 -1
  277. package/dist/viewer/p-9acd1b44.js +4 -0
  278. package/dist/viewer/{p-69058178.js → p-9bcde9c8.js} +1 -1
  279. package/dist/viewer/{p-5b342e97.js → p-a2ef15e5.js} +1 -1
  280. package/dist/viewer/{p-61b1097b.entry.js → p-a32cc378.entry.js} +1 -1
  281. package/dist/viewer/p-a380f0c2.js +4 -0
  282. package/dist/viewer/{p-41028d3b.entry.js → p-af37b63e.entry.js} +1 -1
  283. package/dist/viewer/p-b6b727a6.entry.js +4 -0
  284. package/dist/viewer/p-c2e3312b.js +4 -0
  285. package/dist/viewer/{p-4717c98e.entry.js → p-c9f91798.entry.js} +1 -1
  286. package/dist/viewer/p-ca518dcb.entry.js +4 -0
  287. package/dist/viewer/p-d828fd18.entry.js +4 -0
  288. package/dist/viewer/p-d996b1d2.entry.js +4 -0
  289. package/dist/viewer/{p-3f0f83ad.js → p-db01460a.js} +1 -1
  290. package/dist/viewer/p-db716103.entry.js +4 -0
  291. package/dist/viewer/p-df8fbe56.js +4 -0
  292. package/dist/viewer/p-dfe5a97d.js +4 -0
  293. package/dist/viewer/p-e42cb163.js +4 -0
  294. package/dist/viewer/p-eb8e5db5.js +4 -0
  295. package/dist/viewer/{p-46459921.entry.js → p-ebb801c3.entry.js} +1 -1
  296. package/dist/viewer/p-ebd85d58.entry.js +4 -0
  297. package/dist/viewer/p-eefae62a.entry.js +4 -0
  298. package/dist/viewer/viewer.esm.js +1 -1
  299. package/package.json +12 -10
  300. package/readme.md +4 -4
  301. package/dist/viewer/p-0a189e62.entry.js +0 -4
  302. package/dist/viewer/p-112455b1.js +0 -4
  303. package/dist/viewer/p-3561d910.js +0 -4
  304. package/dist/viewer/p-49d36e94.entry.js +0 -4
  305. package/dist/viewer/p-73a5eacc.entry.js +0 -4
  306. package/dist/viewer/p-77be081a.js +0 -4
  307. package/dist/viewer/p-809d09d9.js +0 -4
  308. package/dist/viewer/p-858bd2c7.entry.js +0 -4
  309. package/dist/viewer/p-89b66838.entry.js +0 -32
  310. package/dist/viewer/p-90bb0a1f.entry.js +0 -4
  311. package/dist/viewer/p-a93a63a9.js +0 -4
  312. package/dist/viewer/p-b043b076.entry.js +0 -4
  313. package/dist/viewer/p-b0ac6b3c.entry.js +0 -4
  314. package/dist/viewer/p-bcde5521.entry.js +0 -4
  315. package/dist/viewer/p-d1584404.js +0 -4
  316. package/dist/viewer/p-d32b54cb.js +0 -4
  317. package/dist/viewer/p-d3a20af4.entry.js +0 -4
  318. package/dist/viewer/p-d9f99f4d.entry.js +0 -4
  319. package/dist/viewer/p-ebd55df7.entry.js +0 -4
  320. package/dist/viewer/p-f0411993.entry.js +0 -4
  321. package/dist/viewer/p-f482325b.js +0 -10
  322. package/dist/viewer/p-fad9693e.js +0 -4
  323. package/dist/viewer/p-ffdeb08c.js +0 -4
@@ -1,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,6 @@ 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
- console.log(Math.abs(angle$1));
1383
1450
  if (Math.abs(angle$1) > 0.5) {
1384
1451
  (_d = this.interactionApi) === null || _d === void 0 ? void 0 : _d.twistCamera(angle$1);
1385
1452
  }
@@ -1444,7 +1511,7 @@ class MultiPointerInteractionHandler extends MultiTouchInteractionHandler {
1444
1511
 
1445
1512
  class PointerInteractionHandler extends BaseInteractionHandler {
1446
1513
  constructor(getConfig) {
1447
- 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);
1448
1515
  this.touchPoints = new Set();
1449
1516
  this.handlePointerDown = this.handlePointerDown.bind(this);
1450
1517
  this.handlePointerUp = this.handlePointerUp.bind(this);
@@ -1907,36 +1974,15 @@ function measureCanvasRenderer(meter, renderer, logFrameRate, callback, interval
1907
1974
  function createCanvasRenderer() {
1908
1975
  let lastFrameNumber;
1909
1976
  return async (data) => {
1910
- var _a;
1911
- const frameNumber = data.frame.sequenceNumber;
1912
- const image = await loadImageBytes(data.frame.image.imageBytes);
1913
- if (lastFrameNumber == null || frameNumber > lastFrameNumber) {
1914
- lastFrameNumber = frameNumber;
1915
- (_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
1916
- drawImage(image, data);
1917
- }
1918
- image.dispose();
1919
- return data.frame;
1920
- };
1921
- }
1922
- function createHiddenCanvasRenderer() {
1923
- const hiddenCanvas = document.createElement('canvas');
1924
- let lastFrameNumber;
1925
- return async (data) => {
1926
- var _a;
1977
+ var _a, _b, _c;
1927
1978
  const frameNumber = data.frame.sequenceNumber;
1928
1979
  const frameIsNewer = lastFrameNumber == null || frameNumber > lastFrameNumber;
1929
- const frameDimensionsMatch = data.dimensions == null ||
1930
- dimensions.isEqual(data.dimensions, data.frame.image.imageAttr.frameDimensions);
1931
1980
  const image = await loadImageBytes(data.frame.image.imageBytes);
1932
- hiddenCanvas.width = data.canvasDimensions.width;
1933
- hiddenCanvas.height = data.canvasDimensions.height;
1934
- const ctx = hiddenCanvas.getContext('2d');
1935
- 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) {
1936
1983
  lastFrameNumber = frameNumber;
1937
- drawImage(image, Object.assign(Object.assign({}, data), { canvas: ctx }));
1938
- (_a = data.beforeDraw) === null || _a === void 0 ? void 0 : _a.call(data);
1939
- data.canvas.drawImage(hiddenCanvas, 0, 0);
1984
+ (_c = data.beforeDraw) === null || _c === void 0 ? void 0 : _c.call(data);
1985
+ drawImage(image, data);
1940
1986
  }
1941
1987
  image.dispose();
1942
1988
  return data.frame;
@@ -2415,6 +2461,7 @@ let Viewer = class {
2415
2461
  this.sceneChanged = createEvent(this, "sceneChanged", 7);
2416
2462
  this.interactionStarted = createEvent(this, "interactionStarted", 7);
2417
2463
  this.interactionFinished = createEvent(this, "interactionFinished", 7);
2464
+ this.cameraTypeChanged = createEvent(this, "cameraTypeChanged", 7);
2418
2465
  this.deviceIdChange = createEvent(this, "deviceIdChange", 7);
2419
2466
  this.dimensionschange = createEvent(this, "dimensionschange", 7);
2420
2467
  /**
@@ -2455,6 +2502,12 @@ let Viewer = class {
2455
2502
  * **Note:** This feature is experimental, and may cause slower frame rates.
2456
2503
  */
2457
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;
2458
2511
  /**
2459
2512
  * The default hex color or material to use when selecting items.
2460
2513
  */
@@ -2742,6 +2795,9 @@ let Viewer = class {
2742
2795
  handleExperimentalGhostingOpacityChanged() {
2743
2796
  this.updateStreamAttributes();
2744
2797
  }
2798
+ handleNoDefaultLightsChanged() {
2799
+ this.updateStreamAttributes();
2800
+ }
2745
2801
  /**
2746
2802
  * @ignore
2747
2803
  */
@@ -2945,7 +3001,6 @@ let Viewer = class {
2945
3001
  if (previous.type !== 'connected') {
2946
3002
  this.errorMessage = undefined;
2947
3003
  this.canvasRenderer = measureCanvasRenderer(paintTime, createCanvasRenderer(), this.getResolvedConfig().flags.logFrameRate, (timings) => this.reportPerformance(timings));
2948
- this.resizeRenderer = measureCanvasRenderer(paintTime, createHiddenCanvasRenderer(), this.getResolvedConfig().flags.logFrameRate, (timings) => this.reportPerformance(timings));
2949
3004
  this.emitConnectionChange({
2950
3005
  status: 'connected',
2951
3006
  jwt: state.token.token,
@@ -2989,14 +3044,19 @@ let Viewer = class {
2989
3044
  this.updateCanvasDimensions(canvasDimensions);
2990
3045
  this.isResizeUpdate = false;
2991
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
+ },
2992
3054
  };
2993
3055
  this.frameReceived.emit(this.frame);
2994
3056
  if (this.frame.scene.hasChanged) {
2995
3057
  this.sceneChanged.emit();
2996
3058
  }
2997
- const drawnFrame = this.isResizeUpdate
2998
- ? await this.resizeRenderer(data)
2999
- : await this.canvasRenderer(data);
3059
+ const drawnFrame = await this.canvasRenderer(data);
3000
3060
  this.dispatchFrameDrawn(drawnFrame);
3001
3061
  }
3002
3062
  }
@@ -3061,6 +3121,7 @@ let Viewer = class {
3061
3121
  return {
3062
3122
  depthBuffers: this.getDepthBufferStreamAttributesValue(),
3063
3123
  experimentalGhosting: this.experimentalGhostingOpacity,
3124
+ noDefaultLights: this.noDefaultLights,
3064
3125
  featureLines: this.featureLines,
3065
3126
  featureHighlighting: this.featureHighlighting,
3066
3127
  featureMaps: this.featureMaps,
@@ -3077,13 +3138,18 @@ let Viewer = class {
3077
3138
  (_a = this.stream) === null || _a === void 0 ? void 0 : _a.update({ streamAttributes: this.getStreamAttributes() });
3078
3139
  }
3079
3140
  updateInteractionApi(previousFrame) {
3080
- if (previousFrame != null && this.frame != null) {
3081
- const hasChangedFromPerspective = previousFrame.scene.camera.isPerspective() &&
3141
+ if (this.frame != null) {
3142
+ const hasChangedFromPerspective = (previousFrame == null || previousFrame.scene.camera.isPerspective()) &&
3082
3143
  this.frame.scene.camera.isOrthographic();
3083
- const hasChangedFromOrthographic = previousFrame.scene.camera.isOrthographic() &&
3144
+ const hasChangedFromOrthographic = (previousFrame == null ||
3145
+ previousFrame.scene.camera.isOrthographic()) &&
3084
3146
  this.frame.scene.camera.isPerspective();
3085
3147
  if (hasChangedFromPerspective || hasChangedFromOrthographic) {
3086
3148
  this.interactionApi = this.createInteractionApi();
3149
+ this.cameraType = this.frame.scene.camera.isPerspective()
3150
+ ? 'perspective'
3151
+ : 'orthographic';
3152
+ this.cameraTypeChanged.emit(this.cameraType);
3087
3153
  this.interactionHandlers.forEach((handler) => this.initializeInteractionHandler(handler));
3088
3154
  }
3089
3155
  }
@@ -3148,6 +3214,7 @@ let Viewer = class {
3148
3214
  "cameraType": ["handleCameraTypeChanged"],
3149
3215
  "depthBuffers": ["handleDepthBuffersChanged"],
3150
3216
  "experimentalGhostingOpacity": ["handleExperimentalGhostingOpacityChanged"],
3217
+ "noDefaultLights": ["handleNoDefaultLightsChanged"],
3151
3218
  "featureLines": ["handleFeatureLinesChanged"],
3152
3219
  "featureHighlighting": ["handleFeatureHighlightingChanged"],
3153
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
  */
@@ -2,7 +2,7 @@ import { EventEmitter, h } from '../../stencil-public-runtime';
2
2
  import { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';
3
3
  export interface SceneTreeTableCellEventDetails {
4
4
  node?: Node.AsObject;
5
- originalEvent: PointerEvent | TouchEvent;
5
+ originalEvent: PointerEvent;
6
6
  }
7
7
  export declare class SceneTreeTableCell {
8
8
  /**
@@ -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