@vertexvis/viewer 0.12.0-canary.9 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/dist/cjs/_commonjsHelpers-537d719a.js +1 -1
  2. package/dist/cjs/{browser.esm-d86ca733.js → browser.esm-31b03292.js} +195 -27
  3. package/dist/cjs/{bundle.esm-6b7736ee.js → bundle.esm-dc0a8361.js} +9 -8
  4. package/dist/cjs/{config-65a5ad9b.js → config-acd7cea9.js} +12 -12
  5. package/dist/cjs/controller-8cbcdd8d.js +145 -0
  6. package/dist/cjs/{cursors-bd9d178d.js → cursors-399a9648.js} +2 -2
  7. package/dist/cjs/{dom-c8b6d1a7.js → dom-417ccd20.js} +2 -2
  8. package/dist/cjs/dom-d162f898.js +14 -0
  9. package/dist/cjs/{dom-d48d8dca.js → dom-dd265f48.js} +2 -2
  10. package/dist/cjs/{wrappers_pb-5a21d73b.js → grpc-web-client.umd-60a79aae.js} +6 -1
  11. package/dist/cjs/index-3bc6bac0.js +1 -1
  12. package/dist/cjs/{index-b651f018.js → index-cc65325e.js} +165 -99
  13. package/dist/cjs/index.cjs.js +16 -12
  14. package/dist/cjs/loader.cjs.js +4 -4
  15. package/dist/cjs/{markup-12c6b0e8.js → markup-fb1553b1.js} +3 -3
  16. package/dist/cjs/{measurement-757239b0.js → measurement-aba1e0e8.js} +4 -4
  17. package/dist/cjs/{model-f0dac49d.js → model-18ef3363.js} +2982 -2750
  18. package/dist/cjs/{png-decoder-92508059.js → png-decoder-27d25eed.js} +2 -2
  19. package/dist/cjs/scene-ffee07ee.js +1262 -0
  20. package/dist/cjs/{shadow-css-b1c0f36a.js → shadow-css-2920637b.js} +21 -16
  21. package/dist/cjs/{stencil-365b5634.js → stencil-bd453a38.js} +2 -6
  22. package/dist/cjs/streamAttributes-9d6226ac.js +70201 -0
  23. package/dist/cjs/summary-7bbdb4c9.js +45 -0
  24. package/dist/cjs/templates-e57b3741.js +1 -1
  25. package/dist/cjs/{constants-ff2a6530.js → utils-235cd490.js} +17 -29
  26. package/dist/cjs/{utils-dd337eae.js → utils-f80be307.js} +2 -2
  27. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +947 -0
  28. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +125 -0
  29. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +22 -0
  30. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +22 -0
  31. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +40 -0
  32. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +3 -3
  33. package/dist/cjs/vertex-scene-tree.cjs.entry.js +783 -970
  34. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +5 -5
  35. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +3 -3
  36. package/dist/cjs/vertex-viewer-dom-element_3.cjs.entry.js +63 -63
  37. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +3 -3
  38. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +3 -3
  39. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +223 -101
  40. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +31 -20
  41. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +65 -16
  42. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +38 -41
  43. package/dist/cjs/vertex-viewer-measurement-distance_2.cjs.entry.js +523 -152
  44. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +35 -20
  45. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +11 -11
  46. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +11 -11
  47. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +12 -12
  48. package/dist/cjs/vertex-viewer.cjs.entry.js +995 -1067
  49. package/dist/cjs/viewer.cjs.js +11 -8
  50. package/dist/cjs/{viewport-8885d395.js → viewport-51aa05ab.js} +5 -34
  51. package/dist/collection/__setup__/polyfills.js +25 -0
  52. package/dist/collection/collection-manifest.json +8 -4
  53. package/dist/collection/components/scene-tree/errors.js +14 -0
  54. package/dist/collection/components/scene-tree/lib/controller.js +22 -12
  55. package/dist/collection/components/scene-tree/lib/dom.js +1 -4
  56. package/dist/collection/components/scene-tree/lib/errors.js +2 -2
  57. package/dist/collection/components/scene-tree/lib/row.js +5 -10
  58. package/dist/collection/components/scene-tree/lib/viewer-ops.js +10 -1
  59. package/dist/collection/components/scene-tree/scene-tree.css +51 -3
  60. package/dist/collection/components/scene-tree/scene-tree.js +187 -282
  61. package/dist/collection/components/scene-tree-search/scene-tree-search.js +2 -2
  62. package/dist/collection/components/{scene-tree-row/scene-tree-row.css → scene-tree-table-cell/scene-tree-table-cell.css} +45 -52
  63. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +371 -0
  64. package/dist/collection/components/scene-tree-table-cell/utils.js +5 -0
  65. package/dist/collection/components/scene-tree-table-column/scene-tree-table-column.css +19 -0
  66. package/dist/collection/components/scene-tree-table-column/scene-tree-table-column.js +72 -0
  67. package/dist/collection/components/scene-tree-table-header/scene-tree-table-header.css +14 -0
  68. package/dist/collection/components/scene-tree-table-header/scene-tree-table-header.js +17 -0
  69. package/dist/collection/components/scene-tree-table-layout/lib/dom.js +11 -0
  70. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.css +61 -0
  71. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +903 -0
  72. package/dist/collection/components/scene-tree-table-resize-divider/scene-tree-table-resize-divider.css +22 -0
  73. package/dist/collection/components/scene-tree-table-resize-divider/scene-tree-table-resize-divider.js +39 -0
  74. package/dist/collection/components/scene-tree-toolbar/scene-tree-toolbar.js +2 -2
  75. package/dist/collection/components/scene-tree-toolbar-group/scene-tree-toolbar-group.js +2 -2
  76. package/dist/collection/components/viewer/__mocks__/mocks.js +1 -1
  77. package/dist/collection/components/viewer/viewer.css +2 -0
  78. package/dist/collection/components/viewer/viewer.js +250 -383
  79. package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +1 -1
  80. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +3 -3
  81. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +2 -2
  82. package/dist/collection/components/viewer-dom-renderer/renderer2d.js +1 -1
  83. package/dist/collection/components/viewer-dom-renderer/renderer3d.js +2 -2
  84. package/dist/collection/components/viewer-dom-renderer/viewer-dom-renderer.js +3 -3
  85. package/dist/collection/components/viewer-layer/viewer-layer.js +2 -2
  86. package/dist/collection/components/viewer-markup/utils.js +16 -1
  87. package/dist/collection/components/viewer-markup/viewer-markup-components.js +2 -2
  88. package/dist/collection/components/viewer-markup/viewer-markup.js +95 -39
  89. package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow-components.js +1 -1
  90. package/dist/collection/components/viewer-markup-arrow/viewer-markup-arrow.js +77 -28
  91. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle-components.js +1 -1
  92. package/dist/collection/components/viewer-markup-circle/viewer-markup-circle.js +60 -25
  93. package/dist/collection/components/viewer-markup-freeform.tsx/viewer-markup-freeform.js +67 -32
  94. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.css +4 -0
  95. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.js +43 -28
  96. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.css +9 -1
  97. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details.js +102 -56
  98. package/dist/collection/components/viewer-measurement-distance/hitTest.js +35 -0
  99. package/dist/collection/components/viewer-measurement-distance/interactions.js +330 -0
  100. package/dist/collection/components/viewer-measurement-distance/utils.js +7 -18
  101. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance-components.js +1 -1
  102. package/dist/collection/components/viewer-measurement-distance/viewer-measurement-distance.js +202 -161
  103. package/dist/collection/components/viewer-measurement-precise/viewer-measurement-precise.js +25 -9
  104. package/dist/collection/components/viewer-measurement-tool/viewer-measurement-tool.js +5 -5
  105. package/dist/collection/components/viewer-measurements/viewer-measurements.js +14 -23
  106. package/dist/collection/components/viewer-view-cube/viewer-view-cube-components.js +6 -6
  107. package/dist/collection/components/viewer-view-cube/viewer-view-cube.js +26 -26
  108. package/dist/collection/index.js +4 -2
  109. package/dist/collection/lib/__mocks__/storage.js +7 -0
  110. package/dist/collection/lib/config.js +2 -2
  111. package/dist/collection/lib/dom.js +1 -1
  112. package/dist/collection/lib/errors.js +74 -3
  113. package/dist/collection/lib/formatter.js +2 -0
  114. package/dist/collection/lib/grpc.js +8 -4
  115. package/dist/collection/lib/interactions/baseInteractionHandler.js +22 -5
  116. package/dist/collection/lib/interactions/flyToPartKeyInteraction.js +3 -3
  117. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +48 -0
  118. package/dist/collection/lib/interactions/index.js +2 -2
  119. package/dist/collection/lib/interactions/interactionApi.js +10 -3
  120. package/dist/collection/lib/interactions/mouseInteractionHandler.js +2 -2
  121. package/dist/collection/lib/interactions/mouseInteractions.js +3 -3
  122. package/dist/collection/lib/interactions/multiPointerInteractionHandler.js +1 -1
  123. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +4 -4
  124. package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
  125. package/dist/collection/lib/interactions/tapInteractionHandler.js +1 -1
  126. package/dist/collection/lib/interactions/touchInteractionHandler.js +1 -1
  127. package/dist/collection/lib/mappers/core.js +3 -0
  128. package/dist/collection/lib/mappers/frameStreaming.js +31 -8
  129. package/dist/collection/lib/mappers/index.js +2 -1
  130. package/dist/collection/lib/mappers/material.js +1 -1
  131. package/dist/collection/lib/mappers/scalar.js +10 -3
  132. package/dist/collection/lib/mappers/streamAttributes.js +2 -2
  133. package/dist/collection/lib/measurement/controller.js +18 -10
  134. package/dist/collection/lib/measurement/index.js +2 -1
  135. package/dist/collection/lib/measurement/interactions.js +1 -1
  136. package/dist/collection/lib/measurement/mapper.js +7 -2
  137. package/dist/collection/lib/measurement/model.js +15 -3
  138. package/dist/collection/lib/measurement/summary.js +38 -0
  139. package/dist/collection/lib/rendering/canvas.js +18 -1
  140. package/dist/collection/lib/rendering/imageLoaders.js +1 -1
  141. package/dist/collection/lib/rendering/index.js +1 -1
  142. package/dist/collection/lib/rendering/matrices.js +1 -1
  143. package/dist/collection/lib/rendering/timing.js +3 -3
  144. package/dist/collection/lib/scenes/camera.js +5 -5
  145. package/dist/collection/lib/scenes/cameraRenderResult.js +1 -1
  146. package/dist/collection/lib/scenes/crossSectioner.js +1 -1
  147. package/dist/collection/lib/scenes/index.js +1 -1
  148. package/dist/collection/lib/scenes/mapper.js +169 -0
  149. package/dist/collection/lib/scenes/operations.js +1 -1
  150. package/dist/collection/lib/scenes/queries.js +41 -1
  151. package/dist/collection/lib/scenes/raycaster.js +1 -1
  152. package/dist/collection/lib/scenes/scene.js +17 -6
  153. package/dist/collection/lib/storage.js +21 -0
  154. package/dist/collection/lib/stream/dispatcher.js +1 -1
  155. package/dist/collection/lib/stream/state.js +2 -0
  156. package/dist/collection/lib/stream/stream.js +373 -0
  157. package/dist/collection/lib/token.js +22 -0
  158. package/dist/collection/lib/types/clippingPlanes.js +1 -1
  159. package/dist/collection/lib/types/depthBuffer.js +23 -32
  160. package/dist/collection/lib/types/entities.js +33 -0
  161. package/dist/collection/lib/types/featureMap.js +71 -5
  162. package/dist/collection/lib/types/flyToOptions.js +1 -1
  163. package/dist/collection/lib/types/frame.js +56 -30
  164. package/dist/collection/lib/types/index.js +9 -8
  165. package/dist/collection/lib/types/loadableResource.js +3 -2
  166. package/dist/collection/lib/types/measurement.js +2 -2
  167. package/dist/collection/lib/types/measurementUnits.js +136 -29
  168. package/dist/collection/lib/types/standardView.js +3 -3
  169. package/dist/collection/lib/types/stencilBuffer.js +70 -51
  170. package/dist/collection/lib/types/viewport.js +5 -34
  171. package/dist/collection/testing/fixtures.js +53 -19
  172. package/dist/collection/testing/index.js +1 -1
  173. package/dist/collection/testing/random.js +8 -1
  174. package/dist/collection/testing/resizeObserver.js +11 -0
  175. package/dist/collection/testing/sceneTree.js +4 -4
  176. package/dist/collection/testing/sceneView.js +9 -2
  177. package/dist/collection/testing/viewer.js +28 -29
  178. package/dist/collection/workers/png-decoder-pool.js +1 -1
  179. package/dist/custom-elements/index.d.ts +30 -6
  180. package/dist/custom-elements/index.js +37424 -30939
  181. package/dist/custom-elements/png-decoder.js +1 -1
  182. package/dist/esm/_commonjsHelpers-9943807e.js +1 -1
  183. package/dist/esm/{browser.esm-2cd52d34.js → browser.esm-e6827921.js} +196 -28
  184. package/dist/esm/{bundle.esm-c4d6aa7e.js → bundle.esm-8f14ac60.js} +10 -9
  185. package/dist/esm/{config-893f42b2.js → config-a200c227.js} +12 -12
  186. package/dist/esm/{controller-30dd46f9.js → controller-a756cf9c.js} +25 -42
  187. package/dist/esm/{cursors-fbbc4c6e.js → cursors-5157d29d.js} +2 -2
  188. package/dist/esm/dom-2111ed19.js +11 -0
  189. package/dist/esm/{dom-58d61782.js → dom-2d6a1e1e.js} +2 -2
  190. package/dist/esm/{dom-1b195079.js → dom-ba83fb9d.js} +2 -2
  191. package/dist/esm/{wrappers_pb-58e01658.js → grpc-web-client.umd-5982b7b0.js} +6 -2
  192. package/dist/esm/index-455380d0.js +1 -1
  193. package/dist/esm/{index-fe6ce3b8.js → index-f0053642.js} +166 -99
  194. package/dist/esm/index.js +12 -12
  195. package/dist/esm/index.mjs +12 -12
  196. package/dist/esm/loader.js +4 -4
  197. package/dist/esm/loader.mjs +4 -4
  198. package/dist/esm/{markup-d580d033.js → markup-e46623b3.js} +3 -3
  199. package/dist/esm/{measurement-be11f45e.js → measurement-702d6b8c.js} +4 -4
  200. package/dist/esm/{model-747f8110.js → model-f711a825.js} +2645 -2414
  201. package/dist/esm/{png-decoder-3acb1a6a.js → png-decoder-59a0e9c2.js} +2 -2
  202. package/dist/esm/scene-16490983.js +1246 -0
  203. package/dist/esm/{shadow-css-dcbbb34d.js → shadow-css-becbed78.js} +21 -16
  204. package/dist/esm/{stencil-743de9df.js → stencil-7d04d41a.js} +3 -6
  205. package/dist/esm/streamAttributes-7aa486b2.js +70171 -0
  206. package/dist/esm/summary-0a3d0bf9.js +43 -0
  207. package/dist/esm/templates-022199c1.js +1 -1
  208. package/dist/esm/{constants-ede00d6a.js → utils-8070900a.js} +18 -29
  209. package/dist/esm/{utils-7a042594.js → utils-953a1619.js} +2 -2
  210. package/dist/esm/vertex-scene-tree-search_3.entry.js +941 -0
  211. package/dist/esm/vertex-scene-tree-table-cell.entry.js +121 -0
  212. package/dist/esm/vertex-scene-tree-table-column.entry.js +18 -0
  213. package/dist/esm/vertex-scene-tree-table-header.entry.js +18 -0
  214. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +36 -0
  215. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +3 -3
  216. package/dist/esm/vertex-scene-tree.entry.js +439 -626
  217. package/dist/esm/vertex-viewer-button_3.entry.js +5 -5
  218. package/dist/esm/vertex-viewer-default-toolbar.entry.js +3 -3
  219. package/dist/esm/vertex-viewer-dom-element_3.entry.js +63 -63
  220. package/dist/esm/vertex-viewer-icon.entry.js +3 -3
  221. package/dist/esm/vertex-viewer-layer.entry.js +3 -3
  222. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +223 -101
  223. package/dist/esm/vertex-viewer-markup-tool.entry.js +31 -20
  224. package/dist/esm/vertex-viewer-markup.entry.js +65 -16
  225. package/dist/esm/vertex-viewer-measurement-details.entry.js +38 -41
  226. package/dist/esm/vertex-viewer-measurement-distance_2.entry.js +520 -149
  227. package/dist/esm/vertex-viewer-measurement-precise.entry.js +35 -20
  228. package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -8
  229. package/dist/esm/vertex-viewer-measurements.entry.js +8 -8
  230. package/dist/esm/vertex-viewer-view-cube.entry.js +12 -12
  231. package/dist/esm/vertex-viewer.entry.js +988 -1060
  232. package/dist/esm/viewer.js +11 -8
  233. package/dist/esm/{viewport-03ee15f9.js → viewport-bb7c46d9.js} +5 -34
  234. package/dist/types/__setup__/polyfills.d.ts +1 -0
  235. package/dist/types/components/scene-tree/errors.d.ts +7 -0
  236. package/dist/types/components/scene-tree/lib/controller.d.ts +9 -5
  237. package/dist/types/components/scene-tree/lib/dom.d.ts +0 -1
  238. package/dist/types/components/scene-tree/lib/row.d.ts +1 -1
  239. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +2 -0
  240. package/dist/types/components/scene-tree/scene-tree.d.ts +31 -35
  241. package/dist/types/components/scene-tree-search/scene-tree-search.d.ts +1 -1
  242. package/dist/types/components/{scene-tree-row/scene-tree-row.d.ts → scene-tree-table-cell/scene-tree-table-cell.d.ts} +40 -32
  243. package/dist/types/components/scene-tree-table-cell/utils.d.ts +1 -0
  244. package/dist/types/components/scene-tree-table-column/scene-tree-table-column.d.ts +16 -0
  245. package/dist/types/components/scene-tree-table-header/scene-tree-table-header.d.ts +4 -0
  246. package/dist/types/components/scene-tree-table-layout/lib/dom.d.ts +4 -0
  247. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +161 -0
  248. package/dist/types/components/scene-tree-table-resize-divider/scene-tree-table-resize-divider.d.ts +7 -0
  249. package/dist/types/components/viewer/__mocks__/mocks.d.ts +1 -1
  250. package/dist/types/components/viewer/viewer.d.ts +40 -47
  251. package/dist/types/components/viewer-default-toolbar/viewer-default-toolbar.d.ts +1 -1
  252. package/dist/types/components/viewer-markup/utils.d.ts +3 -0
  253. package/dist/types/components/viewer-markup/viewer-markup.d.ts +15 -6
  254. package/dist/types/components/viewer-markup-arrow/viewer-markup-arrow.d.ts +10 -4
  255. package/dist/types/components/viewer-markup-circle/viewer-markup-circle.d.ts +10 -4
  256. package/dist/types/components/viewer-markup-freeform.tsx/viewer-markup-freeform.d.ts +10 -4
  257. package/dist/types/components/viewer-markup-tool/viewer-markup-tool.d.ts +7 -5
  258. package/dist/types/components/viewer-measurement-details/viewer-measurement-details.d.ts +22 -24
  259. package/dist/types/components/viewer-measurement-distance/hitTest.d.ts +14 -0
  260. package/dist/types/components/viewer-measurement-distance/interactions.d.ts +132 -0
  261. package/dist/types/components/viewer-measurement-distance/utils.d.ts +1 -4
  262. package/dist/types/components/viewer-measurement-distance/viewer-measurement-distance.d.ts +27 -27
  263. package/dist/types/components/viewer-measurement-precise/viewer-measurement-precise.d.ts +4 -0
  264. package/dist/types/components/viewer-measurement-tool/viewer-measurement-tool.d.ts +2 -2
  265. package/dist/types/components/viewer-measurements/viewer-measurements.d.ts +3 -3
  266. package/dist/types/components.d.ts +302 -133
  267. package/dist/types/index.d.ts +5 -3
  268. package/dist/types/interfaces.d.ts +1 -1
  269. package/dist/types/lib/{sessions/__mocks__ → __mocks__}/storage.d.ts +0 -0
  270. package/dist/types/lib/config.d.ts +3 -3
  271. package/dist/types/lib/errors.d.ts +14 -0
  272. package/dist/types/lib/formatter.d.ts +4 -0
  273. package/dist/types/lib/grpc.d.ts +1 -1
  274. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +5 -4
  275. package/dist/types/lib/interactions/flyToPartKeyInteraction.d.ts +2 -2
  276. package/dist/types/lib/interactions/flyToPositionKeyInteraction.d.ts +16 -0
  277. package/dist/types/lib/interactions/index.d.ts +1 -1
  278. package/dist/types/lib/interactions/interactionApi.d.ts +10 -5
  279. package/dist/types/lib/interactions/interactionEvent.d.ts +1 -1
  280. package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +1 -1
  281. package/dist/types/lib/interactions/mouseInteractions.d.ts +1 -1
  282. package/dist/types/lib/interactions/multiTouchInteractionHandler.d.ts +2 -2
  283. package/dist/types/lib/interactions/pointerInteractionHandler.d.ts +1 -1
  284. package/dist/types/lib/interactions/tapInteractionHandler.d.ts +1 -1
  285. package/dist/types/lib/mappers/core.d.ts +3 -0
  286. package/dist/types/lib/mappers/frameStreaming.d.ts +33 -5
  287. package/dist/types/lib/mappers/index.d.ts +1 -0
  288. package/dist/types/lib/mappers/material.d.ts +1 -1
  289. package/dist/types/lib/mappers/scalar.d.ts +9 -3
  290. package/dist/types/lib/measurement/controller.d.ts +10 -1
  291. package/dist/types/lib/measurement/index.d.ts +1 -0
  292. package/dist/types/lib/measurement/model.d.ts +49 -2
  293. package/dist/types/lib/measurement/summary.d.ts +11 -0
  294. package/dist/types/lib/rendering/canvas.d.ts +3 -2
  295. package/dist/types/lib/rendering/timing.d.ts +1 -1
  296. package/dist/types/lib/rendering/utils.d.ts +1 -1
  297. package/dist/types/lib/scenes/__mocks__/mocks.d.ts +1 -1
  298. package/dist/types/lib/scenes/camera.d.ts +3 -3
  299. package/dist/types/lib/scenes/cameraRenderResult.d.ts +2 -2
  300. package/dist/types/lib/scenes/crossSectioner.d.ts +1 -1
  301. package/dist/types/lib/{commands/streamCommandsMapper.d.ts → scenes/mapper.d.ts} +3 -3
  302. package/dist/types/lib/scenes/operations.d.ts +1 -1
  303. package/dist/types/lib/scenes/queries.d.ts +34 -1
  304. package/dist/types/lib/scenes/raycaster.d.ts +6 -3
  305. package/dist/types/lib/scenes/scene.d.ts +16 -8
  306. package/dist/types/lib/storage.d.ts +5 -0
  307. package/dist/types/lib/stream/dispatcher.d.ts +2 -2
  308. package/dist/types/lib/stream/state.d.ts +35 -0
  309. package/dist/types/lib/stream/stream.d.ts +68 -0
  310. package/dist/types/lib/token.d.ts +9 -0
  311. package/dist/types/lib/types/depthBuffer.d.ts +15 -22
  312. package/dist/types/lib/types/entities.d.ts +29 -0
  313. package/dist/types/lib/types/featureMap.d.ts +30 -5
  314. package/dist/types/lib/types/frame.d.ts +26 -7
  315. package/dist/types/lib/types/index.d.ts +8 -7
  316. package/dist/types/lib/types/measurement.d.ts +2 -2
  317. package/dist/types/lib/types/measurementUnits.d.ts +65 -12
  318. package/dist/types/lib/types/standardView.d.ts +2 -2
  319. package/dist/types/lib/types/stencilBuffer.d.ts +36 -23
  320. package/dist/types/lib/types/viewport.d.ts +3 -20
  321. package/dist/types/stencil-public-runtime.d.ts +189 -186
  322. package/dist/types/testing/fixtures.d.ts +25 -7
  323. package/dist/types/testing/random.d.ts +3 -0
  324. package/dist/types/testing/resizeObserver.d.ts +2 -0
  325. package/dist/types/testing/sceneTree.d.ts +2 -2
  326. package/dist/types/testing/sceneView.d.ts +1 -0
  327. package/dist/types/testing/viewer.d.ts +16 -5
  328. package/dist/viewer/index.esm.js +2 -2
  329. package/dist/viewer/p-011eecd5.entry.js +4 -0
  330. package/dist/viewer/p-03e482ff.js +4 -0
  331. package/dist/viewer/p-0c052bc8.entry.js +4 -0
  332. package/dist/viewer/p-112455b1.js +1 -1
  333. package/dist/viewer/p-148cd792.js +4 -0
  334. package/dist/viewer/p-26d99e2d.entry.js +4 -0
  335. package/dist/viewer/p-38eeacc5.js +4 -0
  336. package/dist/viewer/p-39d1720c.js +4 -0
  337. package/dist/viewer/{p-d840e009.js → p-3a20a038.js} +2 -2
  338. package/dist/viewer/p-3e96bd62.entry.js +4 -0
  339. package/dist/viewer/p-40800e8d.entry.js +4 -0
  340. package/dist/viewer/{p-2917d93b.js → p-4485ac6d.js} +2 -2
  341. package/dist/viewer/p-5a2e34e1.entry.js +4 -0
  342. package/dist/viewer/p-5d82c131.entry.js +4 -0
  343. package/dist/viewer/p-5dc17b8b.js +4 -0
  344. package/dist/viewer/p-5fea3491.js +4 -0
  345. package/dist/viewer/p-653aca1b.entry.js +4 -0
  346. package/dist/viewer/p-6b700561.entry.js +4 -0
  347. package/dist/viewer/p-6cd7a6e0.js +4 -0
  348. package/dist/viewer/{p-80c7425f.js → p-6f71f0f2.js} +2 -2
  349. package/dist/viewer/p-75337d0b.js +4 -0
  350. package/dist/viewer/p-76c414a4.js +4 -0
  351. package/dist/viewer/{p-18e55391.js → p-784914e4.js} +2 -2
  352. package/dist/viewer/p-883fed22.js +15 -0
  353. package/dist/viewer/p-95f3a81c.entry.js +4 -0
  354. package/dist/viewer/p-a0e49d10.entry.js +4 -0
  355. package/dist/viewer/p-a20e4ea1.entry.js +4 -0
  356. package/dist/viewer/{p-16c2a45f.js → p-a5a0bf86.js} +2 -2
  357. package/dist/viewer/p-a6a8026f.js +4 -0
  358. package/dist/viewer/{p-db46d0d3.js → p-ac0761c3.js} +1 -1
  359. package/dist/viewer/p-b7ffa306.entry.js +4 -0
  360. package/dist/viewer/{p-3ceae26d.js → p-b83cc8a9.js} +2 -2
  361. package/dist/viewer/p-b92a3ac2.entry.js +4 -0
  362. package/dist/viewer/p-ba393340.entry.js +4 -0
  363. package/dist/viewer/p-c23a8b34.entry.js +4 -0
  364. package/dist/viewer/p-c738296e.js +1 -1
  365. package/dist/viewer/p-ca6bbe53.entry.js +4 -0
  366. package/dist/viewer/p-cc9888be.entry.js +4 -0
  367. package/dist/viewer/p-d2a9e047.js +4 -0
  368. package/dist/viewer/p-d40bd835.entry.js +4 -0
  369. package/dist/viewer/{p-301e0e44.js → p-e10b1526.js} +2 -2
  370. package/dist/viewer/p-e84ed098.entry.js +4 -0
  371. package/dist/viewer/p-ec8a1a68.entry.js +4 -0
  372. package/dist/viewer/p-f482325b.js +1 -1
  373. package/dist/viewer/p-f4a8c901.js +4 -0
  374. package/dist/viewer/p-f70d8def.js +17 -0
  375. package/dist/viewer/p-f77dde26.entry.js +4 -0
  376. package/dist/viewer/viewer.esm.js +2 -2
  377. package/loader/index.d.ts +0 -1
  378. package/package.json +27 -24
  379. package/readme.md +65 -30
  380. package/dist/cjs/controller-63152bc5.js +0 -162
  381. package/dist/cjs/grpc-web-client.umd-02b9625a.js +0 -12
  382. package/dist/cjs/scene-5dcf7b4e.js +0 -34329
  383. package/dist/cjs/streamAttributes-32d5c2be.js +0 -32230
  384. package/dist/cjs/utils-20ada606.js +0 -17
  385. package/dist/cjs/vertex-scene-tree-row.cjs.entry.js +0 -134
  386. package/dist/cjs/vertex-scene-tree-search_2.cjs.entry.js +0 -101
  387. package/dist/collection/components/scene-tree/lib/binding.js +0 -156
  388. package/dist/collection/components/scene-tree/lib/element-pool.js +0 -63
  389. package/dist/collection/components/scene-tree/lib/templates.js +0 -20
  390. package/dist/collection/components/scene-tree-row/scene-tree-row.js +0 -273
  391. package/dist/collection/components/scene-tree-row/utils.js +0 -5
  392. package/dist/collection/components/viewer-measurement-details/utils.js +0 -24
  393. package/dist/collection/lib/commands/command.js +0 -2
  394. package/dist/collection/lib/commands/commandRegistry.js +0 -30
  395. package/dist/collection/lib/commands/index.js +0 -7
  396. package/dist/collection/lib/commands/streamCommands.js +0 -34
  397. package/dist/collection/lib/commands/streamCommandsMapper.js +0 -146
  398. package/dist/collection/lib/sessions/__mocks__/storage.js +0 -7
  399. package/dist/collection/lib/sessions/storage.js +0 -19
  400. package/dist/collection/lib/stream/viewerStreamApi.js +0 -58
  401. package/dist/collection/testing/domMocks.js +0 -38
  402. package/dist/esm/grpc-web-client.umd-a0111149.js +0 -10
  403. package/dist/esm/scene-f24a3d20.js +0 -34308
  404. package/dist/esm/streamAttributes-2e92e600.js +0 -32214
  405. package/dist/esm/utils-edbcfcb9.js +0 -14
  406. package/dist/esm/vertex-scene-tree-row.entry.js +0 -130
  407. package/dist/esm/vertex-scene-tree-search_2.entry.js +0 -96
  408. package/dist/types/components/scene-tree/lib/binding.d.ts +0 -35
  409. package/dist/types/components/scene-tree/lib/element-pool.d.ts +0 -17
  410. package/dist/types/components/scene-tree/lib/templates.d.ts +0 -7
  411. package/dist/types/components/scene-tree-row/utils.d.ts +0 -1
  412. package/dist/types/components/viewer-measurement-details/utils.d.ts +0 -7
  413. package/dist/types/lib/commands/command.d.ts +0 -8
  414. package/dist/types/lib/commands/commandRegistry.d.ts +0 -13
  415. package/dist/types/lib/commands/index.d.ts +0 -5
  416. package/dist/types/lib/commands/streamCommands.d.ts +0 -11
  417. package/dist/types/lib/sessions/storage.d.ts +0 -2
  418. package/dist/types/lib/stream/viewerStreamApi.d.ts +0 -17
  419. package/dist/types/testing/domMocks.d.ts +0 -0
  420. package/dist/viewer/p-00723a72.entry.js +0 -4
  421. package/dist/viewer/p-0e7fbbcf.entry.js +0 -4
  422. package/dist/viewer/p-0ea92289.entry.js +0 -4
  423. package/dist/viewer/p-3085d6bb.entry.js +0 -4
  424. package/dist/viewer/p-34fc4f05.entry.js +0 -4
  425. package/dist/viewer/p-35fc9ac0.entry.js +0 -4
  426. package/dist/viewer/p-3e02c716.entry.js +0 -4
  427. package/dist/viewer/p-402e5a43.entry.js +0 -4
  428. package/dist/viewer/p-427b1b31.entry.js +0 -4
  429. package/dist/viewer/p-4cbd45f1.entry.js +0 -4
  430. package/dist/viewer/p-56b305e4.js +0 -4
  431. package/dist/viewer/p-5d481dd9.js +0 -4
  432. package/dist/viewer/p-639996da.js +0 -4
  433. package/dist/viewer/p-669263ba.entry.js +0 -4
  434. package/dist/viewer/p-6881f51b.entry.js +0 -4
  435. package/dist/viewer/p-736fa37b.js +0 -4
  436. package/dist/viewer/p-7b0bcbc6.js +0 -4
  437. package/dist/viewer/p-7b589331.entry.js +0 -32
  438. package/dist/viewer/p-7de8fb8b.js +0 -15
  439. package/dist/viewer/p-7ea22961.js +0 -4
  440. package/dist/viewer/p-81c679f1.js +0 -17
  441. package/dist/viewer/p-8455d8c8.js +0 -4
  442. package/dist/viewer/p-85b3b275.entry.js +0 -4
  443. package/dist/viewer/p-866b4612.entry.js +0 -4
  444. package/dist/viewer/p-8e6a7bc0.js +0 -4
  445. package/dist/viewer/p-8ebe0117.entry.js +0 -4
  446. package/dist/viewer/p-9b51b75c.js +0 -4
  447. package/dist/viewer/p-a0ec6f3a.js +0 -4
  448. package/dist/viewer/p-b4b2a93e.entry.js +0 -4
  449. package/dist/viewer/p-d16e145b.entry.js +0 -4
  450. package/dist/viewer/p-ea7b162f.entry.js +0 -4
  451. package/dist/viewer/p-fbf612d6.js +0 -4
  452. package/dist/viewer/p-fe871e50.js +0 -4
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
@@ -1,9 +1,32 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
6
- const bundle_esm = require('./bundle.esm-6b7736ee.js');
6
+ const bundle_esm = require('./bundle.esm-dc0a8361.js');
7
+
8
+ /**
9
+ * Adds a listener to the given `target`, and returns a promise that
10
+ * resolves with the first event emitted of the given `type`.
11
+ *
12
+ * @param target The target to add an event listener to.
13
+ * @param type The event type to listen for.
14
+ * @param opts Options to pass to `addEventListener`.
15
+ * @returns A promise that resolves with the first event emitted of `type`.
16
+ */
17
+ function once(target, type, opts) {
18
+ return bundle_esm.__awaiter(this, void 0, void 0, function () {
19
+ return bundle_esm.__generator(this, function (_a) {
20
+ return [2 /*return*/, new Promise(function (resolve) {
21
+ function handler(event) {
22
+ target.removeEventListener(type, handler);
23
+ resolve(event);
24
+ }
25
+ target.addEventListener(type, handler, opts);
26
+ })];
27
+ });
28
+ });
29
+ }
7
30
 
8
31
  function delay() {
9
32
  var args = [];
@@ -37,28 +60,132 @@ function timeout() {
37
60
  for (var _i = 0; _i < arguments.length; _i++) {
38
61
  args[_i] = arguments[_i];
39
62
  }
40
- var ms = args[0];
41
- if (typeof ms === 'number') {
42
- var promise = args[1];
43
- var timeout_1 = new Promise(function (_, reject) {
44
- return setTimeout(function () { return reject(new Error("Promise timed out after " + ms + "ms")); }, ms);
63
+ return bundle_esm.__awaiter(this, void 0, void 0, function () {
64
+ var ms, promise, timer_1, timeout_1, res;
65
+ return bundle_esm.__generator(this, function (_a) {
66
+ switch (_a.label) {
67
+ case 0:
68
+ ms = args[0];
69
+ if (!(typeof ms === 'number')) return [3 /*break*/, 4];
70
+ promise = args[1];
71
+ timeout_1 = new Promise(function (_, reject) {
72
+ timer_1 = setTimeout(function () { return reject(new Error("Promise timed out after ".concat(ms, "ms"))); }, ms);
73
+ });
74
+ if (!(promise != null)) return [3 /*break*/, 2];
75
+ return [4 /*yield*/, Promise.race([promise, timeout_1])];
76
+ case 1:
77
+ res = _a.sent();
78
+ clearTimeout(timer_1);
79
+ return [2 /*return*/, res];
80
+ case 2: return [2 /*return*/, timeout_1];
81
+ case 3: return [3 /*break*/, 5];
82
+ case 4: return [2 /*return*/, Promise.reject('First argument to `timeout` must be a number')];
83
+ case 5: return [2 /*return*/];
84
+ }
45
85
  });
46
- if (promise != null) {
47
- return Promise.race([promise, timeout_1]);
48
- }
49
- else {
50
- return timeout_1;
86
+ });
87
+ }
88
+ /**
89
+ * Executes and reattempts execution of an asynchronous function if it throws an
90
+ * error. By default, this function will only retry once and reexecute
91
+ * immediately after the previous execution throws. You can configure the number
92
+ * of retry attempts and delays with the `maxRetries` and `delaysInMs` options.
93
+ *
94
+ * The `delaysInMs` is an array of delays in milliseconds for each retry
95
+ * attempt. If there are more retry attempts than delays, the last delay will be
96
+ * used.
97
+ *
98
+ * @param process The process to execute.
99
+ * @param opts Options to configure retry behavior.
100
+ * @returns A promise that resolves with a successful value, or the original
101
+ * rejected value if the process fails.
102
+ */
103
+ function retry(process, opts) {
104
+ if (opts === void 0) { opts = {}; }
105
+ return bundle_esm.__awaiter(this, void 0, void 0, function () {
106
+ function execute(attempt, process, opts) {
107
+ return bundle_esm.__awaiter(this, void 0, void 0, function () {
108
+ var _a, delaysInMs, _b, maxRetries, delayInMs, e_1;
109
+ return bundle_esm.__generator(this, function (_c) {
110
+ switch (_c.label) {
111
+ case 0:
112
+ _a = opts.delaysInMs, delaysInMs = _a === void 0 ? [] : _a, _b = opts.maxRetries, maxRetries = _b === void 0 ? 1 : _b;
113
+ _c.label = 1;
114
+ case 1:
115
+ _c.trys.push([1, 4, , 8]);
116
+ delayInMs = attempt === 0 || delaysInMs.length === 0
117
+ ? 0
118
+ : delaysInMs[Math.min(attempt - 1, delaysInMs.length - 1)];
119
+ return [4 /*yield*/, delay(delayInMs)];
120
+ case 2:
121
+ _c.sent();
122
+ return [4 /*yield*/, process()];
123
+ case 3: return [2 /*return*/, _c.sent()];
124
+ case 4:
125
+ e_1 = _c.sent();
126
+ if (!(attempt < maxRetries)) return [3 /*break*/, 6];
127
+ return [4 /*yield*/, execute(attempt + 1, process, opts)];
128
+ case 5: return [2 /*return*/, _c.sent()];
129
+ case 6: throw e_1;
130
+ case 7: return [3 /*break*/, 8];
131
+ case 8: return [2 /*return*/];
132
+ }
133
+ });
134
+ });
51
135
  }
136
+ return bundle_esm.__generator(this, function (_a) {
137
+ return [2 /*return*/, execute(0, process, opts)];
138
+ });
139
+ });
140
+ }
141
+ /**
142
+ * Returns a promise that either resolves with the result of `promise`, or a
143
+ * value that indicates the execution was aborted.
144
+ *
145
+ * **Note:** Because Promises in JS cannot be canceled, an abort signal will not
146
+ * cancel the execution of the promise.
147
+ *
148
+ * @param signal A signal that communicates the process should be aborted.
149
+ * @param promise A promise who's value will be returned if not aborted.
150
+ * @returns A value indicating if the process was aborted, or the value of
151
+ * `promise`.
152
+ */
153
+ function abort(signal, promise) {
154
+ return bundle_esm.__awaiter(this, void 0, void 0, function () {
155
+ var controller, pendingAbort, result;
156
+ return bundle_esm.__generator(this, function (_a) {
157
+ switch (_a.label) {
158
+ case 0:
159
+ controller = new AbortController();
160
+ pendingAbort = once(signal, 'abort', { signal: controller.signal });
161
+ return [4 /*yield*/, Promise.race([promise, pendingAbort])];
162
+ case 1:
163
+ result = _a.sent();
164
+ if (isAbortEvent(result)) {
165
+ return [2 /*return*/, { aborted: true }];
166
+ }
167
+ else {
168
+ controller.abort();
169
+ return [2 /*return*/, { aborted: false, result: result }];
170
+ }
171
+ }
172
+ });
173
+ });
174
+ }
175
+ function isAbortEvent(obj) {
176
+ if (obj instanceof Event) {
177
+ return obj.type === 'abort';
52
178
  }
53
- else {
54
- return Promise.reject('First argument to `timeout` must be a number');
55
- }
179
+ else
180
+ return false;
56
181
  }
57
182
 
58
183
  var async = /*#__PURE__*/Object.freeze({
59
184
  __proto__: null,
60
185
  delay: delay,
61
- timeout: timeout
186
+ timeout: timeout,
187
+ retry: retry,
188
+ abort: abort
62
189
  });
63
190
 
64
191
  var rgbRegex = /rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/;
@@ -135,7 +262,7 @@ var isOpaque = function (color) {
135
262
  * `#`.
136
263
  */
137
264
  var toHexString = function (color) {
138
- return "#" + componentToHex(color.r) + componentToHex(color.g) + componentToHex(color.b);
265
+ return "#".concat(componentToHex(color.r)).concat(componentToHex(color.g)).concat(componentToHex(color.b));
139
266
  };
140
267
  var componentToHex = function (num) {
141
268
  var hex = num.toString(16);
@@ -230,8 +357,9 @@ var color = /*#__PURE__*/Object.freeze({
230
357
  var MapperValidationError = /** @class */ (function (_super) {
231
358
  bundle_esm.__extends(MapperValidationError, _super);
232
359
  function MapperValidationError(errors) {
233
- var _this = _super.call(this, 'Validation error while mapping object.') || this;
360
+ var _this = _super.call(this, 'Validation error mapping object.') || this;
234
361
  _this.errors = errors;
362
+ Object.setPrototypeOf(_this, MapperValidationError.prototype);
235
363
  return _this;
236
364
  }
237
365
  return MapperValidationError;
@@ -247,7 +375,7 @@ function required(name) {
247
375
  return input;
248
376
  }
249
377
  else {
250
- return { errors: [name + " is required."] };
378
+ return { errors: ["".concat(name, " is required.")] };
251
379
  }
252
380
  };
253
381
  }
@@ -265,7 +393,7 @@ function requiredProp(prop) {
265
393
  return value;
266
394
  }
267
395
  else {
268
- return { errors: [prop + " is required"] };
396
+ return { errors: ["".concat(prop, " is required")] };
269
397
  }
270
398
  };
271
399
  }
@@ -2598,7 +2726,7 @@ var isEqual = function (a, b) {
2598
2726
  queryA === queryB);
2599
2727
  };
2600
2728
  var replacePath = function (path, uri) {
2601
- var pathWithForwardSlash = path[0] === '/' ? path : "/" + path;
2729
+ var pathWithForwardSlash = path[0] === '/' ? path : "/".concat(path);
2602
2730
  return bundle_esm.__assign(bundle_esm.__assign({}, uri), { path: pathWithForwardSlash });
2603
2731
  };
2604
2732
  var pathAsArray = function (uri) {
@@ -2674,17 +2802,17 @@ var queryAsMap = function (uri) {
2674
2802
  var toString = function (uri) {
2675
2803
  var result = '';
2676
2804
  if (uri.scheme != null && uri.scheme.length > 0) {
2677
- result = uri.scheme + ":";
2805
+ result = "".concat(uri.scheme, ":");
2678
2806
  }
2679
2807
  if (uri.authority != null && uri.authority.length > 0) {
2680
- result += "//" + uri.authority;
2808
+ result += "//".concat(uri.authority);
2681
2809
  }
2682
2810
  result += uri.path;
2683
2811
  if (uri.query != null && uri.query.length > 0) {
2684
- result += "?" + uri.query;
2812
+ result += "?".concat(uri.query);
2685
2813
  }
2686
2814
  if (uri.fragment != null && uri.fragment.length > 0) {
2687
- result += "#" + uri.fragment;
2815
+ result += "#".concat(uri.fragment);
2688
2816
  }
2689
2817
  return result;
2690
2818
  };
@@ -2878,10 +3006,50 @@ var EventDispatcher = /** @class */ (function () {
2878
3006
  function EventDispatcher() {
2879
3007
  this.listeners = [];
2880
3008
  }
2881
- EventDispatcher.prototype.on = function (listener) {
3009
+ EventDispatcher.prototype.on = function (listener, opts) {
2882
3010
  var _this = this;
3011
+ var _a;
3012
+ if (opts === void 0) { opts = {}; }
2883
3013
  this.listeners.push(listener);
2884
- return { dispose: function () { return _this.off(listener); } };
3014
+ var controller = new AbortController();
3015
+ controller.signal.addEventListener('abort', function () { return _this.off(listener); });
3016
+ (_a = opts.abort) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', function () { return controller.abort(); });
3017
+ return { dispose: function () { return controller.abort(); } };
3018
+ };
3019
+ EventDispatcher.prototype.once = function (opts) {
3020
+ var _this = this;
3021
+ if (opts === void 0) { opts = {}; }
3022
+ return new Promise(function (resolve) {
3023
+ _this.on(function (event) { return resolve(event); }, opts);
3024
+ });
3025
+ };
3026
+ EventDispatcher.prototype.onceWhen = function (predicate, opts) {
3027
+ var _a;
3028
+ if (opts === void 0) { opts = {}; }
3029
+ return bundle_esm.__awaiter(this, void 0, void 0, function () {
3030
+ var controller;
3031
+ var _this = this;
3032
+ return bundle_esm.__generator(this, function (_b) {
3033
+ controller = new AbortController();
3034
+ (_a = opts.abort) === null || _a === void 0 ? void 0 : _a.addEventListener('abort', function () { return controller.abort(); });
3035
+ return [2 /*return*/, new Promise(function (resolve) {
3036
+ _this.when(predicate, function (event) {
3037
+ if (predicate(event)) {
3038
+ controller.abort();
3039
+ resolve(event);
3040
+ }
3041
+ }, bundle_esm.__assign(bundle_esm.__assign({}, opts), { abort: controller.signal }));
3042
+ })];
3043
+ });
3044
+ });
3045
+ };
3046
+ EventDispatcher.prototype.when = function (predicate, listener, opts) {
3047
+ if (opts === void 0) { opts = {}; }
3048
+ return this.on(function (event) {
3049
+ if (predicate(event)) {
3050
+ listener(event);
3051
+ }
3052
+ }, opts);
2885
3053
  };
2886
3054
  EventDispatcher.prototype.off = function (listener) {
2887
3055
  var index = this.listeners.indexOf(listener);
@@ -1,5 +1,5 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
@@ -368,13 +368,14 @@ function makeTranslation(translation) {
368
368
  * Creates a rotation matrix.
369
369
  *
370
370
  * ```
371
- * 1-2y²-2z², 2xy+2zw, 2xz-2yw, 0,
372
- * 2xy-2zw, 1-2x²-2z², 2yz+2xw, 0,
373
- * 2xz+2yw, 2yz-2xw, 1-2x²-2y², 0,
371
+ * 1-2y²-2z², 2xy-2zw, 2xz+2yw, 0,
372
+ * 2xy+2zw, 1-2x²-2z², 2yz-2xw, 0,
373
+ * 2xz-2yw, 2yz+2xw, 1-2x²-2y², 0,
374
374
  * 0, 0, 0, 1,
375
375
  * ```
376
376
  *
377
377
  * @param rotation A quaternion representing the rotation.
378
+ * @see https://en.wikipedia.org/wiki/Rotation_matrix#Quaternion
378
379
  * @returns A rotation matrix.
379
380
  */
380
381
  function makeRotation(rotation) {
@@ -385,9 +386,9 @@ function makeRotation(rotation) {
385
386
  var wx = w * x2, wy = w * y2, wz = w * z2;
386
387
  /* eslint-disable prettier/prettier */
387
388
  return [
388
- 1 - (yy + zz), xy - wz, xz + wy, 0,
389
- xy + wz, 1 - (xx + zz), yz - wx, 0,
390
- xz - wy, yz + wx, 1 - (xx + yy), 0,
389
+ 1 - (yy + zz), xy + wz, xz - wy, 0,
390
+ xy - wz, 1 - (xx + zz), yz + wx, 0,
391
+ xz + wy, yz - wx, 1 - (xx + yy), 0,
391
392
  0, 0, 0, 1
392
393
  ];
393
394
  /* eslint-enable prettier/prettier */
@@ -2004,7 +2005,7 @@ function intersectLine(plane, line) {
2004
2005
  return undefined;
2005
2006
  }
2006
2007
  else {
2007
- return add(line.start, scale$2(t, direction$1));
2008
+ return add(scale$2(t, direction$1), line.start);
2008
2009
  }
2009
2010
  }
2010
2011
  /**
@@ -1,17 +1,14 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
6
- const browser_esm = require('./browser.esm-d86ca733.js');
7
- require('./streamAttributes-32d5c2be.js');
6
+ const browser_esm = require('./browser.esm-31b03292.js');
7
+ require('./streamAttributes-9d6226ac.js');
8
8
 
9
- const defaultFlags = {
10
- throttleFrameDelivery: true,
11
- adaptiveRendering: true,
12
- logWsMessages: false,
13
- logFrameRate: false,
14
- letterboxFrames: false,
9
+ const DEFAULT_ANIMATION_DURATION = 500;
10
+ const defaultAnimationConfig = {
11
+ durationMs: DEFAULT_ANIMATION_DURATION,
15
12
  };
16
13
 
17
14
  const defaultEventConfig = {
@@ -19,9 +16,12 @@ const defaultEventConfig = {
19
16
  longPressThreshold: 500,
20
17
  };
21
18
 
22
- const DEFAULT_ANIMATION_DURATION = 500;
23
- const defaultAnimationConfig = {
24
- durationMs: DEFAULT_ANIMATION_DURATION,
19
+ const defaultFlags = {
20
+ throttleFrameDelivery: true,
21
+ adaptiveRendering: true,
22
+ logWsMessages: false,
23
+ logFrameRate: false,
24
+ letterboxFrames: false,
25
25
  };
26
26
 
27
27
  const defaultInteractionConfig = {
@@ -0,0 +1,145 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ 'use strict';
5
+
6
+ const model = require('./model-18ef3363.js');
7
+ const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
8
+
9
+ function requestUnary(caller) {
10
+ return new Promise((resolve, reject) => {
11
+ caller((err, res) => {
12
+ if (err != null) {
13
+ reject(err);
14
+ }
15
+ else if (res != null) {
16
+ resolve(res);
17
+ }
18
+ else {
19
+ reject(new Error('Invalid gRPC response. Error and result are empty.'));
20
+ }
21
+ });
22
+ });
23
+ }
24
+ async function createMetadata(jwtProvider, deviceId) {
25
+ const jwt = await jwtProvider();
26
+ const meta = new grpcWebClient_umd.grpcWebClient_umd.grpc.Metadata({
27
+ 'jwt-context': JSON.stringify({
28
+ jwt,
29
+ metadata: { 'x-device-id': deviceId || '' },
30
+ }),
31
+ });
32
+ return meta;
33
+ }
34
+
35
+ /**
36
+ * The `MeasurementController` is responsible for performing measurements of
37
+ * registered entities, and updating the model with their measurement results.
38
+ */
39
+ class MeasurementController {
40
+ constructor(model, client, jwtProvider, deviceId) {
41
+ this.model = model;
42
+ this.client = client;
43
+ this.jwtProvider = jwtProvider;
44
+ this.deviceId = deviceId;
45
+ this.results = Promise.resolve([]);
46
+ }
47
+ /**
48
+ * Registers an entity to measure and performs a measurement if this entity
49
+ * has not been previously registered.
50
+ *
51
+ * @param entity The entity to measure.
52
+ * @returns A promise that resolves with the results after registering this
53
+ * entity.
54
+ */
55
+ addEntity(entity) {
56
+ return this.performMeasurement(() => this.model.addEntity(entity));
57
+ }
58
+ /**
59
+ * Clears all entities and returns a promise that resolves with an empty list
60
+ * of measurement results.
61
+ */
62
+ clearEntities() {
63
+ return this.performMeasurement(() => {
64
+ this.model.clearEntities();
65
+ this.model.clearResults();
66
+ return true;
67
+ });
68
+ }
69
+ /**
70
+ * Deregisters an entity and performs a measurement if this entity was
71
+ * removed.
72
+ *
73
+ * @param entity The entity to remove.
74
+ * @returns A promise that resolves with the results after removing this
75
+ * entity.
76
+ */
77
+ removeEntity(entity) {
78
+ return this.performMeasurement(() => this.model.removeEntity(entity));
79
+ }
80
+ /**
81
+ * Registers a set of entities and performs a measurement
82
+ *
83
+ * @param entities The entities to measure.
84
+ * @returns A promise that resolves with the results after registering these
85
+ * entities.
86
+ */
87
+ setEntities(entities) {
88
+ return this.performMeasurement(() => this.model.setEntities(entities));
89
+ }
90
+ performMeasurement(effect) {
91
+ const previous = this.model.getEntities();
92
+ const changed = effect();
93
+ const entities = this.model.getEntities();
94
+ if (changed) {
95
+ this.measureAndUpdateModel(entities);
96
+ this.highlightEntities(previous, entities);
97
+ }
98
+ return this.results;
99
+ }
100
+ measureAndUpdateModel(entities) {
101
+ if (entities.length > 0) {
102
+ this.results = this.measureEntities().then((outcome) => {
103
+ this.model.replaceResultsWithOutcome(outcome);
104
+ return this.model.getResults();
105
+ });
106
+ }
107
+ else {
108
+ this.results = Promise.resolve([]);
109
+ }
110
+ }
111
+ async measureEntities() {
112
+ const entities = this.model.getEntities().map((e) => e.toProto());
113
+ const res = await requestUnary(async (handler) => {
114
+ const meta = await createMetadata(this.jwtProvider, this.deviceId);
115
+ const req = new model.scene_view_api_pb.MeasureRequest();
116
+ req.setEntitiesList(entities);
117
+ this.client.measure(req, meta, handler);
118
+ });
119
+ return model.mapMeasureResponseOrThrow(res.toObject());
120
+ }
121
+ async highlightEntities(previous, entities) {
122
+ await requestUnary(async (handler) => {
123
+ const meta = await createMetadata(this.jwtProvider, this.deviceId);
124
+ const entitySet = new Set(entities);
125
+ const newPrevious = previous.filter((e) => !entitySet.has(e));
126
+ const clearEntities = newPrevious.map((e) => {
127
+ const update = new model.scene_view_api_pb.ModelEntityUpdate();
128
+ update.setModelEntity(model.model_entity_pb.ModelEntity.deserializeBinary(e.modelEntity));
129
+ update.setHighlight(new grpcWebClient_umd.wrappers_pb.BoolValue().setValue(false));
130
+ return update;
131
+ });
132
+ const highlightEntities = entities.map((e) => {
133
+ const update = new model.scene_view_api_pb.ModelEntityUpdate();
134
+ update.setModelEntity(model.model_entity_pb.ModelEntity.deserializeBinary(e.modelEntity));
135
+ update.setHighlight(new grpcWebClient_umd.wrappers_pb.BoolValue().setValue(true));
136
+ return update;
137
+ });
138
+ const req = new model.scene_view_api_pb.UpdateModelEntitiesRequest();
139
+ req.setUpdatesList([...clearEntities, ...highlightEntities]);
140
+ this.client.updateModelEntities(req, meta, handler);
141
+ });
142
+ }
143
+ }
144
+
145
+ exports.MeasurementController = MeasurementController;
@@ -1,9 +1,9 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
6
- const browser_esm = require('./browser.esm-d86ca733.js');
6
+ const browser_esm = require('./browser.esm-31b03292.js');
7
7
 
8
8
  /**
9
9
  * The cursor manager maintains a prioritized list of cursors for the viewer.
@@ -1,10 +1,10 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
6
6
  /*
7
- Stencil Client Patch Browser v2.6.0 | MIT Licensed | https://stenciljs.com
7
+ Stencil Client Patch Browser v2.12.1 | MIT Licensed | https://stenciljs.com
8
8
  */
9
9
  (function(){
10
10
  var aa=new Set("annotation-xml color-profile font-face font-face-src font-face-uri font-face-format font-face-name missing-glyph".split(" "));function g(a){var b=aa.has(a);a=/^[a-z][.0-9_a-z]*-[\-.0-9_a-z]*$/.test(a);return !b&&a}function l(a){var b=a.isConnected;if(void 0!==b)return b;for(;a&&!(a.__CE_isImportDocument||a instanceof Document);)a=a.parentNode||(window.ShadowRoot&&a instanceof ShadowRoot?a.host:void 0);return !(!a||!(a.__CE_isImportDocument||a instanceof Document))}
@@ -0,0 +1,14 @@
1
+ /**!
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
+ */
4
+ 'use strict';
5
+
6
+ function getSceneTreeViewportHeight(el) {
7
+ return el.clientHeight;
8
+ }
9
+ function getSceneTreeContainsElement(el, other) {
10
+ return el.contains(other);
11
+ }
12
+
13
+ exports.getSceneTreeContainsElement = getSceneTreeContainsElement;
14
+ exports.getSceneTreeViewportHeight = getSceneTreeViewportHeight;
@@ -1,9 +1,9 @@
1
1
  /**!
2
- * Copyright (c) 2021 Vertex Software LLC. All rights reserved.
2
+ * Copyright (c) 2022 Vertex Software LLC. All rights reserved.
3
3
  */
4
4
  'use strict';
5
5
 
6
- const bundle_esm = require('./bundle.esm-6b7736ee.js');
6
+ const bundle_esm = require('./bundle.esm-dc0a8361.js');
7
7
 
8
8
  function getMouseClientPosition(event, offsets) {
9
9
  const pt = bundle_esm.point.create(event.clientX, event.clientY);