@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,16 +1,24 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
- import { p as point, i as rectangle } from './bundle.esm-ce2c7ad3.js';
6
- import { E as EventDispatcher } from './browser.esm-ae4ca1f1.js';
5
+ import { a as StreamRequestError } from './bundle.esm-91404853.js';
6
+ import { E as EventDispatcher } from './browser.esm-07e7db8f.js';
7
+ import { b as boxQueryCursor } from './cursors-127a3bb7.js';
8
+ import { g as getMouseClientPosition } from './dom-e436f0c0.js';
9
+ import { p as point, e as rectangle } from './bundle.esm-92e615bf.js';
7
10
 
8
- const DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT = 5;
9
11
  class VolumeIntersectionQueryController {
10
12
  constructor(model, viewer) {
11
13
  this.model = model;
12
14
  this.viewer = viewer;
13
- this.inFlightOperations = 0;
15
+ this.additionalTransforms = [];
16
+ this.operationInFlight = false;
17
+ this.operationAborted = false;
18
+ this.executeStarted = new EventDispatcher();
19
+ this.executeComplete = new EventDispatcher();
20
+ this.executeAborted = new EventDispatcher();
21
+ this.additionalTransforms = [(op) => op.where((q) => q.all()).deselect()];
14
22
  this.operationTransform = (builder) => builder.select();
15
23
  }
16
24
  setStartPoint(point) {
@@ -21,34 +29,83 @@ class VolumeIntersectionQueryController {
21
29
  setEndPoint(point) {
22
30
  this.model.setEndPoint(point);
23
31
  }
32
+ /**
33
+ * Updates the operation that will be applied based on the volume intersection
34
+ * query. Defaults to `(builder) => builder.select()`, which will select any
35
+ * of the results of the query.
36
+ */
24
37
  setOperationTransform(operationTransform) {
25
38
  this.operationTransform = operationTransform;
26
39
  }
40
+ /**
41
+ * Updates any additional operations that should be performed independent of
42
+ * the volume intersection query. This can be used to perform an operation on
43
+ * the entirety of the scene prior to the operation on the result of the
44
+ * volume intersection query.
45
+ * Defaults to `[(op) => op.where((q) => q.all()).deselect()]`, which will
46
+ * clear any prior selection before the default selection.
47
+ */
48
+ setAdditionalTransforms(additionalTransforms) {
49
+ this.additionalTransforms = additionalTransforms;
50
+ }
51
+ onExecuteStarted(listener) {
52
+ return this.executeStarted.on(listener);
53
+ }
54
+ onExecuteComplete(listener) {
55
+ return this.executeComplete.on(listener);
56
+ }
57
+ onExecuteAborted(listener) {
58
+ return this.executeAborted.on(listener);
59
+ }
27
60
  async execute() {
28
- var _a;
61
+ var _a, _b, _c;
29
62
  const screenBounds = this.model.getScreenBounds();
30
63
  const type = this.model.getType();
31
- this.viewer.cameraControls = (_a = this.previousViewerCameraControls) !== null && _a !== void 0 ? _a : true;
32
- this.model.complete();
33
- if (screenBounds != null &&
34
- this.inFlightOperations < DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT) {
35
- this.inFlightOperations = this.inFlightOperations + 1;
64
+ if (screenBounds != null && !this.operationInFlight) {
65
+ this.model.complete();
36
66
  try {
67
+ this.operationInFlight = true;
68
+ this.executeStarted.emit();
69
+ const additionalTransforms = (op) => this.additionalTransforms.map((t) => t(op)).flat();
70
+ const operationTransforms = (op) => [
71
+ this.operationTransform(op.where((q) => q.withVolumeIntersection(screenBounds, type === 'exclusive'))),
72
+ ].flat();
37
73
  const scene = await this.viewer.scene();
38
74
  await scene
39
- .items((op) => this.operationTransform(op.where((q) => q.withVolumeIntersection(screenBounds, type === 'exclusive'))))
75
+ .items((op) => [
76
+ ...additionalTransforms(op),
77
+ ...operationTransforms(op),
78
+ ])
40
79
  .execute();
41
80
  }
42
81
  catch (e) {
43
- console.error('Failed to perform volume intersection query', e);
44
- throw e;
82
+ if (e instanceof StreamRequestError &&
83
+ ((_a = e.summary) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().includes('operation aborted'))) {
84
+ this.executeAborted.emit(e);
85
+ this.operationAborted = true;
86
+ }
87
+ else {
88
+ console.error('Failed to perform volume intersection query', e);
89
+ throw e;
90
+ }
45
91
  }
46
92
  finally {
47
- this.inFlightOperations = this.inFlightOperations - 1;
93
+ this.viewer.cameraControls = (_b = this.previousViewerCameraControls) !== null && _b !== void 0 ? _b : true;
94
+ this.previousViewerCameraControls = undefined;
95
+ this.operationInFlight = false;
96
+ this.executeComplete.emit({
97
+ aborted: this.operationAborted,
98
+ });
99
+ this.operationAborted = false;
48
100
  }
49
101
  }
50
- else if (this.inFlightOperations >= DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT) {
51
- throw new Error(`Unable to perform volume intersection query due to the limit of ${DEFAULT_CONCURRENT_VOLUME_QUERY_LIMIT}.`);
102
+ else if (this.operationInFlight) {
103
+ this.model.cancel();
104
+ throw new Error(`Unable to perform volume intersection query as there is already one in-flight.`);
105
+ }
106
+ else {
107
+ this.model.cancel();
108
+ this.viewer.cameraControls = (_c = this.previousViewerCameraControls) !== null && _c !== void 0 ? _c : true;
52
109
  }
53
110
  }
54
111
  }
@@ -59,50 +116,102 @@ class VolumeIntersectionQueryInteractionHandler {
59
116
  this.handleDragBegin = this.handleDragBegin.bind(this);
60
117
  this.handleDrag = this.handleDrag.bind(this);
61
118
  this.handleDragEnd = this.handleDragEnd.bind(this);
119
+ this.enabled = true;
62
120
  }
63
- initialize(element) {
121
+ initialize(element, api) {
64
122
  this.element = element;
123
+ this.api = api;
65
124
  this.element.addEventListener('pointerdown', this.handleDragBegin);
125
+ this.addCrosshairCursor();
66
126
  }
67
127
  dispose() {
68
- var _a;
128
+ var _a, _b, _c;
69
129
  (_a = this.element) === null || _a === void 0 ? void 0 : _a.removeEventListener('pointerdown', this.handleDragBegin);
70
130
  window.removeEventListener('pointermove', this.handleDrag);
71
131
  window.removeEventListener('pointerup', this.handleDragEnd);
132
+ (_b = this.crosshairCursorDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
133
+ (_c = this.waitCursorDisposable) === null || _c === void 0 ? void 0 : _c.dispose();
134
+ this.element = undefined;
135
+ this.api = undefined;
136
+ this.enabled = true;
137
+ }
138
+ disable() {
139
+ this.enabled = false;
140
+ }
141
+ enable() {
142
+ this.enabled = true;
72
143
  }
73
144
  handleDragBegin(event) {
74
- if (event.buttons === 1 && !this.isInteracting) {
145
+ var _a;
146
+ if (this.enabled &&
147
+ this.isPrimaryMouseButtonClick(event) &&
148
+ !this.isInteracting) {
149
+ this.elementBounds = (_a = this.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();
75
150
  this.isInteracting = true;
76
- this.controller.setStartPoint(point.create(event.offsetX, event.offsetY));
151
+ this.controller.setStartPoint(getMouseClientPosition(event, this.elementBounds));
77
152
  window.addEventListener('pointermove', this.handleDrag);
78
153
  window.addEventListener('pointerup', this.handleDragEnd);
79
154
  }
80
155
  }
81
156
  handleDrag(event) {
82
- this.controller.setEndPoint(point.create(event.offsetX, event.offsetY));
157
+ if (this.enabled) {
158
+ this.controller.setEndPoint(getMouseClientPosition(event, this.elementBounds));
159
+ }
83
160
  }
84
- handleDragEnd() {
85
- this.controller.execute();
161
+ async handleDragEnd() {
162
+ var _a, _b;
86
163
  this.isInteracting = false;
87
164
  window.removeEventListener('pointermove', this.handleDrag);
88
165
  window.removeEventListener('pointerup', this.handleDragEnd);
166
+ (_a = this.crosshairCursorDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
167
+ if (this.enabled) {
168
+ this.addWaitCursor();
169
+ try {
170
+ await this.controller.execute();
171
+ }
172
+ finally {
173
+ (_b = this.waitCursorDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
174
+ this.addCrosshairCursor();
175
+ }
176
+ }
177
+ }
178
+ isPrimaryMouseButtonClick(event) {
179
+ return event.buttons === 1;
180
+ }
181
+ addCrosshairCursor() {
182
+ var _a, _b;
183
+ (_a = this.crosshairCursorDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
184
+ this.crosshairCursorDisposable = (_b = this.api) === null || _b === void 0 ? void 0 : _b.addCursor(boxQueryCursor);
185
+ }
186
+ addWaitCursor() {
187
+ var _a, _b;
188
+ (_a = this.waitCursorDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
189
+ this.waitCursorDisposable = (_b = this.api) === null || _b === void 0 ? void 0 : _b.addCursor('wait');
89
190
  }
90
191
  }
91
192
 
92
193
  class VolumeIntersectionQueryModel {
93
- constructor() {
194
+ constructor(mode) {
195
+ this.mode = mode;
94
196
  this.dragStarted = new EventDispatcher();
95
197
  this.dragComplete = new EventDispatcher();
198
+ this.dragCancelled = new EventDispatcher();
96
199
  this.screenBoundsChanged = new EventDispatcher();
97
200
  }
98
201
  setStartPoint(point) {
99
202
  this.startPoint = point;
100
203
  this.dragStarted.emit();
101
204
  }
102
- setEndPoint(point) {
103
- this.endPoint = point;
104
- this.updateQueryType();
105
- this.screenBoundsChanged.emit(this.getQueryDetails());
205
+ setEndPoint(point$1) {
206
+ if (this.startPoint != null &&
207
+ point.distance(this.startPoint, point$1) >= 2) {
208
+ this.endPoint = point$1;
209
+ this.updateQueryType();
210
+ this.screenBoundsChanged.emit(this.getQueryDetails());
211
+ }
212
+ }
213
+ setMode(mode) {
214
+ this.mode = mode;
106
215
  }
107
216
  complete() {
108
217
  if (this.startPoint != null && this.endPoint != null) {
@@ -111,6 +220,11 @@ class VolumeIntersectionQueryModel {
111
220
  this.reset();
112
221
  }
113
222
  }
223
+ cancel() {
224
+ this.screenBoundsChanged.emit(undefined);
225
+ this.dragCancelled.emit();
226
+ this.reset();
227
+ }
114
228
  reset() {
115
229
  this.startPoint = undefined;
116
230
  this.endPoint = undefined;
@@ -133,6 +247,9 @@ class VolumeIntersectionQueryModel {
133
247
  onDragComplete(listener) {
134
248
  return this.dragComplete.on(listener);
135
249
  }
250
+ onDragCancelled(listener) {
251
+ return this.dragCancelled.on(listener);
252
+ }
136
253
  getQueryDetails() {
137
254
  if (this.startPoint != null && this.endPoint != null && this.type != null) {
138
255
  return {
@@ -145,42 +262,53 @@ class VolumeIntersectionQueryModel {
145
262
  }
146
263
  }
147
264
  updateQueryType() {
148
- if (this.startPoint != null && this.endPoint) {
149
- this.type =
150
- point.subtract(this.endPoint, this.startPoint).x > 0
151
- ? 'exclusive'
152
- : 'inclusive';
265
+ var _a;
266
+ if (this.startPoint != null && this.endPoint != null) {
267
+ const directionalType = point.subtract(this.endPoint, this.startPoint).x > 0
268
+ ? 'exclusive'
269
+ : 'inclusive';
270
+ this.type = (_a = this.mode) !== null && _a !== void 0 ? _a : directionalType;
153
271
  }
154
272
  }
155
273
  }
156
274
 
157
- const viewerBoxQueryToolCss = ":host{--viewer-box-query-outline-exclusive-color:#0099cc;--viewer-box-query-outline-exclusive-border-style:solid;--viewer-box-query-outline-inclusive-color:#00cc00;--viewer-box-query-outline-inclusive-border-style:dashed;--viewer-box-query-outline-border-radius:0.25rem;--viewer-box-query-outline-fill-opacity:0.25}.bounds{position:absolute}.outline{position:relative;width:100%;height:100%;box-sizing:border-box;border-radius:var(--viewer-box-query-outline-border-radius)}:host([exclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-exclusive-border-style) var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-inclusive-border-style) var(--viewer-box-query-outline-inclusive-color)}.fill{position:relative;width:100%;height:100%;opacity:var(--viewer-box-query-outline-fill-opacity)}:host([exclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-inclusive-color)}";
275
+ const viewerBoxQueryToolCss = ":host{--viewer-box-query-outline-exclusive-color:#0099cc;--viewer-box-query-outline-exclusive-border-style:solid;--viewer-box-query-outline-inclusive-color:#00cc00;--viewer-box-query-outline-inclusive-border-style:dashed;--viewer-box-query-outline-border-radius:0.25rem;--viewer-box-query-outline-fill-opacity:0.25}.bounds{position:absolute}.outline{position:absolute;top:0;left:0;width:100%;height:100%;box-sizing:border-box;border-radius:var(--viewer-box-query-outline-border-radius)}:host([exclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-exclusive-border-style) var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .outline{border:3px var(--viewer-box-query-outline-inclusive-border-style) var(--viewer-box-query-outline-inclusive-color)}.fill{position:absolute;top:0;left:0;width:100%;height:100%;opacity:var(--viewer-box-query-outline-fill-opacity);border-radius:var(--viewer-box-query-outline-border-radius)}:host([exclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-exclusive-color)}:host([inclusive=\"true\"]) .fill{background-color:var(--viewer-box-query-outline-inclusive-color)}";
158
276
 
159
277
  const ViewerBoxQueryTool = class {
160
278
  constructor(hostRef) {
161
279
  registerInstance(this, hostRef);
162
280
  /**
163
281
  * The default operation to perform when a drag has completed and the intersection
164
- * query will be run. Defaults to `select`, and can be changed to `deselect`.
282
+ * query will be run. Defaults to `clearAndSelect`, and can be changed to `select` or `deselect`.
283
+ *
284
+ * `clearAndSelect` will clear all existing selection, and select the results of the query.
285
+ * `select` will maintain existing selection, and select the results of the query.
286
+ * `deselect` will maintain existing selection, and deselect the results of the query.
165
287
  *
166
288
  * The operation behavior for this intersection query tool can also be changed by
167
289
  * providing a custom implementation of the `VolumeIntersectionQueryController`, or
168
290
  * by using the `setOperationTransform` method of the default controller.
169
291
  */
170
- this.operationType = 'select';
292
+ this.operationType = 'clearAndSelect';
171
293
  this.handleScreenBoundsChanged = this.handleScreenBoundsChanged.bind(this);
294
+ this.handleExecuteStarted = this.handleExecuteStarted.bind(this);
295
+ this.handleExecuteComplete = this.handleExecuteComplete.bind(this);
172
296
  }
173
297
  componentWillLoad() {
174
298
  var _a;
175
- this.model = (_a = this.model) !== null && _a !== void 0 ? _a : new VolumeIntersectionQueryModel();
299
+ this.model = (_a = this.model) !== null && _a !== void 0 ? _a : new VolumeIntersectionQueryModel(this.mode);
176
300
  this.screenBoundsChangedDisposable = this.model.onScreenBoundsChanged(this.handleScreenBoundsChanged);
177
301
  this.handleViewerChanged(this.viewer);
302
+ this.handleControllerChange(this.controller);
303
+ this.handleDefaultOperationChange(this.operationType);
178
304
  }
179
305
  disconnectedCallback() {
180
- var _a, _b, _c;
306
+ var _a, _b, _c, _d;
181
307
  (_a = this.model) === null || _a === void 0 ? void 0 : _a.reset();
182
308
  (_b = this.screenBoundsChangedDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
183
- (_c = this.interactionHandler) === null || _c === void 0 ? void 0 : _c.dispose();
309
+ (_c = this.operationStartedDisposable) === null || _c === void 0 ? void 0 : _c.dispose();
310
+ (_d = this.operationCompleteDisposable) === null || _d === void 0 ? void 0 : _d.dispose();
311
+ this.deregisterInteractionHandler();
184
312
  }
185
313
  /**
186
314
  * @ignore
@@ -197,10 +325,34 @@ const ViewerBoxQueryTool = class {
197
325
  * @ignore
198
326
  */
199
327
  handleDefaultOperationChange(updatedOperationType) {
328
+ switch (updatedOperationType) {
329
+ case 'clearAndSelect':
330
+ this.setDefaultClearAndSelectOperation();
331
+ break;
332
+ case 'select':
333
+ this.setDefaultSelectOperation();
334
+ break;
335
+ case 'deselect':
336
+ this.setDefaultDeselectOperation();
337
+ break;
338
+ }
339
+ }
340
+ /**
341
+ * @ignore
342
+ */
343
+ handleModeChange(updatedMode) {
200
344
  var _a;
201
- (_a = this.controller) === null || _a === void 0 ? void 0 : _a.setOperationTransform(updatedOperationType === 'select'
202
- ? (builder) => builder.select()
203
- : (builder) => builder.deselect());
345
+ (_a = this.model) === null || _a === void 0 ? void 0 : _a.setMode(updatedMode);
346
+ }
347
+ /**
348
+ * @ignore
349
+ */
350
+ handleControllerChange(controller) {
351
+ var _a, _b;
352
+ (_a = this.operationStartedDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
353
+ (_b = this.operationCompleteDisposable) === null || _b === void 0 ? void 0 : _b.dispose();
354
+ this.operationStartedDisposable = controller === null || controller === void 0 ? void 0 : controller.onExecuteStarted(this.handleExecuteStarted);
355
+ this.operationStartedDisposable = controller === null || controller === void 0 ? void 0 : controller.onExecuteComplete(this.handleExecuteComplete);
204
356
  }
205
357
  /**
206
358
  * @ignore
@@ -211,29 +363,57 @@ const ViewerBoxQueryTool = class {
211
363
  top: `${this.details.screenBounds.y}px`,
212
364
  width: `${this.details.screenBounds.width}px`,
213
365
  height: `${this.details.screenBounds.height}px`,
214
- } }, h("slot", { name: "bounds" }, h("div", { class: "outline" }, h("div", { class: "fill" }))))))));
366
+ } }, h("slot", { name: "bounds" }, h("div", { class: "outline" }), h("div", { class: "fill" })))))));
215
367
  }
216
368
  handleScreenBoundsChanged(details) {
217
369
  this.details = details;
218
370
  this.updateTypeAttribute(details === null || details === void 0 ? void 0 : details.type);
219
371
  }
220
- registerInteractionHandler(controller, viewer) {
372
+ handleExecuteStarted() {
373
+ var _a;
374
+ (_a = this.interactionHandler) === null || _a === void 0 ? void 0 : _a.disable();
375
+ }
376
+ handleExecuteComplete() {
377
+ var _a;
378
+ (_a = this.interactionHandler) === null || _a === void 0 ? void 0 : _a.enable();
379
+ }
380
+ async registerInteractionHandler(controller, viewer) {
221
381
  this.interactionHandler = new VolumeIntersectionQueryInteractionHandler(controller);
222
- viewer.registerInteractionHandler(this.interactionHandler);
382
+ this.interactionHandlerDisposable = await viewer.registerInteractionHandler(this.interactionHandler);
223
383
  }
224
384
  deregisterInteractionHandler() {
225
- var _a;
226
- (_a = this.interactionHandler) === null || _a === void 0 ? void 0 : _a.dispose();
385
+ var _a, _b;
386
+ (_a = this.interactionHandlerDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
387
+ (_b = this.interactionHandler) === null || _b === void 0 ? void 0 : _b.dispose();
227
388
  this.interactionHandler = undefined;
228
389
  }
229
390
  updateTypeAttribute(type) {
230
391
  this.hostEl.setAttribute('inclusive', `${type === 'inclusive'}`);
231
392
  this.hostEl.setAttribute('exclusive', `${type === 'exclusive'}`);
232
393
  }
394
+ setDefaultClearAndSelectOperation() {
395
+ var _a, _b;
396
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.setOperationTransform((builder) => builder.select());
397
+ (_b = this.controller) === null || _b === void 0 ? void 0 : _b.setAdditionalTransforms([
398
+ (op) => op.where((q) => q.withSelected()).deselect(),
399
+ ]);
400
+ }
401
+ setDefaultSelectOperation() {
402
+ var _a, _b;
403
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.setOperationTransform((builder) => builder.select());
404
+ (_b = this.controller) === null || _b === void 0 ? void 0 : _b.setAdditionalTransforms([]);
405
+ }
406
+ setDefaultDeselectOperation() {
407
+ var _a, _b;
408
+ (_a = this.controller) === null || _a === void 0 ? void 0 : _a.setOperationTransform((builder) => builder.deselect());
409
+ (_b = this.controller) === null || _b === void 0 ? void 0 : _b.setAdditionalTransforms([]);
410
+ }
233
411
  get hostEl() { return getElement(this); }
234
412
  static get watchers() { return {
235
413
  "viewer": ["handleViewerChanged"],
236
- "operationType": ["handleDefaultOperationChange"]
414
+ "operationType": ["handleDefaultOperationChange"],
415
+ "mode": ["handleModeChange"],
416
+ "controller": ["handleControllerChange"]
237
417
  }; }
238
418
  };
239
419
  ViewerBoxQueryTool.style = viewerBoxQueryToolCss;
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, H as Host } from './index-26dfb2d0.js';
5
5
  import { c as classnames } from './index-e841d91b.js';
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h } from './index-26dfb2d0.js';
5
5
 
@@ -1,12 +1,13 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
- import { v as vector3, q as quaternion, m as matrix4, u as euler } from './bundle.esm-ce2c7ad3.js';
6
- import { o as objects } from './browser.esm-ae4ca1f1.js';
7
- import './streamAttributes-24bd7b3a.js';
5
+ import { v as vector3, q as quaternion, m as matrix4, u as euler } from './bundle.esm-92e615bf.js';
6
+ import { o as objects } from './browser.esm-07e7db8f.js';
7
+ import './streamAttributes-23270e27.js';
8
8
  import './entities-ce81dd7f.js';
9
- import { V as Viewport } from './viewport-e39e2eba.js';
9
+ import { V as Viewport } from './viewport-f19fc583.js';
10
+ import './bundle.esm-91404853.js';
10
11
  import './_commonjsHelpers-11ca3be1.js';
11
12
 
12
13
  const viewerDomElementCss = ":host{position:absolute;pointer-events:none;visibility:hidden}:host(.hydrated){visibility:hidden}:host(.ready){visibility:inherit}:host(:not([interactions-off]))>*{pointer-events:auto}";
@@ -1,9 +1,9 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host } from './index-26dfb2d0.js';
5
- import { v as vector3, q as quaternion, m as matrix4, u as euler } from './bundle.esm-ce2c7ad3.js';
6
- import { o as objects } from './browser.esm-ae4ca1f1.js';
5
+ import { v as vector3, q as quaternion, m as matrix4, u as euler } from './bundle.esm-92e615bf.js';
6
+ import { o as objects } from './browser.esm-07e7db8f.js';
7
7
 
8
8
  const viewerDomGroupCss = ":host{display:block;transform-style:preserve-3d}";
9
9
 
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, F as Fragment, H as Host } from './index-26dfb2d0.js';
5
5
  import { c as classnames } from './index-e841d91b.js';
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
5
 
@@ -1,11 +1,11 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-26dfb2d0.js';
5
5
  import { g as getMarkupBoundingClientRect } from './dom-be140992.js';
6
- import { p as point, d as dimensions, i as rectangle, h as angle } from './bundle.esm-ce2c7ad3.js';
7
- import { i as isVertexViewerArrowMarkup, a as isVertexViewerCircleMarkup, b as isVertexViewerFreeformMarkup, p as parsePoint, c as createArrowheadPoints, d as arrowheadPointsToPolygonPoints, e as parseBounds, f as parsePoints } from './utils-559e1632.js';
8
- import { g as getMouseClientPosition } from './dom-5b164305.js';
6
+ import { p as point, d as dimensions, e as rectangle, c as angle } from './bundle.esm-92e615bf.js';
7
+ import { i as isVertexViewerArrowMarkup, a as isVertexViewerCircleMarkup, b as isVertexViewerFreeformMarkup, p as parsePoint, c as createArrowheadPoints, d as arrowheadPointsToPolygonPoints, e as parseBounds, f as parsePoints } from './utils-f03802ef.js';
8
+ import { g as getMouseClientPosition } from './dom-e436f0c0.js';
9
9
  import { c as classnames } from './index-e841d91b.js';
10
10
  import './_commonjsHelpers-11ca3be1.js';
11
11
 
@@ -1,12 +1,12 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
5
  import { s as stampTemplateWithId } from './templates-022199c1.js';
6
- import { F as FreeformMarkup, C as CircleMarkup, A as ArrowMarkup } from './markup-3c2900f3.js';
7
- import { b as isVertexViewerFreeformMarkup, a as isVertexViewerCircleMarkup, i as isVertexViewerArrowMarkup } from './utils-559e1632.js';
8
- import './bundle.esm-ce2c7ad3.js';
9
- import './browser.esm-ae4ca1f1.js';
6
+ import { F as FreeformMarkup, C as CircleMarkup, A as ArrowMarkup } from './markup-2dde1f10.js';
7
+ import { b as isVertexViewerFreeformMarkup, a as isVertexViewerCircleMarkup, i as isVertexViewerArrowMarkup } from './utils-f03802ef.js';
8
+ import './bundle.esm-92e615bf.js';
9
+ import './browser.esm-07e7db8f.js';
10
10
 
11
11
  const viewerMarkupToolCss = ":host{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}:host([elevated=\"\"]){z-index:100}";
12
12
 
@@ -1,12 +1,12 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-26dfb2d0.js';
5
- import { p as point } from './bundle.esm-ce2c7ad3.js';
5
+ import { p as point } from './bundle.esm-92e615bf.js';
6
6
  import { s as stampTemplateWithId } from './templates-022199c1.js';
7
- import { A as ArrowMarkup, C as CircleMarkup, F as FreeformMarkup } from './markup-3c2900f3.js';
8
- import { i as isVertexViewerArrowMarkup, a as isVertexViewerCircleMarkup, b as isVertexViewerFreeformMarkup } from './utils-559e1632.js';
9
- import './browser.esm-ae4ca1f1.js';
7
+ import { A as ArrowMarkup, C as CircleMarkup, F as FreeformMarkup } from './markup-2dde1f10.js';
8
+ import { i as isVertexViewerArrowMarkup, a as isVertexViewerCircleMarkup, b as isVertexViewerFreeformMarkup } from './utils-f03802ef.js';
9
+ import './browser.esm-07e7db8f.js';
10
10
 
11
11
  const viewerMarkupCss = ":host{display:block;position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}";
12
12
 
@@ -1,12 +1,13 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { h, F as Fragment, r as registerInstance, H as Host } from './index-26dfb2d0.js';
5
- import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes-24bd7b3a.js';
5
+ import { D as DistanceUnits, A as AngleUnits, f as AreaUnits } from './streamAttributes-23270e27.js';
6
6
  import './entities-ce81dd7f.js';
7
- import { o as __rest, v as vector3 } from './bundle.esm-ce2c7ad3.js';
7
+ import { o as __rest, v as vector3 } from './bundle.esm-92e615bf.js';
8
8
  import { c as classnames } from './index-e841d91b.js';
9
- import './browser.esm-ae4ca1f1.js';
9
+ import './bundle.esm-91404853.js';
10
+ import './browser.esm-07e7db8f.js';
10
11
  import './_commonjsHelpers-11ca3be1.js';
11
12
 
12
13
  /*! *****************************************************************************
@@ -1,22 +1,23 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { h, r as registerInstance, c as createEvent, H as Host, g as getElement } from './index-26dfb2d0.js';
5
- import { v as vector3, h as angle, p as point, l as line3 } from './bundle.esm-ce2c7ad3.js';
6
- import { m as measurementCursor } from './cursors-a8d4b3f4.js';
7
- import { a as cssTransformCenterAt, g as getMouseClientPosition } from './dom-5b164305.js';
8
- import './mapper-941ff03c.js';
5
+ import { v as vector3, c as angle, p as point, l as line3 } from './bundle.esm-92e615bf.js';
6
+ import { m as measurementCursor } from './cursors-127a3bb7.js';
7
+ import { a as cssTransformCenterAt, g as getMouseClientPosition } from './dom-e436f0c0.js';
8
+ import './mapper-dd937684.js';
9
9
  import './grpc-web-client.umd-5409853c.js';
10
- import { j as fromPbVector3f, D as DistanceUnits } from './streamAttributes-24bd7b3a.js';
11
- import { M as MeasurementModel } from './model-fa9af61a.js';
12
- import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
13
- import { m as makeMinimumDistanceResult } from './results-3b4df2cf.js';
10
+ import { i as fromPbVector3f, D as DistanceUnits } from './streamAttributes-23270e27.js';
11
+ import { M as MeasurementModel } from './model-3cd8cd47.js';
12
+ import { M as MeasurementOverlayManager } from './overlays-8f195eb3.js';
13
+ import { m as makeMinimumDistanceResult } from './results-38baef59.js';
14
14
  import './entities-ce81dd7f.js';
15
- import { V as Viewport } from './viewport-e39e2eba.js';
16
- import { E as EventDispatcher, m as mapper } from './browser.esm-ae4ca1f1.js';
17
- import { g as getViewingElementPositions } from './utils-81347571.js';
15
+ import { V as Viewport } from './viewport-f19fc583.js';
16
+ import { E as EventDispatcher, m as mapper } from './browser.esm-07e7db8f.js';
17
+ import { g as getViewingElementPositions } from './utils-2306c744.js';
18
18
  import { c as classnames } from './index-e841d91b.js';
19
19
  import './_commonjsHelpers-11ca3be1.js';
20
+ import './bundle.esm-91404853.js';
20
21
 
21
22
  /**
22
23
  * The default distance, in pixels, between the mouse position and a snappable
@@ -1,15 +1,16 @@
1
1
  /**!
2
- * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2023 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  import { r as registerInstance, h, F as Fragment, H as Host } from './index-26dfb2d0.js';
5
- import { p as point, h as angle } from './bundle.esm-ce2c7ad3.js';
6
- import './mapper-941ff03c.js';
5
+ import { p as point, c as angle } from './bundle.esm-92e615bf.js';
6
+ import './mapper-dd937684.js';
7
7
  import './grpc-web-client.umd-5409853c.js';
8
- import './streamAttributes-24bd7b3a.js';
9
- import { M as MeasurementOverlayManager } from './overlays-cc3efc30.js';
10
- import { t as translateWorldLineToViewport } from './utils-81347571.js';
8
+ import './streamAttributes-23270e27.js';
9
+ import { M as MeasurementOverlayManager } from './overlays-8f195eb3.js';
10
+ import { t as translateWorldLineToViewport } from './utils-2306c744.js';
11
11
  import './_commonjsHelpers-11ca3be1.js';
12
- import './browser.esm-ae4ca1f1.js';
12
+ import './browser.esm-07e7db8f.js';
13
+ import './bundle.esm-91404853.js';
13
14
  import './entities-ce81dd7f.js';
14
15
 
15
16
  const viewerMeasurementLineCss = ":host{display:block;--viewer-measurement-line-stroke:var(--white);--viewer-measurement-line-stroke-opacity:0.75;--viewer-measurement-line-stroke-width:1.25px;--viewer-measurement-line-fill:var(--neutral-900);--viewer-measurement-line-fill-width:2px;--viewer-measurement-line-start-cap-visibility:initial;--viewer-measurement-line-end-cap-visibility:initial}svg{width:100%;height:100%}.line-stroke{stroke-width:calc(\n var(--viewer-measurement-line-fill-width) +\n var(--viewer-measurement-line-stroke-width)\n );stroke:var(--viewer-measurement-line-stroke);opacity:var(--viewer-measurement-line-stroke-opacity)}.line-fill{stroke-width:var(--viewer-measurement-line-fill-width);stroke:var(--viewer-measurement-line-fill)}.start-cap{visibility:var(--viewer-measurement-line-start-cap-visibility)}.end-cap{visibility:var(--viewer-measurement-line-end-cap-visibility)}";