@vertexvis/viewer 0.15.2-testing.3 → 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 (274) 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-6e330a82.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-7b2e8c03.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-0f2294a6.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-56438693.js → scene-a94e6fa5.js} +293 -215
  29. package/dist/cjs/shadow-css-6b9daa41.js +1 -1
  30. package/dist/cjs/stencil-fc92b387.js +1 -1
  31. package/dist/cjs/{streamAttributes-c64aee75.js → streamAttributes-cf0c513d.js} +8424 -41995
  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 +425 -0
  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/collection-manifest.json +1 -0
  66. package/dist/collection/components/scene-tree/lib/controller.js +108 -28
  67. package/dist/collection/components/scene-tree/lib/errors.js +35 -2
  68. package/dist/collection/components/scene-tree/scene-tree.js +12 -5
  69. package/dist/collection/components/viewer/viewer.js +17 -15
  70. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +79 -0
  71. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.js +278 -0
  72. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +5 -1
  73. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +1 -1
  74. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +14 -12
  75. package/dist/collection/components/viewer-pin-tool/utils.js +25 -4
  76. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +12 -0
  77. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +9 -2
  78. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +3 -2
  79. package/dist/collection/components/viewer-view-cube/viewer-view-cube.js +5 -5
  80. package/dist/collection/lib/cursors.js +6 -1
  81. package/dist/collection/lib/interactions/baseInteractionHandler.js +12 -2
  82. package/dist/collection/lib/interactions/mouseInteractions.js +5 -4
  83. package/dist/collection/lib/mappers/frameStreaming.js +11 -11
  84. package/dist/collection/lib/pins/interactions.js +9 -5
  85. package/dist/collection/lib/pins/model.js +2 -2
  86. package/dist/collection/lib/rendering/matrices.js +2 -4
  87. package/dist/collection/lib/scenes/camera.js +4 -2
  88. package/dist/collection/lib/scenes/mapper.js +103 -30
  89. package/dist/collection/lib/scenes/queries.js +101 -46
  90. package/dist/collection/lib/scenes/scene.js +15 -7
  91. package/dist/collection/lib/stream/stream.js +24 -12
  92. package/dist/collection/lib/transforms/drawable.js +2 -2
  93. package/dist/collection/lib/types/frame.js +4 -3
  94. package/dist/collection/lib/types/frameCamera.js +6 -1
  95. package/dist/collection/lib/types/index.js +3 -2
  96. package/dist/collection/lib/types/loadableResource.js +24 -4
  97. package/dist/collection/lib/types/sceneViewStateIdentifier.js +7 -0
  98. package/dist/collection/lib/volume-intersection/controller.js +104 -0
  99. package/dist/collection/lib/volume-intersection/interactions.js +82 -0
  100. package/dist/collection/lib/volume-intersection/model.js +84 -0
  101. package/dist/custom-elements/index.d.ts +6 -0
  102. package/dist/custom-elements/index.js +23825 -18358
  103. package/dist/custom-elements/png-decoder.js +1 -1
  104. package/dist/esm/_commonjsHelpers-11ca3be1.js +1 -1
  105. package/dist/esm/app-globals-40df99a0.js +1 -1
  106. package/dist/esm/{browser.esm-ae4ca1f1.js → browser.esm-07e7db8f.js} +2 -2
  107. package/dist/esm/bundle.esm-91404853.js +38273 -0
  108. package/dist/esm/{bundle.esm-ce2c7ad3.js → bundle.esm-92e615bf.js} +2 -2
  109. package/dist/esm/{config-49688db8.js → config-25384fe6.js} +3 -3
  110. package/dist/esm/{cursors-a8d4b3f4.js → cursors-127a3bb7.js} +8 -3
  111. package/dist/esm/dom-0440435d.js +1 -1
  112. package/dist/esm/dom-be140992.js +1 -1
  113. package/dist/esm/dom-e19ee80b.js +1 -1
  114. package/dist/esm/{dom-5b164305.js → dom-e436f0c0.js} +2 -2
  115. package/dist/esm/elementRectObserver-39cf7b95.js +1 -1
  116. package/dist/esm/{entities-a5bfef48.js → entities-0e325765.js} +4 -4
  117. package/dist/esm/entities-ce81dd7f.js +1 -1
  118. package/dist/esm/errors-a4cc9caa.js +85 -0
  119. package/dist/esm/grpc-web-client.umd-5409853c.js +1 -1
  120. package/dist/esm/index-26dfb2d0.js +1 -1
  121. package/dist/esm/index-e841d91b.js +1 -1
  122. package/dist/esm/index.js +15 -13
  123. package/dist/esm/index.mjs +15 -13
  124. package/dist/esm/loader.js +2 -2
  125. package/dist/esm/loader.mjs +2 -2
  126. package/dist/esm/{mapper-5894c2a4.js → mapper-dd937684.js} +3 -3
  127. package/dist/esm/{markup-3c2900f3.js → markup-2dde1f10.js} +3 -3
  128. package/dist/esm/{model-fa9af61a.js → model-3cd8cd47.js} +2 -2
  129. package/dist/esm/{model-40bd1711.js → model-bfe1c4d8.js} +29 -8
  130. package/dist/esm/{overlays-cc3efc30.js → overlays-8f195eb3.js} +3 -3
  131. package/dist/esm/{png-decoder-d4b65417.js → png-decoder-45f38ea3.js} +2 -2
  132. package/dist/esm/{results-3b4df2cf.js → results-38baef59.js} +2 -2
  133. package/dist/esm/{scene-5b919078.js → scene-2543b3bd.js} +254 -168
  134. package/dist/esm/shadow-css-51dd7708.js +1 -1
  135. package/dist/esm/stencil-bfbf099f.js +1 -1
  136. package/dist/esm/{streamAttributes-7e8565be.js → streamAttributes-23270e27.js} +8429 -41994
  137. package/dist/esm/templates-022199c1.js +1 -1
  138. package/dist/esm/{utils-81347571.js → utils-2306c744.js} +2 -2
  139. package/dist/esm/{utils-559e1632.js → utils-f03802ef.js} +2 -2
  140. package/dist/esm/vertex-scene-tree-search_3.entry.js +3 -3
  141. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  142. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  143. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  144. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
  145. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  146. package/dist/esm/vertex-scene-tree.entry.js +160 -39
  147. package/dist/esm/vertex-viewer-box-query-tool.entry.js +421 -0
  148. package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
  149. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  150. package/dist/esm/vertex-viewer-dom-element_2.entry.js +6 -5
  151. package/dist/esm/vertex-viewer-dom-group.entry.js +3 -3
  152. package/dist/esm/vertex-viewer-icon.entry.js +1 -1
  153. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  154. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +4 -4
  155. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  156. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  157. package/dist/esm/vertex-viewer-measurement-details.entry.js +5 -4
  158. package/dist/esm/vertex-viewer-measurement-distance.entry.js +13 -12
  159. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +8 -7
  160. package/dist/esm/vertex-viewer-measurement-precise.entry.js +12 -11
  161. package/dist/esm/vertex-viewer-pin-group.entry.js +13 -8
  162. package/dist/esm/vertex-viewer-pin-label_2.entry.js +18 -16
  163. package/dist/esm/vertex-viewer-pin-tool.entry.js +23 -12
  164. package/dist/esm/vertex-viewer-spinner.entry.js +1 -1
  165. package/dist/esm/vertex-viewer-transform-widget.entry.js +9 -7
  166. package/dist/esm/vertex-viewer-view-cube.entry.js +7 -6
  167. package/dist/esm/vertex-viewer.entry.js +65 -38
  168. package/dist/esm/viewer.js +2 -2
  169. package/dist/esm/{viewport-e39e2eba.js → viewport-f19fc583.js} +2 -2
  170. package/dist/types/components/scene-tree/lib/controller.d.ts +18 -3
  171. package/dist/types/components/scene-tree/lib/errors.d.ts +17 -2
  172. package/dist/types/components/viewer/viewer.d.ts +2 -0
  173. package/dist/types/components/viewer-box-query-tool/viewer-box-query-tool.d.ts +94 -0
  174. package/dist/types/components/viewer-pin-tool/utils.d.ts +1 -1
  175. package/dist/types/components.d.ts +56 -0
  176. package/dist/types/lib/cursors.d.ts +5 -0
  177. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +1 -0
  178. package/dist/types/lib/interactions/mouseInteractions.d.ts +2 -1
  179. package/dist/types/lib/pins/interactions.d.ts +4 -2
  180. package/dist/types/lib/pins/model.d.ts +1 -1
  181. package/dist/types/lib/scenes/camera.d.ts +1 -1
  182. package/dist/types/lib/scenes/mapper.d.ts +5 -1
  183. package/dist/types/lib/scenes/queries.d.ts +55 -28
  184. package/dist/types/lib/scenes/scene.d.ts +10 -1
  185. package/dist/types/lib/types/frame.d.ts +1 -1
  186. package/dist/types/lib/types/index.d.ts +2 -1
  187. package/dist/types/lib/types/loadableResource.d.ts +8 -2
  188. package/dist/types/lib/types/sceneViewStateIdentifier.d.ts +15 -0
  189. package/dist/types/lib/volume-intersection/controller.d.ts +45 -0
  190. package/dist/types/lib/volume-intersection/interactions.d.ts +24 -0
  191. package/dist/types/lib/volume-intersection/model.d.ts +33 -0
  192. package/dist/viewer/index.esm.js +2 -2
  193. package/dist/viewer/{p-ad09c92e.entry.js → p-029fba92.entry.js} +1 -1
  194. package/dist/viewer/p-07aeee89.js +1 -1
  195. package/dist/viewer/{p-29986489.js → p-0a017be7.js} +2 -2
  196. package/dist/viewer/p-0c583cad.entry.js +4 -0
  197. package/dist/viewer/p-0d494d01.js +4 -0
  198. package/dist/viewer/p-0fdad1a5.js +1 -1
  199. package/dist/viewer/{p-3ca4a7c1.js → p-1812c82d.js} +2 -2
  200. package/dist/viewer/{p-7663a603.entry.js → p-191156ad.entry.js} +1 -1
  201. package/dist/viewer/{p-a57dc6e4.entry.js → p-1998284a.entry.js} +2 -2
  202. package/dist/viewer/p-27f715f8.entry.js +4 -0
  203. package/dist/viewer/{p-7f6251da.js → p-283aeac4.js} +2 -2
  204. package/dist/viewer/p-298b63c2.entry.js +4 -0
  205. package/dist/viewer/p-2ace066b.entry.js +4 -0
  206. package/dist/viewer/{p-927b528b.js → p-2b60a8b0.js} +2 -2
  207. package/dist/viewer/{p-050f912b.entry.js → p-2fd123c8.entry.js} +1 -1
  208. package/dist/viewer/p-305a8be6.entry.js +4 -0
  209. package/dist/viewer/p-31724d24.js +4 -0
  210. package/dist/viewer/p-32cc2209.js +4 -0
  211. package/dist/viewer/p-3829dd99.entry.js +4 -0
  212. package/dist/viewer/{p-6da8a28f.entry.js → p-3aae4bf1.entry.js} +2 -2
  213. package/dist/viewer/{p-99352cf0.js → p-42760392.js} +2 -2
  214. package/dist/viewer/p-440c8174.js +4 -0
  215. package/dist/viewer/{p-e422deaf.entry.js → p-4f25e367.entry.js} +2 -2
  216. package/dist/viewer/{p-d64c1e14.entry.js → p-507b5aeb.entry.js} +3 -3
  217. package/dist/viewer/{p-1fc24ec6.js → p-51401063.js} +2 -2
  218. package/dist/viewer/{p-426970b3.entry.js → p-533b1c63.entry.js} +1 -1
  219. package/dist/viewer/{p-dcb9804c.entry.js → p-569ed94a.entry.js} +2 -2
  220. package/dist/viewer/p-5809b400.js +1 -1
  221. package/dist/viewer/p-6072cf84.js +4 -0
  222. package/dist/viewer/{p-e4a26a32.entry.js → p-6406a70a.entry.js} +1 -1
  223. package/dist/viewer/p-6bf0594b.entry.js +4 -0
  224. package/dist/viewer/p-72c59115.entry.js +4 -0
  225. package/dist/viewer/{p-d71652b0.entry.js → p-8ac7290a.entry.js} +1 -1
  226. package/dist/viewer/{p-f184bcab.entry.js → p-8afcbd99.entry.js} +1 -1
  227. package/dist/viewer/p-92fe4417.js +1 -1
  228. package/dist/viewer/{p-5746931d.entry.js → p-952a217d.entry.js} +1 -1
  229. package/dist/viewer/p-98e6a50e.js +1 -1
  230. package/dist/viewer/{p-99fd27e0.entry.js → p-9cb99ea8.entry.js} +1 -1
  231. package/dist/viewer/p-a2e9e8a5.js +4 -0
  232. package/dist/viewer/p-a380f0c2.js +1 -1
  233. package/dist/viewer/{p-661b5234.js → p-acfc5c50.js} +2 -2
  234. package/dist/viewer/{p-82bd25e8.entry.js → p-b3540dce.entry.js} +1 -1
  235. package/dist/viewer/p-b5ca30cd.js +4 -0
  236. package/dist/viewer/p-b74242dc.js +1 -1
  237. package/dist/viewer/p-bc1160cf.entry.js +4 -0
  238. package/dist/viewer/{p-c5e67a1e.entry.js → p-bd5a302c.entry.js} +2 -2
  239. package/dist/viewer/p-c738296e.js +1 -1
  240. package/dist/viewer/p-c8c4343b.js +1 -1
  241. package/dist/viewer/p-cd9ccb9e.entry.js +4 -0
  242. package/dist/viewer/{p-40a9dd7d.js → p-cf689bbd.js} +2 -2
  243. package/dist/viewer/{p-70e5e8a8.js → p-d216a866.js} +2 -2
  244. package/dist/viewer/p-d4ed7b8d.js +4 -0
  245. package/dist/viewer/p-d6d5d5de.entry.js +4 -0
  246. package/dist/viewer/p-d6fce4c1.js +1 -1
  247. package/dist/viewer/p-df8fbe56.js +1 -1
  248. package/dist/viewer/p-dfe5a97d.js +1 -1
  249. package/dist/viewer/{p-00ce31a0.js → p-e1896ce4.js} +2 -2
  250. package/dist/viewer/p-e23af70c.js +4 -0
  251. package/dist/viewer/p-e4aa9cdb.js +1 -1
  252. package/dist/viewer/p-e929dd63.entry.js +4 -0
  253. package/dist/viewer/{p-65af7a89.js → p-fc7d8c03.js} +3 -3
  254. package/dist/viewer/viewer.esm.js +2 -2
  255. package/package.json +9 -9
  256. package/readme.md +4 -4
  257. package/dist/viewer/p-096e60bd.js +0 -4
  258. package/dist/viewer/p-0cf4f05d.entry.js +0 -4
  259. package/dist/viewer/p-0fcafbf9.js +0 -4
  260. package/dist/viewer/p-1abfe4bf.js +0 -4
  261. package/dist/viewer/p-1e0dd2e9.js +0 -4
  262. package/dist/viewer/p-22ae6785.entry.js +0 -4
  263. package/dist/viewer/p-27dbc865.js +0 -4
  264. package/dist/viewer/p-31b87b90.js +0 -4
  265. package/dist/viewer/p-3f6f2457.entry.js +0 -4
  266. package/dist/viewer/p-61e50e11.entry.js +0 -4
  267. package/dist/viewer/p-7579e2a1.entry.js +0 -4
  268. package/dist/viewer/p-920c9a88.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-a6558bb2.entry.js +0 -4
  272. package/dist/viewer/p-b7e170ac.entry.js +0 -4
  273. package/dist/viewer/p-d34ad2b2.entry.js +0 -4
  274. package/dist/viewer/p-f3ea0c2b.entry.js +0 -4
@@ -1,12 +1,14 @@
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
  'use strict';
5
5
 
6
6
  const browser_esm = require('./browser.esm-5d246754.js');
7
- const bundle_esm = require('./bundle.esm-22b6f2d6.js');
8
- const streamAttributes = require('./streamAttributes-c64aee75.js');
7
+ const errors = require('./errors-1b37642b.js');
8
+ const bundle_esm$1 = require('./bundle.esm-22b6f2d6.js');
9
+ const streamAttributes = require('./streamAttributes-cf0c513d.js');
9
10
  require('./entities-9eb7e608.js');
11
+ const bundle_esm = require('./bundle.esm-b43c197a.js');
10
12
 
11
13
  const defaultColor = {
12
14
  opacity: 255,
@@ -98,104 +100,41 @@ const colorMaterial = /*#__PURE__*/Object.freeze({
98
100
  defaultSelectionMaterial: defaultSelectionMaterial
99
101
  });
100
102
 
101
- class CustomError extends Error {
102
- constructor(message, e) {
103
- super();
104
- this.message = message;
105
- this.stack = e === null || e === void 0 ? void 0 : e.stack;
106
- this.name = this.constructor.name;
107
- // Allows for `instanceof` checks.
108
- Object.setPrototypeOf(this, CustomError.prototype);
109
- }
110
- }
111
- class InvalidResourceUrnError extends CustomError {
112
- constructor(message, e) {
113
- super(message, e);
114
- // Allows for `instanceof` checks.
115
- Object.setPrototypeOf(this, InvalidResourceUrnError.prototype);
116
- }
117
- }
118
- class ViewerInitializationError extends CustomError {
119
- constructor(message, e) {
120
- super(message, e);
121
- // Allows for `instanceof` checks.
122
- Object.setPrototypeOf(this, ViewerInitializationError.prototype);
123
- }
124
- }
125
- class ComponentInitializationError extends CustomError {
126
- constructor(message, e) {
127
- super(message, e);
128
- // Allows for `instanceof` checks.
129
- Object.setPrototypeOf(this, ComponentInitializationError.prototype);
130
- }
131
- }
132
- class SceneRenderError extends CustomError {
133
- constructor(message, e) {
134
- super(message, e);
135
- // Allows for `instanceof` checks.
136
- Object.setPrototypeOf(this, SceneRenderError.prototype);
137
- }
138
- }
139
- class WebsocketConnectionError extends CustomError {
140
- constructor(message, e) {
141
- super(message, e);
142
- // Allows for `instanceof` checks.
143
- Object.setPrototypeOf(this, WebsocketConnectionError.prototype);
144
- }
145
- }
146
- class InteractionHandlerError extends CustomError {
147
- constructor(message, e) {
148
- super(message, e);
149
- // Allows for `instanceof` checks.
150
- Object.setPrototypeOf(this, InteractionHandlerError.prototype);
151
- }
152
- }
153
- class ImageLoadError extends CustomError {
154
- constructor(message, e) {
155
- super(message, e);
156
- // Allows for `instanceof` checks.
157
- Object.setPrototypeOf(this, ImageLoadError.prototype);
158
- }
159
- }
160
- class IllegalStateError extends CustomError {
161
- constructor(message, e) {
162
- super(message, e);
163
- // Allows for `instanceof` checks.
164
- Object.setPrototypeOf(this, IllegalStateError.prototype);
165
- }
166
- }
167
- class InvalidArgumentError extends CustomError {
168
- constructor(message, e) {
169
- super(message, e);
170
- // Allows for `instanceof` checks.
171
- Object.setPrototypeOf(this, InvalidArgumentError.prototype);
172
- }
173
- }
174
- class InvalidCameraError extends CustomError {
175
- constructor(message, e) {
176
- super(message, e);
177
- // Allows for `instanceof` checks.
178
- Object.setPrototypeOf(this, InvalidCameraError.prototype);
179
- }
180
- }
181
-
182
103
  function fromUrn(urn) {
104
+ var _a;
183
105
  const uri = browser_esm.uri.parse(urn);
184
106
  if (uri.scheme !== 'urn' || uri.path == null) {
185
107
  throw new Error('Invalid URN. Expected URN scheme.');
186
108
  }
187
- const [nid, resourceType, resourceId] = uri.path.split(':');
109
+ const [nid, resourceType, resourceId, ...subResourcePath] = uri.path.split(/[:/]/);
188
110
  if (nid !== 'vertexvis') {
189
111
  throw new Error('Invalid URN. Expected URN to be vertexvis namespace');
190
112
  }
191
113
  switch (resourceType) {
192
114
  case 'stream-key':
115
+ const queries = fromQuery(uri.query);
116
+ const subResource = (_a = fromSubResourcePath(subResourcePath.join('/'))) !== null && _a !== void 0 ? _a : queries.find((q) => q.type === 'scene-view-state');
193
117
  return {
194
118
  resource: { type: 'stream-key', id: resourceId },
195
- queries: fromQuery(uri.query),
119
+ subResource,
120
+ queries: queries.filter((q) => q.type !== 'scene-view-state'),
196
121
  };
197
122
  default:
198
- throw new InvalidResourceUrnError(`Invalid URN. Unknown resource type ${resourceType}`);
123
+ throw new errors.InvalidResourceUrnError(`Invalid URN. Unknown resource type ${resourceType}`);
124
+ }
125
+ }
126
+ function fromSubResourcePath(path) {
127
+ if (path != null) {
128
+ const [subResourceType, subResourceId] = path.split('/');
129
+ switch (subResourceType) {
130
+ case 'scene-view-states':
131
+ return {
132
+ type: 'scene-view-state',
133
+ id: subResourceId,
134
+ };
135
+ default:
136
+ return undefined;
137
+ }
199
138
  }
200
139
  }
201
140
  function fromQuery(query) {
@@ -203,10 +142,12 @@ function fromQuery(query) {
203
142
  return query.split('&').map((queryFragment) => {
204
143
  const [resourceType, resourceId] = queryFragment.split('=');
205
144
  switch (resourceType) {
145
+ case 'supplied-id':
146
+ return { type: 'supplied-id', id: resourceId };
206
147
  case 'scene-view-state':
207
148
  return { type: 'scene-view-state', id: resourceId };
208
149
  default:
209
- throw new Error('Invalid URN. Unknown query resource type');
150
+ throw new Error('Invalid URN. Unknown query value type');
210
151
  }
211
152
  });
212
153
  }
@@ -220,6 +161,13 @@ const loadableResource = /*#__PURE__*/Object.freeze({
220
161
  fromUrn: fromUrn
221
162
  });
222
163
 
164
+ function isSceneViewStateId(identifier) {
165
+ return identifier.id != null;
166
+ }
167
+ function isSceneViewStateSuppliedId(identifier) {
168
+ return identifier.suppliedId != null;
169
+ }
170
+
223
171
  /**
224
172
  * A `SynchronizedClock` allows for approximating the time on a remote machine.
225
173
  *
@@ -370,68 +318,114 @@ class CameraRenderResult {
370
318
  }
371
319
  }
372
320
 
373
- function buildSceneOperation(query, operations, context) {
374
- const operationTypes = buildOperationTypes(operations);
321
+ function buildSceneViewStateIdentifier(identifier) {
322
+ if (typeof identifier === 'string') {
323
+ return { sceneViewStateId: { hex: identifier } };
324
+ }
325
+ else if (isSceneViewStateId(identifier)) {
326
+ return { sceneViewStateId: { hex: identifier.id } };
327
+ }
328
+ else if (isSceneViewStateSuppliedId(identifier)) {
329
+ return { sceneViewStateSuppliedId: { value: identifier.suppliedId } };
330
+ }
331
+ else {
332
+ throw new Error('Unable to build scene view state identifier, input must be a string or `SceneViewStateIdentifier`.');
333
+ }
334
+ }
335
+ function buildQueryExpression(query, context) {
375
336
  switch (query.type) {
376
337
  case 'and':
377
338
  case 'or':
378
339
  return {
379
- [query.type]: {
380
- queries: query.expressions.map((exp) => ({
381
- sceneItemQuery: buildSceneItemQuery(exp),
382
- })),
340
+ operand: {
341
+ itemCollection: {
342
+ queries: query.expressions.map((exp) => ({
343
+ sceneItemQuery: buildSceneItemQuery(exp),
344
+ })),
345
+ },
346
+ },
347
+ };
348
+ case 'not':
349
+ return {
350
+ not: {
351
+ expression: buildQueryExpression(query.query, context),
383
352
  },
384
- operationTypes,
385
353
  };
386
354
  case 'item-id':
387
355
  case 'supplied-id':
388
356
  return {
389
- item: {
390
- sceneItemQuery: buildSceneItemQuery(query),
357
+ operand: {
358
+ item: {
359
+ sceneItemQuery: buildSceneItemQuery(query),
360
+ },
391
361
  },
392
- operationTypes,
393
362
  };
394
363
  case 'all':
395
364
  return {
396
- all: {},
397
- operationTypes,
365
+ operand: {
366
+ root: {},
367
+ },
398
368
  };
399
369
  case 'scene-tree-range':
400
370
  return {
401
- sceneTreeRange: {
402
- start: query.range.start,
403
- end: query.range.end,
371
+ operand: {
372
+ sceneTreeRange: {
373
+ start: query.range.start,
374
+ end: query.range.end,
375
+ },
404
376
  },
405
- operationTypes,
406
377
  };
407
378
  case 'metadata':
408
379
  return {
409
- metadata: {
410
- valueFilter: query.filter,
411
- keys: query.keys,
412
- exactMatch: query.exactMatch,
380
+ operand: {
381
+ metadata: {
382
+ valueFilter: query.filter,
383
+ keys: query.keys,
384
+ exactMatch: query.exactMatch,
385
+ },
413
386
  },
414
- operationTypes,
415
387
  };
416
388
  case 'all-selected':
417
389
  return {
418
- override: {
419
- selection: {},
390
+ operand: {
391
+ override: {
392
+ selection: {},
393
+ },
420
394
  },
421
- operationTypes,
422
395
  };
423
396
  case 'point':
424
397
  return {
425
- point: {
426
- point: query.point,
427
- viewport: context.dimensions,
398
+ operand: {
399
+ point: {
400
+ point: query.point,
401
+ viewport: context.dimensions,
402
+ },
403
+ },
404
+ };
405
+ case 'volume-intersection':
406
+ return {
407
+ operand: {
408
+ volume: {
409
+ frustumByRectangle: {
410
+ rectangle: query.rectangle,
411
+ },
412
+ exclusive: query.exclusive,
413
+ viewport: context.dimensions,
414
+ },
428
415
  },
429
- operationTypes,
430
416
  };
431
417
  default:
432
418
  return {};
433
419
  }
434
420
  }
421
+ function buildSceneOperation(query, operations, context) {
422
+ const operationTypes = buildOperationTypes(operations);
423
+ const queryExpression = buildQueryExpression(query, context);
424
+ return {
425
+ queryExpression,
426
+ operationTypes,
427
+ };
428
+ }
435
429
  function buildSceneItemQuery(item) {
436
430
  switch (item.type) {
437
431
  case 'item-id':
@@ -455,7 +449,7 @@ function buildFlyToOperation(frameCorrelationId, options, animation) {
455
449
  },
456
450
  animation: animation
457
451
  ? {
458
- duration: streamAttributes.toProtoDuration(animation.milliseconds),
452
+ duration: bundle_esm.toProtoDuration(animation.milliseconds),
459
453
  }
460
454
  : undefined,
461
455
  };
@@ -551,6 +545,33 @@ function buildOperationTypes(operations) {
551
545
  }
552
546
  });
553
547
  }
548
+ function toPbSceneViewStateFeatures(features) {
549
+ return features.map((feature) => {
550
+ switch (feature) {
551
+ case 'camera':
552
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
553
+ .SCENE_VIEW_STATE_FEATURE_CAMERA;
554
+ case 'material_overrides':
555
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
556
+ .SCENE_VIEW_STATE_FEATURE_MATERIAL_OVERRIDE;
557
+ case 'selection':
558
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
559
+ .SCENE_VIEW_STATE_FEATURE_SELECTION;
560
+ case 'visibility':
561
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
562
+ .SCENE_VIEW_STATE_FEATURE_VISIBILITY;
563
+ case 'transforms':
564
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
565
+ .SCENE_VIEW_STATE_FEATURE_TRANSFORM;
566
+ case 'cross_section':
567
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
568
+ .SCENE_VIEW_STATE_FEATURE_CROSS_SECTION;
569
+ default:
570
+ return streamAttributes.vertexvis.protobuf.stream.SceneViewStateFeature
571
+ .SCENE_VIEW_STATE_FEATURE_INVALID;
572
+ }
573
+ });
574
+ }
554
575
 
555
576
  const PI_OVER_360 = 0.008726646259972;
556
577
  class TerminalFlyToExecutor {
@@ -618,9 +639,9 @@ class Camera {
618
639
  this.flyToOptions = flyToOptions;
619
640
  }
620
641
  fitCameraToBoundingBox(boundingBox, distance, viewVector) {
621
- const vvec = bundle_esm.vector3.scale(distance, bundle_esm.vector3.normalize(viewVector));
622
- const lookAt = bundle_esm.boundingBox.center(boundingBox);
623
- const position = bundle_esm.vector3.subtract(lookAt, vvec);
642
+ const vvec = bundle_esm$1.vector3.scale(distance, bundle_esm$1.vector3.normalize(viewVector));
643
+ const lookAt = bundle_esm$1.boundingBox.center(boundingBox);
644
+ const position = bundle_esm$1.vector3.subtract(lookAt, vvec);
624
645
  return this.update({ lookAt, position, viewVector: vvec });
625
646
  }
626
647
  /**
@@ -631,9 +652,9 @@ class Camera {
631
652
  */
632
653
  signedDistanceToBoundingBoxCenter(boundingBox) {
633
654
  const { position, viewVector } = streamAttributes.withPositionAndViewVector(this.data);
634
- const boundingBoxCenter = bundle_esm.boundingBox.center(boundingBox !== null && boundingBox !== void 0 ? boundingBox : this.boundingBox);
635
- const cameraToCenter = bundle_esm.vector3.subtract(boundingBoxCenter, position);
636
- return (bundle_esm.vector3.dot(viewVector, cameraToCenter) / bundle_esm.vector3.magnitude(viewVector));
655
+ const boundingBoxCenter = bundle_esm$1.boundingBox.center(boundingBox !== null && boundingBox !== void 0 ? boundingBox : this.boundingBox);
656
+ const cameraToCenter = bundle_esm$1.vector3.subtract(boundingBoxCenter, position);
657
+ return (bundle_esm$1.vector3.dot(viewVector, cameraToCenter) / bundle_esm$1.vector3.magnitude(viewVector));
637
658
  }
638
659
  /**
639
660
  * Specifies that the next render of the camera will be repositioned to one of
@@ -715,22 +736,22 @@ class Camera {
715
736
  * @param normal The normal of the plane to align to.
716
737
  */
717
738
  alignTo(position, normal) {
718
- const worldX = bundle_esm.vector3.normalize(bundle_esm.vector3.cross(this.up, bundle_esm.vector3.normalize(this.viewVector)));
719
- const positiveWorldY = bundle_esm.vector3.normalize(bundle_esm.vector3.cross(bundle_esm.vector3.normalize(this.viewVector), worldX));
739
+ const worldX = bundle_esm$1.vector3.normalize(bundle_esm$1.vector3.cross(this.up, bundle_esm$1.vector3.normalize(this.viewVector)));
740
+ const positiveWorldY = bundle_esm$1.vector3.normalize(bundle_esm$1.vector3.cross(bundle_esm$1.vector3.normalize(this.viewVector), worldX));
720
741
  // Invert the world y axis if the provided normal is more than 90 degrees from it
721
742
  // to compute a proper angle to rotate the view vector by
722
- const worldY = bundle_esm.vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
723
- ? bundle_esm.vector3.negate(positiveWorldY)
743
+ const worldY = bundle_esm$1.vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
744
+ ? bundle_esm$1.vector3.negate(positiveWorldY)
724
745
  : positiveWorldY;
725
- const localX = bundle_esm.vector3.isEqual(worldY, normal)
746
+ const localX = bundle_esm$1.vector3.isEqual(worldY, normal)
726
747
  ? worldX
727
- : bundle_esm.vector3.normalize(bundle_esm.vector3.cross(worldY, normal));
728
- const transformedViewVector = bundle_esm.vector3.transformMatrix(this.viewVector, bundle_esm.matrix4.makeRotation(bundle_esm.quaternion.fromAxisAngle(localX, bundle_esm.vector3.angleTo(normal, worldY))));
729
- const lookAtRay = bundle_esm.ray.create({
748
+ : bundle_esm$1.vector3.normalize(bundle_esm$1.vector3.cross(worldY, normal));
749
+ const transformedViewVector = bundle_esm$1.vector3.transformMatrix(this.viewVector, bundle_esm$1.matrix4.makeRotation(bundle_esm$1.quaternion.fromAxisAngle(localX, bundle_esm$1.vector3.angleTo(normal, worldY))));
750
+ const lookAtRay = bundle_esm$1.ray.create({
730
751
  origin: position,
731
- direction: bundle_esm.vector3.normalize(transformedViewVector),
752
+ direction: bundle_esm$1.vector3.normalize(transformedViewVector),
732
753
  });
733
- const lookAt = bundle_esm.ray.at(lookAtRay, bundle_esm.vector3.magnitude(this.viewVector));
754
+ const lookAt = bundle_esm$1.ray.at(lookAtRay, bundle_esm$1.vector3.magnitude(this.viewVector));
734
755
  return this.update({
735
756
  position,
736
757
  lookAt,
@@ -747,8 +768,8 @@ class Camera {
747
768
  standardView(standardView) {
748
769
  return this.update({
749
770
  position: standardView.position,
750
- viewVector: bundle_esm.vector3.subtract(bundle_esm.vector3.origin(), standardView.position),
751
- lookAt: bundle_esm.vector3.origin(),
771
+ viewVector: bundle_esm$1.vector3.subtract(bundle_esm$1.vector3.origin(), standardView.position),
772
+ lookAt: bundle_esm$1.vector3.origin(),
752
773
  up: standardView.up,
753
774
  });
754
775
  }
@@ -786,21 +807,21 @@ class PerspectiveCamera extends Camera {
786
807
  */
787
808
  moveBy(delta) {
788
809
  return this.update({
789
- position: bundle_esm.vector3.add(this.position, delta),
790
- lookAt: bundle_esm.vector3.add(this.lookAt, delta),
810
+ position: bundle_esm$1.vector3.add(this.position, delta),
811
+ lookAt: bundle_esm$1.vector3.add(this.lookAt, delta),
791
812
  });
792
813
  }
793
814
  rotateAroundAxisAtPoint(angleInRadians, point, axis) {
794
815
  return this.update({
795
- position: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point),
796
- lookAt: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),
797
- up: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm.vector3.origin()),
816
+ position: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point),
817
+ lookAt: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),
818
+ up: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm$1.vector3.origin()),
798
819
  });
799
820
  }
800
821
  fitToBoundingBox(boundingBox) {
801
822
  var _a;
802
823
  const radius = 1.1 *
803
- bundle_esm.vector3.magnitude(bundle_esm.vector3.subtract(boundingBox.max, bundle_esm.boundingBox.center(boundingBox)));
824
+ bundle_esm$1.vector3.magnitude(bundle_esm$1.vector3.subtract(boundingBox.max, bundle_esm$1.boundingBox.center(boundingBox)));
804
825
  // ratio of the height of the frustum to the distance along the view vector
805
826
  let hOverD = Math.tan(((_a = this.fovY) !== null && _a !== void 0 ? _a : 45) * PI_OVER_360);
806
827
  if (this.aspect < 1.0) {
@@ -810,14 +831,16 @@ class PerspectiveCamera extends Camera {
810
831
  return super.fitCameraToBoundingBox(boundingBox, distance, this.viewVector);
811
832
  }
812
833
  update(camera) {
813
- return new PerspectiveCamera(this.stream, this.aspect, Object.assign(Object.assign({}, this.perspectiveData), camera), this.boundingBox, this.decodeFrame, this.flyToOptions);
834
+ var _a;
835
+ const fovY = (_a = camera.fovY) !== null && _a !== void 0 ? _a : this.fovY;
836
+ return new PerspectiveCamera(this.stream, this.aspect, Object.assign(Object.assign(Object.assign({}, this.perspectiveData), camera), { fovY }), this.boundingBox, this.decodeFrame, this.flyToOptions);
814
837
  }
815
838
  toFrameCamera() {
816
839
  var _a;
817
840
  return new streamAttributes.FramePerspectiveCamera(this.position, this.lookAt, this.up, this.near, this.far, this.aspectRatio, (_a = this.fovY) !== null && _a !== void 0 ? _a : 45);
818
841
  }
819
842
  get viewVector() {
820
- return bundle_esm.vector3.subtract(this.lookAt, this.position);
843
+ return bundle_esm$1.vector3.subtract(this.lookAt, this.position);
821
844
  }
822
845
  /**
823
846
  * The position vector for the camera, in world space coordinates.
@@ -880,21 +903,21 @@ class OrthographicCamera extends Camera {
880
903
  */
881
904
  moveBy(delta) {
882
905
  return this.update({
883
- lookAt: bundle_esm.vector3.add(this.lookAt, delta),
906
+ lookAt: bundle_esm$1.vector3.add(this.lookAt, delta),
884
907
  });
885
908
  }
886
909
  rotateAroundAxisAtPoint(angleInRadians, point, axis) {
887
- const updatedLookAt = bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point);
888
- const updatedPosition = bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point);
889
- const viewVector = streamAttributes.constrainViewVector(bundle_esm.vector3.subtract(updatedLookAt, updatedPosition), bundle_esm.boundingSphere.create(this.boundingBox));
910
+ const updatedLookAt = bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point);
911
+ const updatedPosition = bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point);
912
+ const viewVector = streamAttributes.constrainViewVector(bundle_esm$1.vector3.subtract(updatedLookAt, updatedPosition), bundle_esm$1.boundingSphere.create(this.boundingBox));
890
913
  return this.update({
891
914
  viewVector: viewVector,
892
915
  lookAt: updatedLookAt,
893
- up: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm.vector3.origin()),
916
+ up: bundle_esm$1.vector3.rotateAboutAxis(angleInRadians, this.up, axis, bundle_esm$1.vector3.origin()),
894
917
  });
895
918
  }
896
919
  fitToBoundingBox(boundingBox) {
897
- const boundingSphere = bundle_esm.boundingSphere.create(boundingBox);
920
+ const boundingSphere = bundle_esm$1.boundingSphere.create(boundingBox);
898
921
  const fitAll = super.fitCameraToBoundingBox(boundingBox, boundingSphere.radius, this.viewVector);
899
922
  return this.update({
900
923
  lookAt: fitAll.lookAt,
@@ -906,13 +929,13 @@ class OrthographicCamera extends Camera {
906
929
  return new OrthographicCamera(this.stream, this.aspect, Object.assign(Object.assign({}, this.orthographicData), camera), this.boundingBox, this.decodeFrame, this.flyToOptions);
907
930
  }
908
931
  toFrameCamera() {
909
- return new streamAttributes.FrameOrthographicCamera(streamAttributes.constrainViewVector(this.viewVector, bundle_esm.boundingSphere.create(this.boundingBox)), this.lookAt, this.up, this.near, this.far, this.aspectRatio, this.fovHeight);
932
+ return new streamAttributes.FrameOrthographicCamera(streamAttributes.constrainViewVector(this.viewVector, bundle_esm$1.boundingSphere.create(this.boundingBox)), this.lookAt, this.up, this.near, this.far, this.aspectRatio, this.fovHeight);
910
933
  }
911
934
  get viewVector() {
912
935
  return Object.assign({}, this.orthographicData.viewVector);
913
936
  }
914
937
  get position() {
915
- return bundle_esm.vector3.add(this.lookAt, bundle_esm.vector3.negate(this.viewVector));
938
+ return bundle_esm$1.vector3.add(this.lookAt, bundle_esm$1.vector3.negate(this.viewVector));
916
939
  }
917
940
  /**
918
941
  * A normalized vector representing the up direction.
@@ -974,7 +997,7 @@ class Raycaster {
974
997
  async hitItems(point, options) {
975
998
  const scale = this.imageScaleProvider();
976
999
  const res = await this.stream.hitItems({
977
- point: bundle_esm.point.scale(point, (scale === null || scale === void 0 ? void 0 : scale.x) || 1, (scale === null || scale === void 0 ? void 0 : scale.y) || 1),
1000
+ point: bundle_esm$1.point.scale(point, (scale === null || scale === void 0 ? void 0 : scale.x) || 1, (scale === null || scale === void 0 ? void 0 : scale.y) || 1),
978
1001
  includeMetadata: options === null || options === void 0 ? void 0 : options.includeMetadata,
979
1002
  }, true);
980
1003
  return res.hitItems || undefined;
@@ -1043,58 +1066,97 @@ class SceneOperationBuilder {
1043
1066
  }
1044
1067
  }
1045
1068
 
1069
+ /**
1070
+ * An interface that represents a query is "complete" and can be turned into an
1071
+ * expression.
1072
+ */
1073
+ class TerminalQuery {
1074
+ constructor(inverted) {
1075
+ this.inverted = inverted;
1076
+ }
1077
+ build() {
1078
+ if (this.inverted) {
1079
+ return {
1080
+ type: 'not',
1081
+ query: this.queryExpressionBuilder(),
1082
+ };
1083
+ }
1084
+ else {
1085
+ return this.queryExpressionBuilder();
1086
+ }
1087
+ }
1088
+ }
1046
1089
  class RootQuery {
1090
+ constructor(inverted = false) {
1091
+ this.inverted = inverted;
1092
+ }
1047
1093
  all() {
1048
1094
  return new AllQuery();
1049
1095
  }
1096
+ not() {
1097
+ return new NotQuery(!this.inverted);
1098
+ }
1050
1099
  withItemIds(ids) {
1051
- return new BulkQuery(ids, 'item-id');
1100
+ return new BulkQuery(ids, 'item-id', this.inverted);
1052
1101
  }
1053
1102
  withSuppliedIds(ids) {
1054
- return new BulkQuery(ids, 'supplied-id');
1103
+ return new BulkQuery(ids, 'supplied-id', this.inverted);
1055
1104
  }
1056
1105
  withItemId(id) {
1057
- return new SingleQuery({ type: 'item-id', value: id });
1106
+ return new SingleQuery({ type: 'item-id', value: id }, this.inverted);
1058
1107
  }
1059
1108
  withSuppliedId(id) {
1060
- return new SingleQuery({ type: 'supplied-id', value: id });
1109
+ return new SingleQuery({ type: 'supplied-id', value: id }, this.inverted);
1061
1110
  }
1062
1111
  withSceneTreeRange(range) {
1063
- return new SceneTreeRangeQuery(range);
1112
+ return new SceneTreeRangeQuery(range, this.inverted);
1064
1113
  }
1065
1114
  withMetadata(filter, keys, exactMatch) {
1066
- return new MetadataQuery(filter, keys, exactMatch);
1115
+ return new MetadataQuery(filter, keys, exactMatch, this.inverted);
1067
1116
  }
1068
1117
  withSelected() {
1069
- return new AllSelectedQuery();
1118
+ return new AllSelectedQuery(this.inverted);
1070
1119
  }
1071
1120
  withPoint(point) {
1072
- return new PointQuery(point);
1121
+ return new PointQuery(point, this.inverted);
1122
+ }
1123
+ withVolumeIntersection(rectangle, exclusive) {
1124
+ return new VolumeIntersectionQuery(rectangle, this.inverted, exclusive);
1073
1125
  }
1074
1126
  }
1075
- class AllQuery {
1076
- build() {
1127
+ class NotQuery extends RootQuery {
1128
+ constructor(inverted) {
1129
+ super(inverted);
1130
+ }
1131
+ }
1132
+ class AllQuery extends TerminalQuery {
1133
+ constructor(inverted = false) {
1134
+ super(inverted);
1135
+ }
1136
+ queryExpressionBuilder() {
1077
1137
  return { type: 'all' };
1078
1138
  }
1079
1139
  }
1080
- class SceneTreeRangeQuery {
1081
- constructor(range) {
1140
+ class SceneTreeRangeQuery extends TerminalQuery {
1141
+ constructor(range, inverted) {
1142
+ super(inverted);
1082
1143
  this.range = range;
1083
1144
  }
1084
- build() {
1145
+ queryExpressionBuilder() {
1085
1146
  return {
1086
1147
  type: 'scene-tree-range',
1087
1148
  range: this.range,
1088
1149
  };
1089
1150
  }
1090
1151
  }
1091
- class MetadataQuery {
1092
- constructor(filter, keys, exactMatch) {
1152
+ class MetadataQuery extends TerminalQuery {
1153
+ constructor(filter, keys, exactMatch, inverted) {
1154
+ super(inverted);
1093
1155
  this.filter = filter;
1094
1156
  this.keys = keys;
1095
1157
  this.exactMatch = exactMatch;
1096
1158
  }
1097
- build() {
1159
+ queryExpressionBuilder() {
1098
1160
  return {
1099
1161
  type: 'metadata',
1100
1162
  filter: this.filter,
@@ -1103,30 +1165,49 @@ class MetadataQuery {
1103
1165
  };
1104
1166
  }
1105
1167
  }
1106
- class AllSelectedQuery {
1107
- build() {
1168
+ class AllSelectedQuery extends TerminalQuery {
1169
+ constructor(inverted) {
1170
+ super(inverted);
1171
+ }
1172
+ queryExpressionBuilder() {
1108
1173
  return {
1109
1174
  type: 'all-selected',
1110
1175
  };
1111
1176
  }
1112
1177
  }
1113
- class PointQuery {
1114
- constructor(point) {
1178
+ class PointQuery extends TerminalQuery {
1179
+ constructor(point, inverted) {
1180
+ super(inverted);
1115
1181
  this.point = point;
1116
1182
  }
1117
- build() {
1183
+ queryExpressionBuilder() {
1118
1184
  return {
1119
1185
  type: 'point',
1120
1186
  point: this.point,
1121
1187
  };
1122
1188
  }
1123
1189
  }
1124
- class BulkQuery {
1125
- constructor(ids, type) {
1190
+ class VolumeIntersectionQuery extends TerminalQuery {
1191
+ constructor(rectangle, inverted, exclusive) {
1192
+ super(inverted);
1193
+ this.rectangle = rectangle;
1194
+ this.exclusive = exclusive;
1195
+ }
1196
+ queryExpressionBuilder() {
1197
+ return {
1198
+ type: 'volume-intersection',
1199
+ rectangle: this.rectangle,
1200
+ exclusive: !!this.exclusive,
1201
+ };
1202
+ }
1203
+ }
1204
+ class BulkQuery extends TerminalQuery {
1205
+ constructor(ids, type, inverted) {
1206
+ super(inverted);
1126
1207
  this.ids = ids;
1127
1208
  this.type = type;
1128
1209
  }
1129
- build() {
1210
+ queryExpressionBuilder() {
1130
1211
  return {
1131
1212
  type: 'or',
1132
1213
  expressions: this.ids.map((id) => {
@@ -1138,55 +1219,52 @@ class BulkQuery {
1138
1219
  };
1139
1220
  }
1140
1221
  }
1141
- class SingleQuery {
1142
- constructor(query) {
1222
+ class SingleQuery extends TerminalQuery {
1223
+ constructor(query, inverted) {
1224
+ super(inverted);
1143
1225
  this.query = query;
1144
1226
  }
1145
- build() {
1227
+ queryExpressionBuilder() {
1146
1228
  return Object.assign({}, this.query);
1147
1229
  }
1148
1230
  and() {
1149
- return new AndQuery([this.query]);
1231
+ return new AndQuery([this.query], this.inverted);
1150
1232
  }
1151
1233
  or() {
1152
- return new OrQuery([this.query]);
1234
+ return new OrQuery([this.query], this.inverted);
1153
1235
  }
1154
1236
  }
1155
- class OrQuery {
1156
- constructor(expressions) {
1237
+ class OrQuery extends TerminalQuery {
1238
+ constructor(expressions, inverted) {
1239
+ super(inverted);
1157
1240
  this.expressions = expressions;
1158
1241
  }
1159
- build() {
1242
+ queryExpressionBuilder() {
1160
1243
  return { type: 'or', expressions: [...this.expressions] };
1161
1244
  }
1162
1245
  withItemId(id) {
1163
- return new OrQuery([...this.expressions, { type: 'item-id', value: id }]);
1246
+ return new OrQuery([...this.expressions, { type: 'item-id', value: id }], this.inverted);
1164
1247
  }
1165
1248
  withSuppliedId(id) {
1166
- return new OrQuery([
1167
- ...this.expressions,
1168
- { type: 'supplied-id', value: id },
1169
- ]);
1249
+ return new OrQuery([...this.expressions, { type: 'supplied-id', value: id }], this.inverted);
1170
1250
  }
1171
1251
  or() {
1172
1252
  return this;
1173
1253
  }
1174
1254
  }
1175
- class AndQuery {
1176
- constructor(expressions) {
1255
+ class AndQuery extends TerminalQuery {
1256
+ constructor(expressions, inverted) {
1257
+ super(inverted);
1177
1258
  this.expressions = expressions;
1178
1259
  }
1179
- build() {
1260
+ queryExpressionBuilder() {
1180
1261
  return { type: 'and', expressions: [...this.expressions] };
1181
1262
  }
1182
1263
  withItemId(id) {
1183
- return new AndQuery([...this.expressions, { type: 'item-id', value: id }]);
1264
+ return new AndQuery([...this.expressions, { type: 'item-id', value: id }], this.inverted);
1184
1265
  }
1185
1266
  withSuppliedId(id) {
1186
- return new AndQuery([
1187
- ...this.expressions,
1188
- { type: 'supplied-id', value: id },
1189
- ]);
1267
+ return new AndQuery([...this.expressions, { type: 'supplied-id', value: id }], this.inverted);
1190
1268
  }
1191
1269
  and() {
1192
1270
  return this;
@@ -1245,7 +1323,7 @@ class SceneItemOperationsBuilder {
1245
1323
  transform(matrix) {
1246
1324
  if (Array.isArray(matrix)) {
1247
1325
  if (matrix.length !== 16) {
1248
- throw new InvalidArgumentError('Matrix provided must contain exactly 16 values (4x4).');
1326
+ throw new errors.InvalidArgumentError('Matrix provided must contain exactly 16 values (4x4).');
1249
1327
  }
1250
1328
  return new SceneItemOperationsBuilder(this.query, this.defaultSelectionMaterial, this.builder.transform({
1251
1329
  r0: {
@@ -1334,12 +1412,20 @@ class Scene {
1334
1412
  * Applies the provided scene view state to the scene.
1335
1413
  */
1336
1414
  async applySceneViewState(sceneViewStateId, opts = {}) {
1337
- return await this.stream.loadSceneViewState({
1338
- sceneViewStateId: { hex: sceneViewStateId },
1339
- frameCorrelationId: opts.suppliedCorrelationId
1415
+ const pbIdField = buildSceneViewStateIdentifier(sceneViewStateId);
1416
+ return await this.stream.loadSceneViewState(Object.assign(Object.assign({}, pbIdField), { frameCorrelationId: opts.suppliedCorrelationId
1340
1417
  ? { value: opts.suppliedCorrelationId }
1341
- : undefined,
1342
- }, true);
1418
+ : undefined }), true);
1419
+ }
1420
+ /**
1421
+ * Applies the specified features of the provided scene view state to the scene.
1422
+ */
1423
+ async applyPartialSceneViewState(sceneViewStateId, featuresToApply, opts = {}) {
1424
+ const pbIdField = buildSceneViewStateIdentifier(sceneViewStateId);
1425
+ const pbFeatures = toPbSceneViewStateFeatures(featuresToApply);
1426
+ return await this.stream.loadSceneViewState(Object.assign(Object.assign({}, pbIdField), { frameCorrelationId: opts.suppliedCorrelationId
1427
+ ? { value: opts.suppliedCorrelationId }
1428
+ : undefined, sceneViewStateFeatureSubset: pbFeatures }), true);
1343
1429
  }
1344
1430
  /**
1345
1431
  * Resets the view to its default state, with the ability to reset the camera to that of the base scene.
@@ -1371,7 +1457,7 @@ class Scene {
1371
1457
  camera() {
1372
1458
  const { scene } = this.frame;
1373
1459
  if (scene.camera.isOrthographic()) {
1374
- return new OrthographicCamera(this.stream, bundle_esm.dimensions.aspectRatio(this.viewport()), {
1460
+ return new OrthographicCamera(this.stream, bundle_esm$1.dimensions.aspectRatio(this.viewport()), {
1375
1461
  viewVector: scene.camera.viewVector,
1376
1462
  lookAt: scene.camera.lookAt,
1377
1463
  up: scene.camera.up,
@@ -1379,7 +1465,7 @@ class Scene {
1379
1465
  }, this.frame.scene.boundingBox, this.decodeFrame);
1380
1466
  }
1381
1467
  else if (scene.camera.isPerspective()) {
1382
- return new PerspectiveCamera(this.stream, bundle_esm.dimensions.aspectRatio(this.viewport()), {
1468
+ return new PerspectiveCamera(this.stream, bundle_esm$1.dimensions.aspectRatio(this.viewport()), {
1383
1469
  position: scene.camera.position,
1384
1470
  lookAt: scene.camera.lookAt,
1385
1471
  up: scene.camera.up,
@@ -1387,7 +1473,7 @@ class Scene {
1387
1473
  }, this.frame.scene.boundingBox, this.decodeFrame);
1388
1474
  }
1389
1475
  else {
1390
- throw new InvalidCameraError('Cannot retrieve camera. Scene has an unknown or invalid camera type.');
1476
+ throw new errors.InvalidCameraError('Cannot retrieve camera. Scene has an unknown or invalid camera type.');
1391
1477
  }
1392
1478
  }
1393
1479
  boundingBox() {
@@ -1415,20 +1501,12 @@ class Scene {
1415
1501
  * The current x and y scale of the rendered image.
1416
1502
  */
1417
1503
  scale() {
1418
- return this.imageScaleProvider() || bundle_esm.point.create(1, 1);
1504
+ return this.imageScaleProvider() || bundle_esm$1.point.create(1, 1);
1419
1505
  }
1420
1506
  }
1421
1507
 
1422
- exports.ComponentInitializationError = ComponentInitializationError;
1423
- exports.CustomError = CustomError;
1424
- exports.IllegalStateError = IllegalStateError;
1425
- exports.ImageLoadError = ImageLoadError;
1426
- exports.InteractionHandlerError = InteractionHandlerError;
1427
1508
  exports.Scene = Scene;
1428
- exports.SceneRenderError = SceneRenderError;
1429
1509
  exports.SynchronizedClock = SynchronizedClock;
1430
- exports.ViewerInitializationError = ViewerInitializationError;
1431
- exports.WebsocketConnectionError = WebsocketConnectionError;
1432
1510
  exports.colorMaterial = colorMaterial;
1433
1511
  exports.defaultSelectionMaterial = defaultSelectionMaterial;
1434
1512
  exports.fromHex = fromHex;