@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,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-7725f5c4.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,79 +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
+ },
428
403
  },
429
- operationTypes,
430
404
  };
431
405
  case 'volume-intersection':
432
406
  return {
433
- volume: {
434
- frustumByRectangle: {
435
- rectangle: query.rectangle,
407
+ operand: {
408
+ volume: {
409
+ frustumByRectangle: {
410
+ rectangle: query.rectangle,
411
+ },
412
+ exclusive: query.exclusive,
413
+ viewport: context.dimensions,
436
414
  },
437
- exclusive: query.exclusive,
438
- viewport: context.dimensions,
439
415
  },
440
- operationTypes,
441
416
  };
442
417
  default:
443
418
  return {};
444
419
  }
445
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
+ }
446
429
  function buildSceneItemQuery(item) {
447
430
  switch (item.type) {
448
431
  case 'item-id':
@@ -466,7 +449,7 @@ function buildFlyToOperation(frameCorrelationId, options, animation) {
466
449
  },
467
450
  animation: animation
468
451
  ? {
469
- duration: streamAttributes.toProtoDuration(animation.milliseconds),
452
+ duration: bundle_esm.toProtoDuration(animation.milliseconds),
470
453
  }
471
454
  : undefined,
472
455
  };
@@ -562,6 +545,33 @@ function buildOperationTypes(operations) {
562
545
  }
563
546
  });
564
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
+ }
565
575
 
566
576
  const PI_OVER_360 = 0.008726646259972;
567
577
  class TerminalFlyToExecutor {
@@ -629,9 +639,9 @@ class Camera {
629
639
  this.flyToOptions = flyToOptions;
630
640
  }
631
641
  fitCameraToBoundingBox(boundingBox, distance, viewVector) {
632
- const vvec = bundle_esm.vector3.scale(distance, bundle_esm.vector3.normalize(viewVector));
633
- const lookAt = bundle_esm.boundingBox.center(boundingBox);
634
- 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);
635
645
  return this.update({ lookAt, position, viewVector: vvec });
636
646
  }
637
647
  /**
@@ -642,9 +652,9 @@ class Camera {
642
652
  */
643
653
  signedDistanceToBoundingBoxCenter(boundingBox) {
644
654
  const { position, viewVector } = streamAttributes.withPositionAndViewVector(this.data);
645
- const boundingBoxCenter = bundle_esm.boundingBox.center(boundingBox !== null && boundingBox !== void 0 ? boundingBox : this.boundingBox);
646
- const cameraToCenter = bundle_esm.vector3.subtract(boundingBoxCenter, position);
647
- 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));
648
658
  }
649
659
  /**
650
660
  * Specifies that the next render of the camera will be repositioned to one of
@@ -726,22 +736,22 @@ class Camera {
726
736
  * @param normal The normal of the plane to align to.
727
737
  */
728
738
  alignTo(position, normal) {
729
- const worldX = bundle_esm.vector3.normalize(bundle_esm.vector3.cross(this.up, bundle_esm.vector3.normalize(this.viewVector)));
730
- 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));
731
741
  // Invert the world y axis if the provided normal is more than 90 degrees from it
732
742
  // to compute a proper angle to rotate the view vector by
733
- const worldY = bundle_esm.vector3.angleTo(normal, positiveWorldY) > Math.PI / 2
734
- ? 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)
735
745
  : positiveWorldY;
736
- const localX = bundle_esm.vector3.isEqual(worldY, normal)
746
+ const localX = bundle_esm$1.vector3.isEqual(worldY, normal)
737
747
  ? worldX
738
- : bundle_esm.vector3.normalize(bundle_esm.vector3.cross(worldY, normal));
739
- const transformedViewVector = bundle_esm.vector3.transformMatrix(this.viewVector, bundle_esm.matrix4.makeRotation(bundle_esm.quaternion.fromAxisAngle(localX, bundle_esm.vector3.angleTo(normal, worldY))));
740
- 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({
741
751
  origin: position,
742
- direction: bundle_esm.vector3.normalize(transformedViewVector),
752
+ direction: bundle_esm$1.vector3.normalize(transformedViewVector),
743
753
  });
744
- 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));
745
755
  return this.update({
746
756
  position,
747
757
  lookAt,
@@ -758,8 +768,8 @@ class Camera {
758
768
  standardView(standardView) {
759
769
  return this.update({
760
770
  position: standardView.position,
761
- viewVector: bundle_esm.vector3.subtract(bundle_esm.vector3.origin(), standardView.position),
762
- 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(),
763
773
  up: standardView.up,
764
774
  });
765
775
  }
@@ -797,21 +807,21 @@ class PerspectiveCamera extends Camera {
797
807
  */
798
808
  moveBy(delta) {
799
809
  return this.update({
800
- position: bundle_esm.vector3.add(this.position, delta),
801
- 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),
802
812
  });
803
813
  }
804
814
  rotateAroundAxisAtPoint(angleInRadians, point, axis) {
805
815
  return this.update({
806
- position: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point),
807
- lookAt: bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point),
808
- 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()),
809
819
  });
810
820
  }
811
821
  fitToBoundingBox(boundingBox) {
812
822
  var _a;
813
823
  const radius = 1.1 *
814
- 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)));
815
825
  // ratio of the height of the frustum to the distance along the view vector
816
826
  let hOverD = Math.tan(((_a = this.fovY) !== null && _a !== void 0 ? _a : 45) * PI_OVER_360);
817
827
  if (this.aspect < 1.0) {
@@ -821,14 +831,16 @@ class PerspectiveCamera extends Camera {
821
831
  return super.fitCameraToBoundingBox(boundingBox, distance, this.viewVector);
822
832
  }
823
833
  update(camera) {
824
- 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);
825
837
  }
826
838
  toFrameCamera() {
827
839
  var _a;
828
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);
829
841
  }
830
842
  get viewVector() {
831
- return bundle_esm.vector3.subtract(this.lookAt, this.position);
843
+ return bundle_esm$1.vector3.subtract(this.lookAt, this.position);
832
844
  }
833
845
  /**
834
846
  * The position vector for the camera, in world space coordinates.
@@ -891,21 +903,21 @@ class OrthographicCamera extends Camera {
891
903
  */
892
904
  moveBy(delta) {
893
905
  return this.update({
894
- lookAt: bundle_esm.vector3.add(this.lookAt, delta),
906
+ lookAt: bundle_esm$1.vector3.add(this.lookAt, delta),
895
907
  });
896
908
  }
897
909
  rotateAroundAxisAtPoint(angleInRadians, point, axis) {
898
- const updatedLookAt = bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.lookAt, axis, point);
899
- const updatedPosition = bundle_esm.vector3.rotateAboutAxis(angleInRadians, this.position, axis, point);
900
- 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));
901
913
  return this.update({
902
914
  viewVector: viewVector,
903
915
  lookAt: updatedLookAt,
904
- 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()),
905
917
  });
906
918
  }
907
919
  fitToBoundingBox(boundingBox) {
908
- const boundingSphere = bundle_esm.boundingSphere.create(boundingBox);
920
+ const boundingSphere = bundle_esm$1.boundingSphere.create(boundingBox);
909
921
  const fitAll = super.fitCameraToBoundingBox(boundingBox, boundingSphere.radius, this.viewVector);
910
922
  return this.update({
911
923
  lookAt: fitAll.lookAt,
@@ -917,13 +929,13 @@ class OrthographicCamera extends Camera {
917
929
  return new OrthographicCamera(this.stream, this.aspect, Object.assign(Object.assign({}, this.orthographicData), camera), this.boundingBox, this.decodeFrame, this.flyToOptions);
918
930
  }
919
931
  toFrameCamera() {
920
- 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);
921
933
  }
922
934
  get viewVector() {
923
935
  return Object.assign({}, this.orthographicData.viewVector);
924
936
  }
925
937
  get position() {
926
- 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));
927
939
  }
928
940
  /**
929
941
  * A normalized vector representing the up direction.
@@ -985,7 +997,7 @@ class Raycaster {
985
997
  async hitItems(point, options) {
986
998
  const scale = this.imageScaleProvider();
987
999
  const res = await this.stream.hitItems({
988
- 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),
989
1001
  includeMetadata: options === null || options === void 0 ? void 0 : options.includeMetadata,
990
1002
  }, true);
991
1003
  return res.hitItems || undefined;
@@ -1054,61 +1066,97 @@ class SceneOperationBuilder {
1054
1066
  }
1055
1067
  }
1056
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
+ }
1057
1089
  class RootQuery {
1090
+ constructor(inverted = false) {
1091
+ this.inverted = inverted;
1092
+ }
1058
1093
  all() {
1059
1094
  return new AllQuery();
1060
1095
  }
1096
+ not() {
1097
+ return new NotQuery(!this.inverted);
1098
+ }
1061
1099
  withItemIds(ids) {
1062
- return new BulkQuery(ids, 'item-id');
1100
+ return new BulkQuery(ids, 'item-id', this.inverted);
1063
1101
  }
1064
1102
  withSuppliedIds(ids) {
1065
- return new BulkQuery(ids, 'supplied-id');
1103
+ return new BulkQuery(ids, 'supplied-id', this.inverted);
1066
1104
  }
1067
1105
  withItemId(id) {
1068
- return new SingleQuery({ type: 'item-id', value: id });
1106
+ return new SingleQuery({ type: 'item-id', value: id }, this.inverted);
1069
1107
  }
1070
1108
  withSuppliedId(id) {
1071
- return new SingleQuery({ type: 'supplied-id', value: id });
1109
+ return new SingleQuery({ type: 'supplied-id', value: id }, this.inverted);
1072
1110
  }
1073
1111
  withSceneTreeRange(range) {
1074
- return new SceneTreeRangeQuery(range);
1112
+ return new SceneTreeRangeQuery(range, this.inverted);
1075
1113
  }
1076
1114
  withMetadata(filter, keys, exactMatch) {
1077
- return new MetadataQuery(filter, keys, exactMatch);
1115
+ return new MetadataQuery(filter, keys, exactMatch, this.inverted);
1078
1116
  }
1079
1117
  withSelected() {
1080
- return new AllSelectedQuery();
1118
+ return new AllSelectedQuery(this.inverted);
1081
1119
  }
1082
1120
  withPoint(point) {
1083
- return new PointQuery(point);
1121
+ return new PointQuery(point, this.inverted);
1084
1122
  }
1085
1123
  withVolumeIntersection(rectangle, exclusive) {
1086
- return new VolumeIntersectionQuery(rectangle, exclusive);
1124
+ return new VolumeIntersectionQuery(rectangle, this.inverted, exclusive);
1087
1125
  }
1088
1126
  }
1089
- class AllQuery {
1090
- 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() {
1091
1137
  return { type: 'all' };
1092
1138
  }
1093
1139
  }
1094
- class SceneTreeRangeQuery {
1095
- constructor(range) {
1140
+ class SceneTreeRangeQuery extends TerminalQuery {
1141
+ constructor(range, inverted) {
1142
+ super(inverted);
1096
1143
  this.range = range;
1097
1144
  }
1098
- build() {
1145
+ queryExpressionBuilder() {
1099
1146
  return {
1100
1147
  type: 'scene-tree-range',
1101
1148
  range: this.range,
1102
1149
  };
1103
1150
  }
1104
1151
  }
1105
- class MetadataQuery {
1106
- constructor(filter, keys, exactMatch) {
1152
+ class MetadataQuery extends TerminalQuery {
1153
+ constructor(filter, keys, exactMatch, inverted) {
1154
+ super(inverted);
1107
1155
  this.filter = filter;
1108
1156
  this.keys = keys;
1109
1157
  this.exactMatch = exactMatch;
1110
1158
  }
1111
- build() {
1159
+ queryExpressionBuilder() {
1112
1160
  return {
1113
1161
  type: 'metadata',
1114
1162
  filter: this.filter,
@@ -1117,30 +1165,35 @@ class MetadataQuery {
1117
1165
  };
1118
1166
  }
1119
1167
  }
1120
- class AllSelectedQuery {
1121
- build() {
1168
+ class AllSelectedQuery extends TerminalQuery {
1169
+ constructor(inverted) {
1170
+ super(inverted);
1171
+ }
1172
+ queryExpressionBuilder() {
1122
1173
  return {
1123
1174
  type: 'all-selected',
1124
1175
  };
1125
1176
  }
1126
1177
  }
1127
- class PointQuery {
1128
- constructor(point) {
1178
+ class PointQuery extends TerminalQuery {
1179
+ constructor(point, inverted) {
1180
+ super(inverted);
1129
1181
  this.point = point;
1130
1182
  }
1131
- build() {
1183
+ queryExpressionBuilder() {
1132
1184
  return {
1133
1185
  type: 'point',
1134
1186
  point: this.point,
1135
1187
  };
1136
1188
  }
1137
1189
  }
1138
- class VolumeIntersectionQuery {
1139
- constructor(rectangle, exclusive) {
1190
+ class VolumeIntersectionQuery extends TerminalQuery {
1191
+ constructor(rectangle, inverted, exclusive) {
1192
+ super(inverted);
1140
1193
  this.rectangle = rectangle;
1141
1194
  this.exclusive = exclusive;
1142
1195
  }
1143
- build() {
1196
+ queryExpressionBuilder() {
1144
1197
  return {
1145
1198
  type: 'volume-intersection',
1146
1199
  rectangle: this.rectangle,
@@ -1148,12 +1201,13 @@ class VolumeIntersectionQuery {
1148
1201
  };
1149
1202
  }
1150
1203
  }
1151
- class BulkQuery {
1152
- constructor(ids, type) {
1204
+ class BulkQuery extends TerminalQuery {
1205
+ constructor(ids, type, inverted) {
1206
+ super(inverted);
1153
1207
  this.ids = ids;
1154
1208
  this.type = type;
1155
1209
  }
1156
- build() {
1210
+ queryExpressionBuilder() {
1157
1211
  return {
1158
1212
  type: 'or',
1159
1213
  expressions: this.ids.map((id) => {
@@ -1165,55 +1219,52 @@ class BulkQuery {
1165
1219
  };
1166
1220
  }
1167
1221
  }
1168
- class SingleQuery {
1169
- constructor(query) {
1222
+ class SingleQuery extends TerminalQuery {
1223
+ constructor(query, inverted) {
1224
+ super(inverted);
1170
1225
  this.query = query;
1171
1226
  }
1172
- build() {
1227
+ queryExpressionBuilder() {
1173
1228
  return Object.assign({}, this.query);
1174
1229
  }
1175
1230
  and() {
1176
- return new AndQuery([this.query]);
1231
+ return new AndQuery([this.query], this.inverted);
1177
1232
  }
1178
1233
  or() {
1179
- return new OrQuery([this.query]);
1234
+ return new OrQuery([this.query], this.inverted);
1180
1235
  }
1181
1236
  }
1182
- class OrQuery {
1183
- constructor(expressions) {
1237
+ class OrQuery extends TerminalQuery {
1238
+ constructor(expressions, inverted) {
1239
+ super(inverted);
1184
1240
  this.expressions = expressions;
1185
1241
  }
1186
- build() {
1242
+ queryExpressionBuilder() {
1187
1243
  return { type: 'or', expressions: [...this.expressions] };
1188
1244
  }
1189
1245
  withItemId(id) {
1190
- return new OrQuery([...this.expressions, { type: 'item-id', value: id }]);
1246
+ return new OrQuery([...this.expressions, { type: 'item-id', value: id }], this.inverted);
1191
1247
  }
1192
1248
  withSuppliedId(id) {
1193
- return new OrQuery([
1194
- ...this.expressions,
1195
- { type: 'supplied-id', value: id },
1196
- ]);
1249
+ return new OrQuery([...this.expressions, { type: 'supplied-id', value: id }], this.inverted);
1197
1250
  }
1198
1251
  or() {
1199
1252
  return this;
1200
1253
  }
1201
1254
  }
1202
- class AndQuery {
1203
- constructor(expressions) {
1255
+ class AndQuery extends TerminalQuery {
1256
+ constructor(expressions, inverted) {
1257
+ super(inverted);
1204
1258
  this.expressions = expressions;
1205
1259
  }
1206
- build() {
1260
+ queryExpressionBuilder() {
1207
1261
  return { type: 'and', expressions: [...this.expressions] };
1208
1262
  }
1209
1263
  withItemId(id) {
1210
- return new AndQuery([...this.expressions, { type: 'item-id', value: id }]);
1264
+ return new AndQuery([...this.expressions, { type: 'item-id', value: id }], this.inverted);
1211
1265
  }
1212
1266
  withSuppliedId(id) {
1213
- return new AndQuery([
1214
- ...this.expressions,
1215
- { type: 'supplied-id', value: id },
1216
- ]);
1267
+ return new AndQuery([...this.expressions, { type: 'supplied-id', value: id }], this.inverted);
1217
1268
  }
1218
1269
  and() {
1219
1270
  return this;
@@ -1272,7 +1323,7 @@ class SceneItemOperationsBuilder {
1272
1323
  transform(matrix) {
1273
1324
  if (Array.isArray(matrix)) {
1274
1325
  if (matrix.length !== 16) {
1275
- throw new InvalidArgumentError('Matrix provided must contain exactly 16 values (4x4).');
1326
+ throw new errors.InvalidArgumentError('Matrix provided must contain exactly 16 values (4x4).');
1276
1327
  }
1277
1328
  return new SceneItemOperationsBuilder(this.query, this.defaultSelectionMaterial, this.builder.transform({
1278
1329
  r0: {
@@ -1361,12 +1412,20 @@ class Scene {
1361
1412
  * Applies the provided scene view state to the scene.
1362
1413
  */
1363
1414
  async applySceneViewState(sceneViewStateId, opts = {}) {
1364
- return await this.stream.loadSceneViewState({
1365
- sceneViewStateId: { hex: sceneViewStateId },
1366
- frameCorrelationId: opts.suppliedCorrelationId
1415
+ const pbIdField = buildSceneViewStateIdentifier(sceneViewStateId);
1416
+ return await this.stream.loadSceneViewState(Object.assign(Object.assign({}, pbIdField), { frameCorrelationId: opts.suppliedCorrelationId
1367
1417
  ? { value: opts.suppliedCorrelationId }
1368
- : undefined,
1369
- }, 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);
1370
1429
  }
1371
1430
  /**
1372
1431
  * Resets the view to its default state, with the ability to reset the camera to that of the base scene.
@@ -1398,7 +1457,7 @@ class Scene {
1398
1457
  camera() {
1399
1458
  const { scene } = this.frame;
1400
1459
  if (scene.camera.isOrthographic()) {
1401
- return new OrthographicCamera(this.stream, bundle_esm.dimensions.aspectRatio(this.viewport()), {
1460
+ return new OrthographicCamera(this.stream, bundle_esm$1.dimensions.aspectRatio(this.viewport()), {
1402
1461
  viewVector: scene.camera.viewVector,
1403
1462
  lookAt: scene.camera.lookAt,
1404
1463
  up: scene.camera.up,
@@ -1406,7 +1465,7 @@ class Scene {
1406
1465
  }, this.frame.scene.boundingBox, this.decodeFrame);
1407
1466
  }
1408
1467
  else if (scene.camera.isPerspective()) {
1409
- return new PerspectiveCamera(this.stream, bundle_esm.dimensions.aspectRatio(this.viewport()), {
1468
+ return new PerspectiveCamera(this.stream, bundle_esm$1.dimensions.aspectRatio(this.viewport()), {
1410
1469
  position: scene.camera.position,
1411
1470
  lookAt: scene.camera.lookAt,
1412
1471
  up: scene.camera.up,
@@ -1414,7 +1473,7 @@ class Scene {
1414
1473
  }, this.frame.scene.boundingBox, this.decodeFrame);
1415
1474
  }
1416
1475
  else {
1417
- 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.');
1418
1477
  }
1419
1478
  }
1420
1479
  boundingBox() {
@@ -1442,20 +1501,12 @@ class Scene {
1442
1501
  * The current x and y scale of the rendered image.
1443
1502
  */
1444
1503
  scale() {
1445
- return this.imageScaleProvider() || bundle_esm.point.create(1, 1);
1504
+ return this.imageScaleProvider() || bundle_esm$1.point.create(1, 1);
1446
1505
  }
1447
1506
  }
1448
1507
 
1449
- exports.ComponentInitializationError = ComponentInitializationError;
1450
- exports.CustomError = CustomError;
1451
- exports.IllegalStateError = IllegalStateError;
1452
- exports.ImageLoadError = ImageLoadError;
1453
- exports.InteractionHandlerError = InteractionHandlerError;
1454
1508
  exports.Scene = Scene;
1455
- exports.SceneRenderError = SceneRenderError;
1456
1509
  exports.SynchronizedClock = SynchronizedClock;
1457
- exports.ViewerInitializationError = ViewerInitializationError;
1458
- exports.WebsocketConnectionError = WebsocketConnectionError;
1459
1510
  exports.colorMaterial = colorMaterial;
1460
1511
  exports.defaultSelectionMaterial = defaultSelectionMaterial;
1461
1512
  exports.fromHex = fromHex;