@vertexvis/viewer 0.15.2-testing.4 → 0.15.2

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 (273) hide show
  1. package/dist/cjs/_commonjsHelpers-dcc4cf71.js +1 -1
  2. package/dist/cjs/app-globals-2035678d.js +1 -1
  3. package/dist/cjs/browser.esm-5d246754.js +1 -1
  4. package/dist/cjs/bundle.esm-22b6f2d6.js +1 -1
  5. package/dist/cjs/bundle.esm-b43c197a.js +38280 -0
  6. package/dist/cjs/{config-4a86ae0b.js → config-3fc1c093.js} +2 -2
  7. package/dist/cjs/{cursors-85d403e9.js → cursors-02a06ec9.js} +7 -1
  8. package/dist/cjs/dom-8d90bfaf.js +1 -1
  9. package/dist/cjs/dom-92728e58.js +1 -1
  10. package/dist/cjs/dom-d1bbd67c.js +1 -1
  11. package/dist/cjs/dom-d57d3c3b.js +1 -1
  12. package/dist/cjs/elementRectObserver-9b28f182.js +1 -1
  13. package/dist/cjs/entities-9eb7e608.js +1 -1
  14. package/dist/cjs/{entities-496b61cd.js → entities-c1c3c6a3.js} +3 -3
  15. package/dist/cjs/errors-1b37642b.js +97 -0
  16. package/dist/cjs/grpc-web-client.umd-2af20c1b.js +1 -1
  17. package/dist/cjs/index-70db349e.js +1 -1
  18. package/dist/cjs/index-b9d13137.js +1 -1
  19. package/dist/cjs/index.cjs.js +9 -6
  20. package/dist/cjs/loader.cjs.js +2 -2
  21. package/dist/cjs/{mapper-216603b0.js → mapper-d4145b72.js} +2 -2
  22. package/dist/cjs/markup-4a2fc281.js +1 -1
  23. package/dist/cjs/{model-b61f4d20.js → model-19fb560a.js} +27 -6
  24. package/dist/cjs/model-20a70d27.js +1 -1
  25. package/dist/cjs/overlays-b03ec80b.js +1 -1
  26. package/dist/cjs/png-decoder-ef097f37.js +1 -1
  27. package/dist/cjs/results-178e89a3.js +1 -1
  28. package/dist/cjs/{scene-0ce59b26.js → scene-a94e6fa5.js} +276 -225
  29. package/dist/cjs/shadow-css-6b9daa41.js +1 -1
  30. package/dist/cjs/stencil-fc92b387.js +1 -1
  31. package/dist/cjs/{streamAttributes-7725f5c4.js → streamAttributes-cf0c513d.js} +5408 -39951
  32. package/dist/cjs/templates-e57b3741.js +1 -1
  33. package/dist/cjs/utils-2c8e2aa3.js +1 -1
  34. package/dist/cjs/utils-ea359796.js +1 -1
  35. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +1 -1
  36. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  38. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  39. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +1 -1
  40. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  41. package/dist/cjs/vertex-scene-tree.cjs.entry.js +158 -37
  42. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +229 -49
  43. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
  44. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  45. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +3 -2
  46. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
  47. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
  48. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  49. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
  50. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
  51. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
  52. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -2
  53. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +5 -4
  54. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +4 -3
  55. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +7 -6
  56. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +10 -5
  57. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +15 -13
  58. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +20 -9
  59. package/dist/cjs/vertex-viewer-spinner.cjs.entry.js +1 -1
  60. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +6 -4
  61. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +5 -4
  62. package/dist/cjs/vertex-viewer.cjs.entry.js +80 -53
  63. package/dist/cjs/viewer.cjs.js +2 -2
  64. package/dist/cjs/viewport-5ca619f7.js +1 -1
  65. package/dist/collection/components/scene-tree/lib/controller.js +108 -28
  66. package/dist/collection/components/scene-tree/lib/errors.js +35 -2
  67. package/dist/collection/components/scene-tree/scene-tree.js +12 -5
  68. package/dist/collection/components/viewer/viewer.js +17 -15
  69. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +7 -2
  70. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +105 -18
  71. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +5 -1
  72. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +1 -1
  73. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +14 -12
  74. package/dist/collection/components/viewer-pin-tool/utils.js +25 -4
  75. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +12 -0
  76. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +9 -2
  77. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +3 -2
  78. package/dist/collection/components/viewer-view-cube/viewer-view-cube.js +5 -5
  79. package/dist/collection/lib/cursors.js +6 -1
  80. package/dist/collection/lib/interactions/baseInteractionHandler.js +12 -2
  81. package/dist/collection/lib/interactions/mouseInteractions.js +5 -4
  82. package/dist/collection/lib/mappers/frameStreaming.js +11 -11
  83. package/dist/collection/lib/pins/interactions.js +9 -5
  84. package/dist/collection/lib/pins/model.js +2 -2
  85. package/dist/collection/lib/rendering/matrices.js +2 -4
  86. package/dist/collection/lib/scenes/camera.js +4 -2
  87. package/dist/collection/lib/scenes/mapper.js +98 -36
  88. package/dist/collection/lib/scenes/queries.js +89 -50
  89. package/dist/collection/lib/scenes/scene.js +15 -7
  90. package/dist/collection/lib/stream/stream.js +24 -12
  91. package/dist/collection/lib/transforms/drawable.js +2 -2
  92. package/dist/collection/lib/types/frame.js +4 -3
  93. package/dist/collection/lib/types/frameCamera.js +6 -1
  94. package/dist/collection/lib/types/index.js +3 -2
  95. package/dist/collection/lib/types/loadableResource.js +24 -4
  96. package/dist/collection/lib/types/sceneViewStateIdentifier.js +7 -0
  97. package/dist/collection/lib/volume-intersection/controller.js +71 -15
  98. package/dist/collection/lib/volume-intersection/interactions.js +54 -9
  99. package/dist/collection/lib/volume-intersection/model.js +27 -10
  100. package/dist/custom-elements/index.js +20207 -15976
  101. package/dist/custom-elements/png-decoder.js +1 -1
  102. package/dist/esm/_commonjsHelpers-11ca3be1.js +1 -1
  103. package/dist/esm/app-globals-40df99a0.js +1 -1
  104. package/dist/esm/{browser.esm-ae4ca1f1.js → browser.esm-07e7db8f.js} +2 -2
  105. package/dist/esm/bundle.esm-91404853.js +38273 -0
  106. package/dist/esm/{bundle.esm-ce2c7ad3.js → bundle.esm-92e615bf.js} +2 -2
  107. package/dist/esm/{config-6cdeb6ca.js → config-25384fe6.js} +3 -3
  108. package/dist/esm/{cursors-a8d4b3f4.js → cursors-127a3bb7.js} +8 -3
  109. package/dist/esm/dom-0440435d.js +1 -1
  110. package/dist/esm/dom-be140992.js +1 -1
  111. package/dist/esm/dom-e19ee80b.js +1 -1
  112. package/dist/esm/{dom-5b164305.js → dom-e436f0c0.js} +2 -2
  113. package/dist/esm/elementRectObserver-39cf7b95.js +1 -1
  114. package/dist/esm/{entities-6f3c5437.js → entities-0e325765.js} +4 -4
  115. package/dist/esm/entities-ce81dd7f.js +1 -1
  116. package/dist/esm/errors-a4cc9caa.js +85 -0
  117. package/dist/esm/grpc-web-client.umd-5409853c.js +1 -1
  118. package/dist/esm/index-26dfb2d0.js +1 -1
  119. package/dist/esm/index-e841d91b.js +1 -1
  120. package/dist/esm/index.js +15 -13
  121. package/dist/esm/index.mjs +15 -13
  122. package/dist/esm/loader.js +2 -2
  123. package/dist/esm/loader.mjs +2 -2
  124. package/dist/esm/{mapper-941ff03c.js → mapper-dd937684.js} +3 -3
  125. package/dist/esm/{markup-3c2900f3.js → markup-2dde1f10.js} +3 -3
  126. package/dist/esm/{model-fa9af61a.js → model-3cd8cd47.js} +2 -2
  127. package/dist/esm/{model-40bd1711.js → model-bfe1c4d8.js} +29 -8
  128. package/dist/esm/{overlays-cc3efc30.js → overlays-8f195eb3.js} +3 -3
  129. package/dist/esm/{png-decoder-d4b65417.js → png-decoder-45f38ea3.js} +2 -2
  130. package/dist/esm/{results-3b4df2cf.js → results-38baef59.js} +2 -2
  131. package/dist/esm/{scene-970f5000.js → scene-2543b3bd.js} +237 -178
  132. package/dist/esm/shadow-css-51dd7708.js +1 -1
  133. package/dist/esm/stencil-bfbf099f.js +1 -1
  134. package/dist/esm/{streamAttributes-24bd7b3a.js → streamAttributes-23270e27.js} +5419 -39956
  135. package/dist/esm/templates-022199c1.js +1 -1
  136. package/dist/esm/{utils-81347571.js → utils-2306c744.js} +2 -2
  137. package/dist/esm/{utils-559e1632.js → utils-f03802ef.js} +2 -2
  138. package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
  139. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  140. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  141. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  142. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
  143. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  144. package/dist/esm/vertex-scene-tree.entry.js +160 -39
  145. package/dist/esm/vertex-viewer-box-query-tool.entry.js +229 -49
  146. package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
  147. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  148. package/dist/esm/vertex-viewer-dom-element_2.entry.js +6 -5
  149. package/dist/esm/vertex-viewer-dom-group.entry.js +3 -3
  150. package/dist/esm/vertex-viewer-icon.entry.js +1 -1
  151. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  152. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
  153. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  154. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  155. package/dist/esm/vertex-viewer-measurement-details.entry.js +5 -4
  156. package/dist/esm/vertex-viewer-measurement-distance.entry.js +13 -12
  157. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +8 -7
  158. package/dist/esm/vertex-viewer-measurement-precise.entry.js +12 -11
  159. package/dist/esm/vertex-viewer-pin-group.entry.js +13 -8
  160. package/dist/esm/vertex-viewer-pin-label_2.entry.js +18 -16
  161. package/dist/esm/vertex-viewer-pin-tool.entry.js +23 -12
  162. package/dist/esm/vertex-viewer-spinner.entry.js +1 -1
  163. package/dist/esm/vertex-viewer-transform-widget.entry.js +9 -7
  164. package/dist/esm/vertex-viewer-view-cube.entry.js +7 -6
  165. package/dist/esm/vertex-viewer.entry.js +65 -38
  166. package/dist/esm/viewer.js +2 -2
  167. package/dist/esm/{viewport-e39e2eba.js → viewport-f19fc583.js} +2 -2
  168. package/dist/types/components/scene-tree/lib/controller.d.ts +18 -3
  169. package/dist/types/components/scene-tree/lib/errors.d.ts +17 -2
  170. package/dist/types/components/viewer/viewer.d.ts +2 -0
  171. package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +36 -2
  172. package/dist/types/components/viewer-pin-tool/utils.d.ts +1 -1
  173. package/dist/types/components.d.ts +11 -3
  174. package/dist/types/lib/cursors.d.ts +5 -0
  175. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +1 -0
  176. package/dist/types/lib/interactions/mouseInteractions.d.ts +2 -1
  177. package/dist/types/lib/pins/interactions.d.ts +4 -2
  178. package/dist/types/lib/pins/model.d.ts +1 -1
  179. package/dist/types/lib/scenes/camera.d.ts +1 -1
  180. package/dist/types/lib/scenes/mapper.d.ts +5 -1
  181. package/dist/types/lib/scenes/queries.d.ts +45 -30
  182. package/dist/types/lib/scenes/scene.d.ts +10 -1
  183. package/dist/types/lib/types/frame.d.ts +1 -1
  184. package/dist/types/lib/types/index.d.ts +2 -1
  185. package/dist/types/lib/types/loadableResource.d.ts +8 -2
  186. package/dist/types/lib/types/sceneViewStateIdentifier.d.ts +15 -0
  187. package/dist/types/lib/volume-intersection/controller.d.ts +33 -5
  188. package/dist/types/lib/volume-intersection/interactions.d.ts +12 -1
  189. package/dist/types/lib/volume-intersection/model.d.ts +7 -0
  190. package/dist/viewer/index.esm.js +2 -2
  191. package/dist/viewer/{p-ad09c92e.entry.js → p-029fba92.entry.js} +1 -1
  192. package/dist/viewer/p-07aeee89.js +1 -1
  193. package/dist/viewer/{p-29986489.js → p-0a017be7.js} +2 -2
  194. package/dist/viewer/p-0c583cad.entry.js +4 -0
  195. package/dist/viewer/p-0d494d01.js +4 -0
  196. package/dist/viewer/p-0fdad1a5.js +1 -1
  197. package/dist/viewer/{p-3ca4a7c1.js → p-1812c82d.js} +2 -2
  198. package/dist/viewer/{p-7663a603.entry.js → p-191156ad.entry.js} +1 -1
  199. package/dist/viewer/{p-a57dc6e4.entry.js → p-1998284a.entry.js} +2 -2
  200. package/dist/viewer/p-27f715f8.entry.js +4 -0
  201. package/dist/viewer/{p-7f6251da.js → p-283aeac4.js} +2 -2
  202. package/dist/viewer/p-298b63c2.entry.js +4 -0
  203. package/dist/viewer/p-2ace066b.entry.js +4 -0
  204. package/dist/viewer/{p-597cc9b5.js → p-2b60a8b0.js} +2 -2
  205. package/dist/viewer/{p-050f912b.entry.js → p-2fd123c8.entry.js} +1 -1
  206. package/dist/viewer/p-305a8be6.entry.js +4 -0
  207. package/dist/viewer/p-31724d24.js +4 -0
  208. package/dist/viewer/p-32cc2209.js +4 -0
  209. package/dist/viewer/p-3829dd99.entry.js +4 -0
  210. package/dist/viewer/{p-6da8a28f.entry.js → p-3aae4bf1.entry.js} +2 -2
  211. package/dist/viewer/{p-99352cf0.js → p-42760392.js} +2 -2
  212. package/dist/viewer/p-440c8174.js +4 -0
  213. package/dist/viewer/{p-e422deaf.entry.js → p-4f25e367.entry.js} +2 -2
  214. package/dist/viewer/{p-a107b65e.entry.js → p-507b5aeb.entry.js} +2 -2
  215. package/dist/viewer/{p-52ab9ec0.js → p-51401063.js} +2 -2
  216. package/dist/viewer/{p-426970b3.entry.js → p-533b1c63.entry.js} +1 -1
  217. package/dist/viewer/{p-dcb9804c.entry.js → p-569ed94a.entry.js} +2 -2
  218. package/dist/viewer/p-5809b400.js +1 -1
  219. package/dist/viewer/p-6072cf84.js +4 -0
  220. package/dist/viewer/{p-e4a26a32.entry.js → p-6406a70a.entry.js} +1 -1
  221. package/dist/viewer/p-6bf0594b.entry.js +4 -0
  222. package/dist/viewer/p-72c59115.entry.js +4 -0
  223. package/dist/viewer/{p-d71652b0.entry.js → p-8ac7290a.entry.js} +1 -1
  224. package/dist/viewer/{p-f184bcab.entry.js → p-8afcbd99.entry.js} +1 -1
  225. package/dist/viewer/p-92fe4417.js +1 -1
  226. package/dist/viewer/{p-5746931d.entry.js → p-952a217d.entry.js} +1 -1
  227. package/dist/viewer/p-98e6a50e.js +1 -1
  228. package/dist/viewer/{p-99fd27e0.entry.js → p-9cb99ea8.entry.js} +1 -1
  229. package/dist/viewer/p-a2e9e8a5.js +4 -0
  230. package/dist/viewer/p-a380f0c2.js +1 -1
  231. package/dist/viewer/{p-661b5234.js → p-acfc5c50.js} +2 -2
  232. package/dist/viewer/{p-82bd25e8.entry.js → p-b3540dce.entry.js} +1 -1
  233. package/dist/viewer/p-b5ca30cd.js +4 -0
  234. package/dist/viewer/p-b74242dc.js +1 -1
  235. package/dist/viewer/p-bc1160cf.entry.js +4 -0
  236. package/dist/viewer/{p-c5e67a1e.entry.js → p-bd5a302c.entry.js} +2 -2
  237. package/dist/viewer/p-c738296e.js +1 -1
  238. package/dist/viewer/p-c8c4343b.js +1 -1
  239. package/dist/viewer/p-cd9ccb9e.entry.js +4 -0
  240. package/dist/viewer/{p-9e1384c9.js → p-cf689bbd.js} +2 -2
  241. package/dist/viewer/{p-70e5e8a8.js → p-d216a866.js} +2 -2
  242. package/dist/viewer/p-d4ed7b8d.js +4 -0
  243. package/dist/viewer/p-d6d5d5de.entry.js +4 -0
  244. package/dist/viewer/p-d6fce4c1.js +1 -1
  245. package/dist/viewer/p-df8fbe56.js +1 -1
  246. package/dist/viewer/p-dfe5a97d.js +1 -1
  247. package/dist/viewer/{p-00ce31a0.js → p-e1896ce4.js} +2 -2
  248. package/dist/viewer/p-e23af70c.js +4 -0
  249. package/dist/viewer/p-e4aa9cdb.js +1 -1
  250. package/dist/viewer/p-e929dd63.entry.js +4 -0
  251. package/dist/viewer/{p-65af7a89.js → p-fc7d8c03.js} +3 -3
  252. package/dist/viewer/viewer.esm.js +2 -2
  253. package/package.json +9 -9
  254. package/readme.md +4 -4
  255. package/dist/viewer/p-096e60bd.js +0 -4
  256. package/dist/viewer/p-0cf4f05d.entry.js +0 -4
  257. package/dist/viewer/p-0fcafbf9.js +0 -4
  258. package/dist/viewer/p-10145045.js +0 -4
  259. package/dist/viewer/p-1abfe4bf.js +0 -4
  260. package/dist/viewer/p-1bba9ade.entry.js +0 -4
  261. package/dist/viewer/p-24cda14a.entry.js +0 -4
  262. package/dist/viewer/p-27dbc865.js +0 -4
  263. package/dist/viewer/p-2b58afc3.entry.js +0 -4
  264. package/dist/viewer/p-51966cef.entry.js +0 -4
  265. package/dist/viewer/p-608925c5.entry.js +0 -4
  266. package/dist/viewer/p-68e192b9.js +0 -4
  267. package/dist/viewer/p-69a3fce8.entry.js +0 -4
  268. package/dist/viewer/p-74c772bb.entry.js +0 -4
  269. package/dist/viewer/p-990f98c2.js +0 -4
  270. package/dist/viewer/p-9dfe0b43.entry.js +0 -4
  271. package/dist/viewer/p-bb425931.entry.js +0 -4
  272. package/dist/viewer/p-bfacbaa8.entry.js +0 -4
  273. package/dist/viewer/p-c72da0fb.entry.js +0 -4
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { d as doc, N as NAMESPACE, w as win, p as promiseResolve, b as bootstrapLazy } from './index-26dfb2d0.js';
5
5
  import { g as globalScripts } from './app-globals-40df99a0.js';
@@ -72,5 +72,5 @@ const patchDynamicImport = (base, orgScriptElm) => {
72
72
 
73
73
  patchBrowser().then(options => {
74
74
  globalScripts();
75
- return bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-scene-tree\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[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-default-toolbar\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"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-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-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-viewer-measurement-precise\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]}]]],[\"vertex-viewer-box-query-tool\",[[1,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"details\":[32]}]]],[\"vertex-scene-tree-table-cell\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"hoverController\":[16]}]]],[\"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\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"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_DEPRECATED\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getKeyInteractions\":[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]}]]],[\"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-spinner\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-scene-tree-search_3\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[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],\"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],\"pin\":[16]}]]],[\"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\"]}]]],[\"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],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]]]"), options);
75
+ return bootstrapLazy(JSON.parse("[[\"vertex-viewer-pin-tool\",[[1,\"vertex-viewer-pin-tool\",{\"pinController\":[1040],\"pinModel\":[16],\"viewer\":[16],\"tool\":[1025],\"mode\":[1025],\"primaryColor\":[1025,\"primary-color\"],\"accentColor\":[1025,\"accent-color\"],\"pins\":[32],\"selectedPinId\":[32],\"elementBounds\":[32],\"projectionViewMatrix\":[32]}]]],[\"vertex-scene-tree\",[[1,\"vertex-scene-tree\",{\"overScanCount\":[2,\"over-scan-count\"],\"viewerSelector\":[1,\"viewer-selector\"],\"viewer\":[1040],\"rowData\":[16],\"config\":[1],\"configEnv\":[1,\"config-env\"],\"controller\":[1040],\"metadataSearchExactMatch\":[1028,\"metadata-search-exact-match\"],\"metadataSearchKeys\":[1040],\"metadataKeys\":[16],\"rows\":[32],\"totalRows\":[32],\"showLoader\":[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-default-toolbar\",[[1,\"vertex-viewer-default-toolbar\",{\"viewer\":[16],\"placement\":[1],\"direction\":[1],\"animationsDisabled\":[4,\"animations-disabled\"],\"animationMs\":[2,\"animation-ms\"]}]]],[\"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-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-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-viewer-measurement-precise\",[[1,\"vertex-viewer-measurement-precise\",{\"measurementModel\":[16],\"measurementOverlays\":[16],\"measurementController\":[1040],\"measurableEntityTypes\":[16],\"viewer\":[16],\"configEnv\":[1,\"config-env\"],\"config\":[1]}]]],[\"vertex-viewer-box-query-tool\",[[1,\"vertex-viewer-box-query-tool\",{\"viewer\":[16],\"controller\":[1040],\"model\":[1040],\"operationType\":[1,\"operation-type\"],\"mode\":[1],\"details\":[32]}]]],[\"vertex-scene-tree-table-cell\",[[1,\"vertex-scene-tree-table-cell\",{\"node\":[16],\"tree\":[16],\"value\":[1],\"placeholder\":[1],\"hovered\":[1028],\"isScrolling\":[4,\"is-scrolling\"],\"expandToggle\":[4,\"expand-toggle\"],\"visibilityToggle\":[4,\"visibility-toggle\"],\"selectionHandler\":[16],\"visibilityHandler\":[16],\"expansionHandler\":[16],\"hoverController\":[16]}]]],[\"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\"],\"experimentalRenderingOptions\":[1,\"experimental-rendering-options\"],\"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_DEPRECATED\":[64],\"addCursor\":[64],\"getInteractionHandlers\":[64],\"getKeyInteractions\":[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]}]]],[\"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-spinner\",[[1,\"vertex-viewer-spinner\",{\"size\":[1]}]]],[\"vertex-scene-tree-search_3\",[[1,\"vertex-scene-tree-search\",{\"debounce\":[2],\"disabled\":[4],\"placeholder\":[1],\"controller\":[16],\"value\":[1025],\"focused\":[32],\"isSearching\":[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],\"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],\"pin\":[16]}]]],[\"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\"]}]]],[\"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],\"dispose\":[64]}],[1,\"vertex-viewer-markup-circle\",{\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"dispose\":[64]}],[1,\"vertex-viewer-markup-freeform\",{\"points\":[1040],\"pointsJson\":[1,\"points\"],\"bounds\":[1040],\"boundsJson\":[1,\"bounds\"],\"mode\":[513],\"viewer\":[16],\"elementBounds\":[32],\"screenPoints\":[32],\"dispose\":[64]}]]]]"), options);
76
76
  });
@@ -1,7 +1,7 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 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-ce2c7ad3.js';
4
+ import { d as dimensions, p as point, v as vector3, r as ray, e as rectangle } from './bundle.esm-92e615bf.js';
5
5
 
6
6
  /**
7
7
  * A `Viewport` represents the drawing area in the viewer.
@@ -1,6 +1,6 @@
1
1
  import { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';
2
- import { GetTreeResponse } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb';
3
- import { SceneTreeAPIClient } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';
2
+ import { GetTreeResponse, SubscribeResponse } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb';
3
+ import { ResponseStream, SceneTreeAPIClient } from '@vertexvis/scene-tree-protos/scenetree/protos/scene_tree_api_pb_service';
4
4
  import { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';
5
5
  import { MetadataKey } from '../interfaces';
6
6
  import { SceneTreeErrorDetails } from './errors';
@@ -36,11 +36,16 @@ export interface ConnectingState {
36
36
  jwtProvider: JwtProvider;
37
37
  sceneViewId: string;
38
38
  }
39
+ export interface SubscriptionStatusState {
40
+ attempt: number;
41
+ stream: ResponseStream<SubscribeResponse>;
42
+ }
39
43
  export interface ConnectedState {
40
44
  type: 'connected';
41
45
  jwtProvider: JwtProvider;
42
46
  sceneViewId: string;
43
47
  subscription: Disposable;
48
+ subscriptionStatusState?: SubscriptionStatusState;
44
49
  }
45
50
  export interface ConnectionFailedState {
46
51
  type: 'failure';
@@ -48,6 +53,11 @@ export interface ConnectionFailedState {
48
53
  jwtProvider: JwtProvider;
49
54
  sceneViewId: string;
50
55
  }
56
+ export interface ConnectionCancelledState {
57
+ type: 'cancelled';
58
+ jwtProvider?: JwtProvider;
59
+ sceneViewId?: string;
60
+ }
51
61
  /**
52
62
  * A set of options to configure tree filtering behavior.
53
63
  */
@@ -66,7 +76,7 @@ export interface FilterTreeOptions {
66
76
  */
67
77
  columns?: MetadataKey[];
68
78
  }
69
- declare type ConnectionState = DisconnectedState | ConnectingState | ConnectedState | ConnectionFailedState;
79
+ declare type ConnectionState = DisconnectedState | ConnectingState | ConnectedState | ConnectionFailedState | ConnectionCancelledState;
70
80
  /**
71
81
  * The `SceneTreeController` is responsible for coordinating interactions of the
72
82
  * view, fetching and mutating tree data on the server, maintaining state and
@@ -78,6 +88,7 @@ export declare class SceneTreeController {
78
88
  private connectOptions;
79
89
  private static IDLE_RECONNECT_IN_SECONDS;
80
90
  private static LOST_CONNECTION_RECONNECT_IN_SECONDS;
91
+ private static MAX_SUBSCRIPTION_RETRY_COUNT;
81
92
  private nextPageId;
82
93
  private pages;
83
94
  private activeRowRange;
@@ -109,6 +120,7 @@ export declare class SceneTreeController {
109
120
  */
110
121
  stateChanged(listener: Listener<SceneTreeState | undefined>): Disposable;
111
122
  setDebugLogs(debugLogs: boolean): void;
123
+ private handleSubscriptionHandshakeTimeout;
112
124
  connect(jwtProvider: JwtProvider): Promise<void>;
113
125
  private clearReconnectTimer;
114
126
  private clearHandshakeTimer;
@@ -117,6 +129,7 @@ export declare class SceneTreeController {
117
129
  private startReconnectTimer;
118
130
  connectToViewer(viewer: HTMLVertexViewerElement): Disposable;
119
131
  disconnect(reset?: boolean): void;
132
+ cancel(): void;
120
133
  /**
121
134
  * Collapses a node with the given node ID.
122
135
  *
@@ -248,11 +261,13 @@ export declare class SceneTreeController {
248
261
  private requestServerStream;
249
262
  private createJwtMetadata;
250
263
  private ifConnectionHasJwt;
264
+ private ifErrorIsFatal;
251
265
  private getConnectionError;
252
266
  private constrainPageRange;
253
267
  private constrainPageIndex;
254
268
  private constrainRowOffsets;
255
269
  private get maxPages();
256
270
  private log;
271
+ private isConnectedState;
257
272
  }
258
273
  export {};
@@ -1,13 +1,28 @@
1
+ import { CustomError } from '../../../lib/errors';
1
2
  export declare enum SceneTreeErrorCode {
2
3
  UNKNOWN = 0,
3
4
  SCENE_TREE_DISABLED = 1,
4
5
  MISSING_VIEWER = 2,
5
6
  DISCONNECTED = 3,
6
- SUBSCRIPTION_FAILURE = 4
7
+ SUBSCRIPTION_FAILURE = 4,
8
+ UNAUTHORIZED = 5
7
9
  }
8
10
  export declare class SceneTreeErrorDetails {
11
+ readonly name: keyof typeof SceneTreeErrorCode;
9
12
  readonly code: SceneTreeErrorCode;
10
13
  readonly link?: string | undefined;
11
14
  readonly message: string;
12
- constructor(code: SceneTreeErrorCode, link?: string | undefined);
15
+ constructor(name: keyof typeof SceneTreeErrorCode, code: SceneTreeErrorCode, link?: string | undefined);
16
+ }
17
+ export declare class SceneTreeError extends CustomError {
18
+ constructor(message: string, e?: Error);
19
+ }
20
+ export declare class SceneTreeUnauthorizedError extends SceneTreeError {
21
+ constructor(message: string, e?: Error);
22
+ }
23
+ export declare class SceneTreeConnectionCancelledError extends SceneTreeError {
24
+ constructor(message: string, e?: Error);
25
+ }
26
+ export declare class SceneTreeOperationFailedError extends SceneTreeError {
27
+ constructor(message: string, e?: Error);
13
28
  }
@@ -264,6 +264,7 @@ export declare class Viewer {
264
264
  private resizeTimer?;
265
265
  private interactionHandlers;
266
266
  private defaultInteractionHandlerDisposables;
267
+ private tapHandlerDisposable?;
267
268
  private interactionApi;
268
269
  private tapKeyInteractions;
269
270
  private defaultTapKeyInteractions;
@@ -489,6 +490,7 @@ export declare class Viewer {
489
490
  private clearDefaultKeyboardInteractions;
490
491
  private initializeDefaultCameraInteractionHandlers;
491
492
  private initializeDefaultKeyboardInteractionHandlers;
493
+ private initializeDefaultTapInteractionHandler;
492
494
  private initializeInteractionHandler;
493
495
  private createInteractionApi;
494
496
  private handleCursorChanged;
@@ -1,7 +1,8 @@
1
1
  import { h } from '../../stencil-public-runtime';
2
2
  import { VolumeIntersectionQueryController } from '../../lib/volume-intersection/controller';
3
3
  import { VolumeIntersectionQueryModel } from '../../lib/volume-intersection/model';
4
- export declare type VolumeIntersectionQueryType = 'select' | 'deselect';
4
+ export declare type VolumeIntersectionQueryType = 'clearAndSelect' | 'select' | 'deselect';
5
+ export declare type VolumeIntersectionQueryMode = 'exclusive' | 'inclusive';
5
6
  /**
6
7
  * The `ViewerBoxQueryTool` allows for the drawing of a "box" on screen to represent
7
8
  * a query for items in a specific area of the viewer. This tool then allows for an
@@ -27,16 +28,36 @@ export declare class ViewerBoxQueryTool {
27
28
  model?: VolumeIntersectionQueryModel;
28
29
  /**
29
30
  * The default operation to perform when a drag has completed and the intersection
30
- * query will be run. Defaults to `select`, and can be changed to `deselect`.
31
+ * query will be run. Defaults to `clearAndSelect`, and can be changed to `select` or `deselect`.
32
+ *
33
+ * `clearAndSelect` will clear all existing selection, and select the results of the query.
34
+ * `select` will maintain existing selection, and select the results of the query.
35
+ * `deselect` will maintain existing selection, and deselect the results of the query.
31
36
  *
32
37
  * The operation behavior for this intersection query tool can also be changed by
33
38
  * providing a custom implementation of the `VolumeIntersectionQueryController`, or
34
39
  * by using the `setOperationTransform` method of the default controller.
35
40
  */
36
41
  operationType: VolumeIntersectionQueryType;
42
+ /**
43
+ * An optional value to specify a singular mode of intersection query. This value
44
+ * defaults to `undefined`, which will indicate that both `exclusive` and `inclusive`
45
+ * queries should be made, with `inclusive` being represented by a left to right
46
+ * drag behavior and `exclusive` being represented by a right to left drag.
47
+ *
48
+ * Setting this value to `inclusive` will cause dragging left to right and left to right
49
+ * to result in an `inclusive` query, and the box will only be styled for `inclusive` queries.
50
+ *
51
+ * Setting this value to `exclusive` will cause dragging left to right and left to right
52
+ * to result in an `exclusive` query, and the box will only be styled for `exclusive` queries.
53
+ */
54
+ mode?: VolumeIntersectionQueryMode;
37
55
  private details?;
38
56
  private hostEl;
39
57
  private interactionHandler?;
58
+ private interactionHandlerDisposable?;
59
+ private operationStartedDisposable?;
60
+ private operationCompleteDisposable?;
40
61
  private screenBoundsChangedDisposable?;
41
62
  constructor();
42
63
  componentWillLoad(): void;
@@ -49,12 +70,25 @@ export declare class ViewerBoxQueryTool {
49
70
  * @ignore
50
71
  */
51
72
  protected handleDefaultOperationChange(updatedOperationType: VolumeIntersectionQueryType): void;
73
+ /**
74
+ * @ignore
75
+ */
76
+ protected handleModeChange(updatedMode?: VolumeIntersectionQueryMode): void;
77
+ /**
78
+ * @ignore
79
+ */
80
+ protected handleControllerChange(controller?: VolumeIntersectionQueryController): void;
52
81
  /**
53
82
  * @ignore
54
83
  */
55
84
  protected render(): h.JSX.IntrinsicElements;
56
85
  private handleScreenBoundsChanged;
86
+ private handleExecuteStarted;
87
+ private handleExecuteComplete;
57
88
  private registerInteractionHandler;
58
89
  private deregisterInteractionHandler;
59
90
  private updateTypeAttribute;
91
+ private setDefaultClearAndSelectOperation;
92
+ private setDefaultSelectOperation;
93
+ private setDefaultDeselectOperation;
60
94
  }
@@ -8,4 +8,4 @@ export declare function translatePointToScreen(pt: Point.Point, canvasDimensions
8
8
  /**
9
9
  * Translates a point in screen units to a point in relative units.
10
10
  */
11
- export declare function translatePointToRelative(pt: Point.Point, canvasDimensions: Dimensions.Dimensions): Point.Point;
11
+ export declare function translatePointToRelative(pt: Point.Point, canvasDimensions: Dimensions.Dimensions, includeOffset?: boolean, xOffset?: number, yOffset?: number): Point.Point;
@@ -35,7 +35,7 @@ import { BaseInteractionHandler } from "./lib/interactions/baseInteractionHandle
35
35
  import { Scene } from "./lib/scenes/scene";
36
36
  import { VolumeIntersectionQueryController } from "./lib/volume-intersection/controller";
37
37
  import { VolumeIntersectionQueryModel } from "./lib/volume-intersection/model";
38
- import { VolumeIntersectionQueryType } from "./components/viewer-box-query-tool/viewer-box-query-tool";
38
+ import { VolumeIntersectionQueryMode, VolumeIntersectionQueryType } from "./components/viewer-box-query-tool/viewer-box-query-tool";
39
39
  import { ViewerToolbarPlacement } from "./components/viewer-toolbar/viewer-toolbar";
40
40
  import { ViewerToolbarGroupDirection } from "./components/viewer-toolbar-group/viewer-toolbar-group";
41
41
  import { ViewerDomRendererDrawMode } from "./components/viewer-dom-renderer/viewer-dom-renderer";
@@ -472,12 +472,16 @@ export namespace Components {
472
472
  * The controller that is responsible for performing operations using the volume intersection query defined by the drawn box and updating the model.
473
473
  */
474
474
  "controller"?: VolumeIntersectionQueryController;
475
+ /**
476
+ * An optional value to specify a singular mode of intersection query. This value defaults to `undefined`, which will indicate that both `exclusive` and `inclusive` queries should be made, with `inclusive` being represented by a left to right drag behavior and `exclusive` being represented by a right to left drag. Setting this value to `inclusive` will cause dragging left to right and left to right to result in an `inclusive` query, and the box will only be styled for `inclusive` queries. Setting this value to `exclusive` will cause dragging left to right and left to right to result in an `exclusive` query, and the box will only be styled for `exclusive` queries.
477
+ */
478
+ "mode"?: VolumeIntersectionQueryMode;
475
479
  /**
476
480
  * The model that contains the points representing the corners of the box displayed on screen, the type of the query to be performed, and methods for setting these values.
477
481
  */
478
482
  "model"?: VolumeIntersectionQueryModel;
479
483
  /**
480
- * The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `select`, and can be changed to `deselect`. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller.
484
+ * The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `clearAndSelect`, and can be changed to `select` or `deselect`. `clearAndSelect` will clear all existing selection, and select the results of the query. `select` will maintain existing selection, and select the results of the query. `deselect` will maintain existing selection, and deselect the results of the query. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller.
481
485
  */
482
486
  "operationType": VolumeIntersectionQueryType;
483
487
  /**
@@ -1757,12 +1761,16 @@ declare namespace LocalJSX {
1757
1761
  * The controller that is responsible for performing operations using the volume intersection query defined by the drawn box and updating the model.
1758
1762
  */
1759
1763
  "controller"?: VolumeIntersectionQueryController;
1764
+ /**
1765
+ * An optional value to specify a singular mode of intersection query. This value defaults to `undefined`, which will indicate that both `exclusive` and `inclusive` queries should be made, with `inclusive` being represented by a left to right drag behavior and `exclusive` being represented by a right to left drag. Setting this value to `inclusive` will cause dragging left to right and left to right to result in an `inclusive` query, and the box will only be styled for `inclusive` queries. Setting this value to `exclusive` will cause dragging left to right and left to right to result in an `exclusive` query, and the box will only be styled for `exclusive` queries.
1766
+ */
1767
+ "mode"?: VolumeIntersectionQueryMode;
1760
1768
  /**
1761
1769
  * The model that contains the points representing the corners of the box displayed on screen, the type of the query to be performed, and methods for setting these values.
1762
1770
  */
1763
1771
  "model"?: VolumeIntersectionQueryModel;
1764
1772
  /**
1765
- * The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `select`, and can be changed to `deselect`. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller.
1773
+ * The default operation to perform when a drag has completed and the intersection query will be run. Defaults to `clearAndSelect`, and can be changed to `select` or `deselect`. `clearAndSelect` will clear all existing selection, and select the results of the query. `select` will maintain existing selection, and select the results of the query. `deselect` will maintain existing selection, and deselect the results of the query. The operation behavior for this intersection query tool can also be changed by providing a custom implementation of the `VolumeIntersectionQueryController`, or by using the `setOperationTransform` method of the default controller.
1766
1774
  */
1767
1775
  "operationType"?: VolumeIntersectionQueryType;
1768
1776
  /**
@@ -90,3 +90,8 @@ export declare const labelPinCursor: {
90
90
  offsetX: number;
91
91
  offsetY: number;
92
92
  };
93
+ export declare const boxQueryCursor: {
94
+ url: string;
95
+ offsetX: number;
96
+ offsetY: number;
97
+ };
@@ -24,6 +24,7 @@ export declare abstract class BaseInteractionHandler implements InteractionHandl
24
24
  private primaryInteraction;
25
25
  private currentInteraction?;
26
26
  private draggingInteraction;
27
+ private lastPrimaryRotateInteraction?;
27
28
  private isDragging;
28
29
  private lastMoveEvent?;
29
30
  private interactionTimer?;
@@ -53,7 +53,8 @@ export declare class PanInteraction extends MouseInteraction {
53
53
  }
54
54
  export declare class TwistInteraction extends MouseInteraction {
55
55
  type: InteractionType;
56
- beginDrag(event: MouseEvent, canvasPosition: Point.Point, api: InteractionApi): void;
56
+ private canvasRect?;
57
+ beginDrag(event: MouseEvent, canvasPosition: Point.Point, api: InteractionApi, element: HTMLElement): void;
57
58
  drag(event: MouseEvent, api: InteractionApi): void;
58
59
  endDrag(event: MouseEvent, api: InteractionApi): void;
59
60
  }
@@ -7,16 +7,18 @@ export declare class PinsInteractionHandler implements InteractionHandler {
7
7
  private element?;
8
8
  private api?;
9
9
  private cursor?;
10
+ private xOffset?;
11
+ private yOffset?;
10
12
  private rectObserver;
11
13
  private droppableSurfaces;
12
14
  private get elementRect();
13
- constructor(controller: PinController);
15
+ constructor(controller: PinController, xOffset: number, yOffset: number);
14
16
  initialize(element: HTMLElement, api: InteractionApi): void;
15
17
  dispose(): void;
16
18
  getWorldPositionForPoint(pt: Point.Point): Promise<Vector3.Vector3 | undefined>;
17
19
  handlePlacePin(pt: Point.Point, existingPin?: Pin): Promise<void>;
18
20
  private handlePointerMove;
19
- private getCusorType;
21
+ private getCursorType;
20
22
  private handleDrag;
21
23
  private handlePointerDown;
22
24
  private handlePointerUp;
@@ -54,7 +54,7 @@ export declare class PinModel {
54
54
  * @param pin A pin entity to draw.
55
55
  * @returns `true` if the entity has been added.
56
56
  */
57
- addPin(pin: Pin, surpressEvent?: boolean): boolean;
57
+ addPin(pin: Pin, suppressEvent?: boolean): boolean;
58
58
  /**
59
59
  * Clears all registered entities from the model.
60
60
  */
@@ -146,7 +146,7 @@ export declare class PerspectiveCamera extends Camera implements FrameCamera.Per
146
146
  moveBy(delta: Vector3.Vector3): Camera;
147
147
  rotateAroundAxisAtPoint(angleInRadians: number, point: Vector3.Vector3, axis: Vector3.Vector3): Camera;
148
148
  fitToBoundingBox(boundingBox: BoundingBox.BoundingBox): Camera;
149
- update(camera: Partial<FrameCamera.FrameCamera>): Camera;
149
+ update(camera: Partial<FrameCamera.PerspectiveFrameCamera>): Camera;
150
150
  toFrameCamera(): FramePerspectiveCamera;
151
151
  get viewVector(): Vector3.Vector3;
152
152
  /**
@@ -1,11 +1,15 @@
1
1
  import { vertexvis } from '@vertexvis/frame-streaming-protos';
2
2
  import { Dimensions } from '@vertexvis/geometry';
3
3
  import { UUID } from '@vertexvis/utils';
4
- import { Animation, FlyTo } from '../types';
4
+ import { Animation, FlyTo, SceneViewStateIdentifier } from '../types';
5
5
  import { ItemOperation } from './operations';
6
6
  import { QueryExpression } from './queries';
7
+ import { SceneViewStateFeature } from './scene';
7
8
  export interface BuildSceneOperationContext {
8
9
  dimensions: Dimensions.Dimensions;
9
10
  }
11
+ export declare function buildSceneViewStateIdentifier(identifier: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier): Pick<vertexvis.protobuf.stream.ILoadSceneViewStatePayload, 'sceneViewStateId'> | Pick<vertexvis.protobuf.stream.ILoadSceneViewStatePayload, 'sceneViewStateSuppliedId'>;
12
+ export declare function buildQueryExpression(query: QueryExpression, context: BuildSceneOperationContext): vertexvis.protobuf.stream.IQueryExpression;
10
13
  export declare function buildSceneOperation(query: QueryExpression, operations: ItemOperation[], context: BuildSceneOperationContext): vertexvis.protobuf.stream.ISceneOperation;
11
14
  export declare function buildFlyToOperation(frameCorrelationId: UUID.UUID, options: FlyTo.FlyToOptions, animation?: Animation.Animation): vertexvis.protobuf.stream.IFlyToPayload;
15
+ export declare function toPbSceneViewStateFeatures(features: SceneViewStateFeature[]): vertexvis.protobuf.stream.SceneViewStateFeature[];
@@ -24,6 +24,10 @@ interface SceneTreeRangeQueryExpression {
24
24
  type: 'scene-tree-range';
25
25
  range: SceneTreeRange;
26
26
  }
27
+ interface NotQueryExpression {
28
+ type: 'not';
29
+ query: QueryExpression;
30
+ }
27
31
  interface MetadataQueryExpression {
28
32
  type: 'metadata';
29
33
  filter: string;
@@ -45,13 +49,16 @@ interface VolumeIntersectionQueryExpression {
45
49
  /**
46
50
  * Represents the sum of all possible types of expressions.
47
51
  */
48
- export declare type QueryExpression = AllQueryExpression | ItemQueryExpression | AndExpression | OrExpression | SceneTreeRangeQueryExpression | PointQueryExpression | VolumeIntersectionQueryExpression | MetadataQueryExpression | AllSelectedQueryExpression;
52
+ export declare type QueryExpression = AllQueryExpression | ItemQueryExpression | AndExpression | OrExpression | SceneTreeRangeQueryExpression | PointQueryExpression | VolumeIntersectionQueryExpression | MetadataQueryExpression | AllSelectedQueryExpression | NotQueryExpression;
49
53
  /**
50
54
  * An interface that represents a query is "complete" and can be turned into an
51
55
  * expression.
52
56
  */
53
- interface TerminalQuery {
57
+ declare abstract class TerminalQuery {
58
+ protected inverted: boolean;
59
+ constructor(inverted: boolean);
54
60
  build(): QueryExpression;
61
+ abstract queryExpressionBuilder(): QueryExpression;
55
62
  }
56
63
  interface ItemQuery<N> {
57
64
  withItemId(id: string): N;
@@ -62,7 +69,10 @@ interface BooleanQuery {
62
69
  or(): OrQuery;
63
70
  }
64
71
  export declare class RootQuery implements ItemQuery<SingleQuery> {
72
+ private inverted;
73
+ constructor(inverted?: boolean);
65
74
  all(): AllQuery;
75
+ not(): RootQuery;
66
76
  withItemIds(ids: string[]): BulkQuery;
67
77
  withSuppliedIds(ids: string[]): BulkQuery;
68
78
  withItemId(id: string): SingleQuery;
@@ -73,60 +83,65 @@ export declare class RootQuery implements ItemQuery<SingleQuery> {
73
83
  withPoint(point: Point.Point): PointQuery;
74
84
  withVolumeIntersection(rectangle: Rectangle.Rectangle, exclusive?: boolean): VolumeIntersectionQuery;
75
85
  }
76
- export declare class AllQuery implements TerminalQuery {
77
- build(): QueryExpression;
86
+ export declare class NotQuery extends RootQuery {
87
+ constructor(inverted: boolean);
78
88
  }
79
- export declare class SceneTreeRangeQuery implements TerminalQuery {
89
+ export declare class AllQuery extends TerminalQuery {
90
+ constructor(inverted?: boolean);
91
+ queryExpressionBuilder(): QueryExpression;
92
+ }
93
+ export declare class SceneTreeRangeQuery extends TerminalQuery {
80
94
  private range;
81
- constructor(range: SceneTreeRange);
82
- build(): SceneTreeRangeQueryExpression;
95
+ constructor(range: SceneTreeRange, inverted: boolean);
96
+ queryExpressionBuilder(): SceneTreeRangeQueryExpression;
83
97
  }
84
- export declare class MetadataQuery implements TerminalQuery {
98
+ export declare class MetadataQuery extends TerminalQuery {
85
99
  private filter;
86
100
  private keys;
87
101
  private exactMatch;
88
- constructor(filter: string, keys: string[], exactMatch: boolean);
89
- build(): MetadataQueryExpression;
102
+ constructor(filter: string, keys: string[], exactMatch: boolean, inverted: boolean);
103
+ queryExpressionBuilder(): MetadataQueryExpression;
90
104
  }
91
- export declare class AllSelectedQuery implements TerminalQuery {
92
- build(): AllSelectedQueryExpression;
105
+ export declare class AllSelectedQuery extends TerminalQuery {
106
+ constructor(inverted: boolean);
107
+ queryExpressionBuilder(): AllSelectedQueryExpression;
93
108
  }
94
- export declare class PointQuery implements TerminalQuery {
109
+ export declare class PointQuery extends TerminalQuery {
95
110
  private point;
96
- constructor(point: Point.Point);
97
- build(): PointQueryExpression;
111
+ constructor(point: Point.Point, inverted: boolean);
112
+ queryExpressionBuilder(): PointQueryExpression;
98
113
  }
99
- export declare class VolumeIntersectionQuery implements TerminalQuery {
114
+ export declare class VolumeIntersectionQuery extends TerminalQuery {
100
115
  private rectangle;
101
116
  private exclusive?;
102
- constructor(rectangle: Rectangle.Rectangle, exclusive?: boolean | undefined);
103
- build(): VolumeIntersectionQueryExpression;
117
+ constructor(rectangle: Rectangle.Rectangle, inverted: boolean, exclusive?: boolean | undefined);
118
+ queryExpressionBuilder(): VolumeIntersectionQueryExpression;
104
119
  }
105
- export declare class BulkQuery implements TerminalQuery {
120
+ export declare class BulkQuery extends TerminalQuery {
106
121
  private ids;
107
122
  private type;
108
- constructor(ids: string[], type: 'item-id' | 'supplied-id');
109
- build(): QueryExpression;
123
+ constructor(ids: string[], type: 'item-id' | 'supplied-id', inverted: boolean);
124
+ queryExpressionBuilder(): QueryExpression;
110
125
  }
111
- declare class SingleQuery implements TerminalQuery, BooleanQuery {
126
+ declare class SingleQuery extends TerminalQuery implements BooleanQuery {
112
127
  private query;
113
- constructor(query: QueryExpression);
114
- build(): QueryExpression;
128
+ constructor(query: QueryExpression, inverted: boolean);
129
+ queryExpressionBuilder(): QueryExpression;
115
130
  and(): AndQuery;
116
131
  or(): OrQuery;
117
132
  }
118
- export declare class OrQuery implements TerminalQuery, ItemQuery<OrQuery> {
133
+ export declare class OrQuery extends TerminalQuery implements ItemQuery<OrQuery> {
119
134
  private expressions;
120
- constructor(expressions: QueryExpression[]);
121
- build(): QueryExpression;
135
+ constructor(expressions: QueryExpression[], inverted: boolean);
136
+ queryExpressionBuilder(): QueryExpression;
122
137
  withItemId(id: string): OrQuery;
123
138
  withSuppliedId(id: string): OrQuery;
124
139
  or(): OrQuery;
125
140
  }
126
- export declare class AndQuery implements TerminalQuery, ItemQuery<AndQuery> {
141
+ export declare class AndQuery extends TerminalQuery implements ItemQuery<AndQuery> {
127
142
  private expressions;
128
- constructor(expressions: QueryExpression[]);
129
- build(): QueryExpression;
143
+ constructor(expressions: QueryExpression[], inverted: boolean);
144
+ queryExpressionBuilder(): QueryExpression;
130
145
  withItemId(id: string): AndQuery;
131
146
  withSuppliedId(id: string): AndQuery;
132
147
  and(): AndQuery;
@@ -3,6 +3,7 @@ import { BoundingBox, Dimensions, Point } from '@vertexvis/geometry';
3
3
  import { StreamApi } from '@vertexvis/stream-api';
4
4
  import { UUID } from '@vertexvis/utils';
5
5
  import { FrameDecoder } from '../mappers';
6
+ import { SceneViewStateIdentifier } from '../types';
6
7
  import { Frame } from '../types/frame';
7
8
  import { Camera } from '.';
8
9
  import { ColorMaterial } from './colorMaterial';
@@ -51,6 +52,10 @@ export declare class ItemsOperationExecutor {
51
52
  }
52
53
  export declare type TerminalItemOperationBuilder = SceneItemOperationsBuilder | SceneItemOperationsBuilder[];
53
54
  export declare type ImageScaleProvider = () => Point.Point | undefined;
55
+ /**
56
+ * The features of a scene view state that can be applied to the current scene
57
+ */
58
+ export declare type SceneViewStateFeature = 'camera' | 'cross_section' | 'material_overrides' | 'selection' | 'transforms' | 'visibility';
54
59
  /**
55
60
  * A class that represents the `Scene` that has been loaded into the viewer. On
56
61
  * it, you can retrieve attributes of the scene, such as the camera. It also
@@ -70,7 +75,11 @@ export declare class Scene {
70
75
  /**
71
76
  * Applies the provided scene view state to the scene.
72
77
  */
73
- applySceneViewState(sceneViewStateId: UUID.UUID, opts?: SceneExecutionOptions): Promise<vertexvis.protobuf.stream.ILoadSceneViewStateResult | undefined>;
78
+ applySceneViewState(sceneViewStateId: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier, opts?: SceneExecutionOptions): Promise<vertexvis.protobuf.stream.ILoadSceneViewStateResult | undefined>;
79
+ /**
80
+ * Applies the specified features of the provided scene view state to the scene.
81
+ */
82
+ applyPartialSceneViewState(sceneViewStateId: UUID.UUID | SceneViewStateIdentifier.SceneViewStateIdentifier, featuresToApply: SceneViewStateFeature[], opts?: SceneExecutionOptions): Promise<vertexvis.protobuf.stream.ILoadSceneViewStateResult | undefined>;
74
83
  /**
75
84
  * Resets the view to its default state, with the ability to reset the camera to that of the base scene.
76
85
  */
@@ -129,7 +129,7 @@ export declare class FramePerspectiveCamera extends FrameCameraBase implements F
129
129
  readonly far: number;
130
130
  readonly aspectRatio: number;
131
131
  readonly fovY: number;
132
- constructor(position: Vector3.Vector3, lookAt: Vector3.Vector3, up: Vector3.Vector3, near: number, far: number, aspectRatio: number, fovY?: number);
132
+ constructor(position: Vector3.Vector3, lookAt: Vector3.Vector3, up: Vector3.Vector3, near: number, far: number, aspectRatio: number, fovY: number);
133
133
  /**
134
134
  * Converts this `FramePerspectiveCamera` to a `FrameOrthographicCamera` using
135
135
  * the provided `boundingBox` to compute the viewing frustum.
@@ -10,6 +10,7 @@ import * as FlyTo from './flyToOptions';
10
10
  import * as FrameCamera from './frameCamera';
11
11
  import * as Interactions from './interactions';
12
12
  import * as LoadableResource from './loadableResource';
13
+ import * as SceneViewStateIdentifier from './sceneViewStateIdentifier';
13
14
  export * from './depthBuffer';
14
15
  export * from './entities';
15
16
  export * from './featureMap';
@@ -22,4 +23,4 @@ export * from './stencilBuffer';
22
23
  export * from './synchronizedClock';
23
24
  export * from './typeGuards';
24
25
  export * from './viewport';
25
- export { Animation, ClippingPlanes, CrossSectioning, Events, Flags, FlyTo, FrameCamera, Interactions, LoadableResource, };
26
+ export { Animation, ClippingPlanes, CrossSectioning, Events, Flags, FlyTo, FrameCamera, Interactions, LoadableResource, SceneViewStateIdentifier, };