@vertexvis/viewer 0.13.2-canary.9 → 0.14.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 (323) hide show
  1. package/dist/cjs/{_commonjsHelpers-537d719a.js → _commonjsHelpers-dcc4cf71.js} +21 -0
  2. package/dist/cjs/{app-globals-3671e828.js → app-globals-2035678d.js} +1 -1
  3. package/dist/cjs/{browser.esm-075810bf.js → browser.esm-0bcdc581.js} +1 -1
  4. package/dist/cjs/{bundle.esm-618a5fe9.js → bundle.esm-22b6f2d6.js} +35 -1
  5. package/dist/cjs/{config-fb124bac.js → config-c63caa4f.js} +3 -2
  6. package/dist/cjs/{cursors-d71f6a74.js → cursors-f5d3c9a6.js} +13 -1
  7. package/dist/cjs/{dom-57ef84e9.js → dom-8d90bfaf.js} +1 -1
  8. package/dist/cjs/dom-d1bbd67c.js +10 -0
  9. package/dist/cjs/elementRectObserver-9b28f182.js +25 -0
  10. package/dist/cjs/entities-9eb7e608.js +41 -0
  11. package/dist/cjs/{entities-90f1347a.js → entities-e71231d8.js} +4 -4
  12. package/dist/cjs/{grpc-web-client.umd-60a79aae.js → grpc-web-client.umd-2af20c1b.js} +1 -1
  13. package/dist/cjs/{index-e100709a.js → index-4138aa2c.js} +1 -0
  14. package/dist/cjs/{index-3bc6bac0.js → index-b9d13137.js} +1 -1
  15. package/dist/cjs/index.cjs.js +25 -22
  16. package/dist/cjs/loader.cjs.js +4 -4
  17. package/dist/cjs/{mapper-80ee2957.js → mapper-08bbab48.js} +4 -4
  18. package/dist/cjs/{markup-7f7de5f2.js → markup-f7e61d16.js} +2 -2
  19. package/dist/cjs/{measurement-f1ae9248.js → measurement-3367e9b7.js} +2 -2
  20. package/dist/cjs/{model-55abd9ab.js → model-5ca87867.js} +1 -1
  21. package/dist/cjs/model-a9cfd037.js +246 -0
  22. package/dist/cjs/{overlays-68e8eff2.js → overlays-b0ba69fd.js} +2 -2
  23. package/dist/cjs/{png-decoder-076131d8.js → png-decoder-ef097f37.js} +2 -2
  24. package/dist/cjs/{results-e9496869.js → results-178e89a3.js} +1 -1
  25. package/dist/cjs/{scene-92728420.js → scene-b6b78909.js} +49 -12
  26. package/dist/cjs/{stencil-a664cd10.js → stencil-ef19638e.js} +5 -1
  27. package/dist/cjs/{streamAttributes-81eb52f2.js → streamAttributes-c343bdc8.js} +1993 -78
  28. package/dist/cjs/utils-78928e4e.js +162 -0
  29. package/dist/cjs/{utils-6397efca.js → utils-b157b0af.js} +1 -1
  30. package/dist/cjs/{utils-463cd52e.js → utils-c74b8bf0.js} +1 -1
  31. package/dist/cjs/vertex-scene-tree-search_3.cjs.entry.js +16 -6
  32. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +16 -14
  33. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  34. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  35. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +3 -3
  36. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-scene-tree.cjs.entry.js +154 -27
  38. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +3 -3
  39. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  40. package/dist/cjs/{vertex-viewer-dom-element_3.cjs.entry.js → vertex-viewer-dom-element_2.cjs.entry.js} +20 -178
  41. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +191 -0
  42. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +6 -3
  43. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  44. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +49 -196
  45. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +5 -5
  46. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +5 -5
  47. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +8 -7
  48. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +16 -15
  49. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +10 -9
  50. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +18 -35
  51. package/dist/cjs/vertex-viewer-measurement-tool.cjs.entry.js +8 -7
  52. package/dist/cjs/vertex-viewer-measurements.cjs.entry.js +12 -11
  53. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +167 -0
  54. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +276 -0
  55. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +322 -0
  56. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +13272 -0
  57. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +8 -7
  58. package/dist/cjs/vertex-viewer.cjs.entry.js +119 -52
  59. package/dist/cjs/viewer.cjs.js +4 -4
  60. package/dist/cjs/{viewport-54b1389d.js → viewport-5ca619f7.js} +14 -4
  61. package/dist/collection/__mocks__/regl-shape.js +6 -0
  62. package/dist/collection/__mocks__/regl.js +3 -0
  63. package/dist/collection/collection-manifest.json +5 -0
  64. package/dist/collection/components/scene-tree/lib/controller.js +17 -5
  65. package/dist/collection/components/scene-tree/lib/errors.js +7 -1
  66. package/dist/collection/components/scene-tree/lib/viewer-ops.js +12 -1
  67. package/dist/collection/components/scene-tree/scene-tree.js +112 -22
  68. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +0 -7
  69. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.js +34 -12
  70. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.js +14 -2
  71. package/dist/collection/components/viewer/viewer.js +79 -14
  72. package/dist/collection/components/viewer-dom-element/viewer-dom-element.js +32 -4
  73. package/dist/collection/components/viewer-dom-group/utils.js +3 -2
  74. package/dist/collection/components/viewer-dom-group/viewer-dom-group.js +30 -2
  75. package/dist/collection/components/viewer-icon/viewer-icon.js +5 -2
  76. package/dist/collection/components/viewer-markup/utils.js +3 -2
  77. package/dist/collection/components/viewer-measurement-details/viewer-measurement-details-results.js +2 -2
  78. package/dist/collection/components/viewer-pin-group/pin-renderer.js +12 -0
  79. package/dist/collection/components/viewer-pin-group/utils.js +24 -0
  80. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +83 -0
  81. package/dist/collection/components/viewer-pin-group/viewer-pin-group.js +276 -0
  82. package/dist/collection/components/viewer-pin-label/utils.js +4 -0
  83. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +154 -0
  84. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +410 -0
  85. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +36 -0
  86. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.js +61 -0
  87. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.css +9 -0
  88. package/dist/collection/components/viewer-pin-tool/viewer-pin-tool.js +277 -0
  89. package/dist/collection/components/viewer-transform-widget/__mocks__/widget.js +21 -0
  90. package/dist/collection/components/viewer-transform-widget/util.js +78 -0
  91. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +48 -0
  92. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.js +442 -0
  93. package/dist/collection/components/viewer-transform-widget/widget.js +259 -0
  94. package/dist/collection/lib/cursors.js +11 -1
  95. package/dist/collection/lib/interactions/baseInteractionHandler.js +9 -2
  96. package/dist/collection/lib/interactions/flyToPositionKeyInteraction.js +4 -3
  97. package/dist/collection/lib/interactions/interactionApi.js +21 -1
  98. package/dist/collection/lib/interactions/interactionApiOrthographic.js +18 -1
  99. package/dist/collection/lib/interactions/mouseInteractionHandler.js +4 -4
  100. package/dist/collection/lib/interactions/mouseInteractions.js +24 -1
  101. package/dist/collection/lib/interactions/multiTouchInteractionHandler.js +1 -2
  102. package/dist/collection/lib/interactions/pointerInteractionHandler.js +3 -3
  103. package/dist/collection/lib/mappers/streamAttributes.js +4 -2
  104. package/dist/collection/lib/pins/controller.js +100 -0
  105. package/dist/collection/lib/pins/interactions.js +183 -0
  106. package/dist/collection/lib/pins/model.js +136 -0
  107. package/dist/collection/lib/rendering/canvas.js +6 -28
  108. package/dist/collection/lib/scenes/camera.js +34 -2
  109. package/dist/collection/lib/scenes/colorMaterial.js +8 -8
  110. package/dist/collection/lib/scenes/mapper.js +2 -1
  111. package/dist/collection/lib/scenes/queries.js +6 -4
  112. package/dist/collection/lib/transforms/axis-lines.js +31 -0
  113. package/dist/collection/lib/transforms/axis-rotation.js +34 -0
  114. package/dist/collection/lib/transforms/axis-translation.js +30 -0
  115. package/dist/collection/lib/transforms/controller.js +117 -0
  116. package/dist/collection/lib/transforms/drawable.js +47 -0
  117. package/dist/collection/lib/transforms/hits.js +51 -0
  118. package/dist/collection/lib/transforms/line.js +58 -0
  119. package/dist/collection/lib/transforms/mesh.js +35 -0
  120. package/dist/collection/lib/transforms/shape.js +2 -0
  121. package/dist/collection/lib/transforms/util.js +4 -0
  122. package/dist/collection/lib/types/depthBuffer.js +2 -2
  123. package/dist/collection/lib/types/frameCamera.js +4 -6
  124. package/dist/collection/lib/types/viewport.js +14 -4
  125. package/dist/custom-elements/index.d.ts +30 -0
  126. package/dist/custom-elements/index.js +16835 -335
  127. package/dist/esm/{_commonjsHelpers-9943807e.js → _commonjsHelpers-11ca3be1.js} +20 -1
  128. package/dist/esm/{app-globals-3a04a531.js → app-globals-40df99a0.js} +1 -1
  129. package/dist/esm/{browser.esm-e72d80ad.js → browser.esm-1ddb69c9.js} +1 -1
  130. package/dist/esm/{bundle.esm-8ceccb91.js → bundle.esm-ce2c7ad3.js} +36 -2
  131. package/dist/esm/{config-fb7cd8ff.js → config-7075833a.js} +3 -2
  132. package/dist/esm/{cursors-fc2deed7.js → cursors-98b7d89d.js} +12 -2
  133. package/dist/esm/{dom-2cd18856.js → dom-5b164305.js} +1 -1
  134. package/dist/esm/dom-be140992.js +8 -0
  135. package/dist/esm/elementRectObserver-39cf7b95.js +23 -0
  136. package/dist/esm/{entities-78557270.js → entities-46be90d5.js} +4 -4
  137. package/dist/esm/entities-ce81dd7f.js +41 -0
  138. package/dist/esm/{grpc-web-client.umd-5982b7b0.js → grpc-web-client.umd-5409853c.js} +1 -1
  139. package/dist/esm/{index-10c1495a.js → index-a9fb8318.js} +1 -1
  140. package/dist/esm/{index-455380d0.js → index-e841d91b.js} +1 -1
  141. package/dist/esm/index.js +15 -14
  142. package/dist/esm/index.mjs +15 -14
  143. package/dist/esm/loader.js +4 -4
  144. package/dist/esm/loader.mjs +4 -4
  145. package/dist/esm/{mapper-da36de17.js → mapper-bde6c607.js} +4 -4
  146. package/dist/esm/{markup-c313d99c.js → markup-8904f2fe.js} +2 -2
  147. package/dist/esm/{measurement-544b69d5.js → measurement-3f9b0ae0.js} +2 -2
  148. package/dist/esm/{model-2a34b443.js → model-e54b081f.js} +1 -1
  149. package/dist/esm/model-f679c493.js +241 -0
  150. package/dist/esm/{overlays-354e275c.js → overlays-ea2d45ec.js} +2 -2
  151. package/dist/esm/{png-decoder-07de80d1.js → png-decoder-d4b65417.js} +2 -2
  152. package/dist/esm/{results-4d0c3568.js → results-3b4df2cf.js} +1 -1
  153. package/dist/esm/{scene-2bfcce74.js → scene-22ebacfd.js} +49 -12
  154. package/dist/esm/{stencil-9bf7fb9e.js → stencil-8b20e5a8.js} +5 -2
  155. package/dist/esm/{streamAttributes-d0b384b3.js → streamAttributes-72a92676.js} +1982 -67
  156. package/dist/esm/{utils-3ea0acdd.js → utils-0b980078.js} +1 -1
  157. package/dist/esm/utils-c714e2f7.js +153 -0
  158. package/dist/esm/{utils-e0941c61.js → utils-f11bd6f7.js} +1 -1
  159. package/dist/esm/vertex-scene-tree-search_3.entry.js +16 -6
  160. package/dist/esm/vertex-scene-tree-table-cell.entry.js +16 -14
  161. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  162. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  163. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +3 -3
  164. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  165. package/dist/esm/vertex-scene-tree.entry.js +154 -27
  166. package/dist/esm/vertex-viewer-button_3.entry.js +3 -3
  167. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  168. package/dist/esm/{vertex-viewer-dom-element_3.entry.js → vertex-viewer-dom-element_2.entry.js} +21 -178
  169. package/dist/esm/vertex-viewer-dom-group.entry.js +187 -0
  170. package/dist/esm/vertex-viewer-icon.entry.js +6 -3
  171. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  172. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +8 -155
  173. package/dist/esm/vertex-viewer-markup-tool.entry.js +5 -5
  174. package/dist/esm/vertex-viewer-markup.entry.js +5 -5
  175. package/dist/esm/vertex-viewer-measurement-details.entry.js +8 -7
  176. package/dist/esm/vertex-viewer-measurement-distance.entry.js +16 -15
  177. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +10 -9
  178. package/dist/esm/vertex-viewer-measurement-precise.entry.js +15 -32
  179. package/dist/esm/vertex-viewer-measurement-tool.entry.js +8 -7
  180. package/dist/esm/vertex-viewer-measurements.entry.js +12 -11
  181. package/dist/esm/vertex-viewer-pin-group.entry.js +163 -0
  182. package/dist/esm/vertex-viewer-pin-label_2.entry.js +271 -0
  183. package/dist/esm/vertex-viewer-pin-tool.entry.js +318 -0
  184. package/dist/esm/vertex-viewer-transform-widget.entry.js +13268 -0
  185. package/dist/esm/vertex-viewer-view-cube.entry.js +8 -7
  186. package/dist/esm/vertex-viewer.entry.js +118 -51
  187. package/dist/esm/viewer.js +4 -4
  188. package/dist/esm/{viewport-5cc7b128.js → viewport-e39e2eba.js} +14 -4
  189. package/dist/types/__mocks__/regl-shape.d.ts +5 -0
  190. package/dist/types/__mocks__/regl.d.ts +5 -0
  191. package/dist/types/components/scene-tree/lib/controller.d.ts +13 -1
  192. package/dist/types/components/scene-tree/lib/errors.d.ts +3 -1
  193. package/dist/types/components/scene-tree/lib/viewer-ops.d.ts +1 -0
  194. package/dist/types/components/scene-tree/scene-tree.d.ts +16 -4
  195. package/dist/types/components/scene-tree-table-cell/scene-tree-table-cell.d.ts +6 -2
  196. package/dist/types/components/scene-tree-table-layout/scene-tree-table-layout.d.ts +2 -0
  197. package/dist/types/components/viewer/viewer.d.ts +13 -1
  198. package/dist/types/components/viewer-dom-element/viewer-dom-element.d.ts +10 -2
  199. package/dist/types/components/viewer-dom-group/viewer-dom-group.d.ts +9 -1
  200. package/dist/types/components/viewer-icon/viewer-icon.d.ts +1 -1
  201. package/dist/types/components/viewer-pin-group/pin-renderer.d.ts +8 -0
  202. package/dist/types/components/viewer-pin-group/utils.d.ts +2 -0
  203. package/dist/types/components/viewer-pin-group/viewer-pin-group.d.ts +49 -0
  204. package/dist/types/components/viewer-pin-label/utils.d.ts +1 -0
  205. package/dist/types/components/viewer-pin-label/viewer-pin-label.d.ts +77 -0
  206. package/dist/types/components/viewer-pin-label-line/viewer-pin-label-line.d.ts +7 -0
  207. package/dist/types/components/viewer-pin-tool/viewer-pin-tool.d.ts +68 -0
  208. package/dist/types/components/viewer-transform-widget/__mocks__/widget.d.ts +11 -0
  209. package/dist/types/components/viewer-transform-widget/util.d.ts +5 -0
  210. package/dist/types/components/viewer-transform-widget/viewer-transform-widget.d.ts +81 -0
  211. package/dist/types/components/viewer-transform-widget/widget.d.ts +74 -0
  212. package/dist/types/components.d.ts +303 -12
  213. package/dist/types/interfaces.d.ts +1 -0
  214. package/dist/types/lib/cursors.d.ts +10 -0
  215. package/dist/types/lib/interactions/baseInteractionHandler.d.ts +4 -3
  216. package/dist/types/lib/interactions/interactionApi.d.ts +10 -1
  217. package/dist/types/lib/interactions/interactionApiOrthographic.d.ts +7 -0
  218. package/dist/types/lib/interactions/mouseInteractionHandler.d.ts +2 -2
  219. package/dist/types/lib/interactions/mouseInteractions.d.ts +6 -0
  220. package/dist/types/lib/pins/controller.d.ts +70 -0
  221. package/dist/types/lib/pins/interactions.d.ts +30 -0
  222. package/dist/types/lib/pins/model.d.ts +104 -0
  223. package/dist/types/lib/rendering/canvas.d.ts +1 -2
  224. package/dist/types/lib/scenes/camera.d.ts +10 -0
  225. package/dist/types/lib/scenes/colorMaterial.d.ts +1 -0
  226. package/dist/types/lib/scenes/queries.d.ts +4 -2
  227. package/dist/types/lib/transforms/axis-lines.d.ts +6 -0
  228. package/dist/types/lib/transforms/axis-rotation.d.ts +6 -0
  229. package/dist/types/lib/transforms/axis-translation.d.ts +6 -0
  230. package/dist/types/lib/transforms/controller.d.ts +17 -0
  231. package/dist/types/lib/transforms/drawable.d.ts +26 -0
  232. package/dist/types/lib/transforms/hits.d.ts +10 -0
  233. package/dist/types/lib/transforms/line.d.ts +31 -0
  234. package/dist/types/lib/transforms/mesh.d.ts +23 -0
  235. package/dist/types/lib/transforms/shape.d.ts +3 -0
  236. package/dist/types/lib/transforms/util.d.ts +2 -0
  237. package/dist/types/lib/types/frameCamera.d.ts +1 -0
  238. package/dist/types/lib/types/viewport.d.ts +8 -0
  239. package/dist/types/regl-shape.d.ts +26 -0
  240. package/dist/viewer/index.esm.js +1 -1
  241. package/dist/viewer/p-058632f4.js +4 -0
  242. package/dist/viewer/p-07aeee89.js +10 -0
  243. package/dist/viewer/{p-e75bba97.js → p-083f427e.js} +1 -1
  244. package/dist/viewer/{p-a455ae02.entry.js → p-08eda2b2.entry.js} +1 -1
  245. package/dist/viewer/{p-bcb66f97.js → p-096e60bd.js} +1 -1
  246. package/dist/viewer/p-0bc4b3f7.js +4 -0
  247. package/dist/viewer/p-148c5f1a.js +4 -0
  248. package/dist/viewer/p-1db9bd1a.entry.js +4 -0
  249. package/dist/viewer/{p-70ca1ea7.entry.js → p-1f251549.entry.js} +1 -1
  250. package/dist/viewer/p-29986489.js +4 -0
  251. package/dist/viewer/{p-cafa57a6.js → p-2e581b2a.js} +1 -1
  252. package/dist/viewer/{p-d2bcf788.entry.js → p-33daeb09.entry.js} +1 -1
  253. package/dist/viewer/p-39803f8f.js +4 -0
  254. package/dist/viewer/p-465a92d9.entry.js +4 -0
  255. package/dist/viewer/p-4a65ddb3.entry.js +4 -0
  256. package/dist/viewer/{p-099fe6ca.entry.js → p-4aaf02b4.entry.js} +1 -1
  257. package/dist/viewer/{p-31658489.entry.js → p-4c3a3738.entry.js} +1 -1
  258. package/dist/viewer/{p-e38458da.js → p-4d37d97c.js} +1 -1
  259. package/dist/viewer/p-4fdf8553.entry.js +4 -0
  260. package/dist/viewer/p-5679f46b.entry.js +4 -0
  261. package/dist/viewer/p-5809b400.js +4 -0
  262. package/dist/viewer/{p-fa9a0bed.js → p-58dacdce.js} +1 -1
  263. package/dist/viewer/p-61a042f0.entry.js +4 -0
  264. package/dist/viewer/{p-b8774c9c.js → p-6c377932.js} +1 -1
  265. package/dist/viewer/p-6d379d4a.js +4 -0
  266. package/dist/viewer/p-6d70b198.entry.js +4 -0
  267. package/dist/viewer/p-6e7e094a.entry.js +4 -0
  268. package/dist/viewer/{p-661f0612.js → p-70e5e8a8.js} +1 -1
  269. package/dist/viewer/p-74102b29.entry.js +32 -0
  270. package/dist/viewer/p-7a5a9a93.entry.js +4 -0
  271. package/dist/viewer/p-7c755e0e.entry.js +4 -0
  272. package/dist/viewer/{p-3a20a038.js → p-92fe4417.js} +1 -1
  273. package/dist/viewer/{p-7e0328aa.js → p-98e6a50e.js} +1 -1
  274. package/dist/viewer/{p-388a43f7.js → p-990f98c2.js} +1 -1
  275. package/dist/viewer/{p-487e054a.js → p-99352cf0.js} +1 -1
  276. package/dist/viewer/{p-1ca95f9a.entry.js → p-99799a71.entry.js} +1 -1
  277. package/dist/viewer/p-9acd1b44.js +4 -0
  278. package/dist/viewer/{p-69058178.js → p-9bcde9c8.js} +1 -1
  279. package/dist/viewer/{p-5b342e97.js → p-a2ef15e5.js} +1 -1
  280. package/dist/viewer/{p-61b1097b.entry.js → p-a32cc378.entry.js} +1 -1
  281. package/dist/viewer/p-a380f0c2.js +4 -0
  282. package/dist/viewer/{p-41028d3b.entry.js → p-af37b63e.entry.js} +1 -1
  283. package/dist/viewer/p-b6b727a6.entry.js +4 -0
  284. package/dist/viewer/p-c2e3312b.js +4 -0
  285. package/dist/viewer/{p-4717c98e.entry.js → p-c9f91798.entry.js} +1 -1
  286. package/dist/viewer/p-ca518dcb.entry.js +4 -0
  287. package/dist/viewer/p-d828fd18.entry.js +4 -0
  288. package/dist/viewer/p-d996b1d2.entry.js +4 -0
  289. package/dist/viewer/{p-3f0f83ad.js → p-db01460a.js} +1 -1
  290. package/dist/viewer/p-db716103.entry.js +4 -0
  291. package/dist/viewer/p-df8fbe56.js +4 -0
  292. package/dist/viewer/p-dfe5a97d.js +4 -0
  293. package/dist/viewer/p-e42cb163.js +4 -0
  294. package/dist/viewer/p-eb8e5db5.js +4 -0
  295. package/dist/viewer/{p-46459921.entry.js → p-ebb801c3.entry.js} +1 -1
  296. package/dist/viewer/p-ebd85d58.entry.js +4 -0
  297. package/dist/viewer/p-eefae62a.entry.js +4 -0
  298. package/dist/viewer/viewer.esm.js +1 -1
  299. package/package.json +12 -10
  300. package/readme.md +4 -4
  301. package/dist/viewer/p-0a189e62.entry.js +0 -4
  302. package/dist/viewer/p-112455b1.js +0 -4
  303. package/dist/viewer/p-3561d910.js +0 -4
  304. package/dist/viewer/p-49d36e94.entry.js +0 -4
  305. package/dist/viewer/p-73a5eacc.entry.js +0 -4
  306. package/dist/viewer/p-77be081a.js +0 -4
  307. package/dist/viewer/p-809d09d9.js +0 -4
  308. package/dist/viewer/p-858bd2c7.entry.js +0 -4
  309. package/dist/viewer/p-89b66838.entry.js +0 -32
  310. package/dist/viewer/p-90bb0a1f.entry.js +0 -4
  311. package/dist/viewer/p-a93a63a9.js +0 -4
  312. package/dist/viewer/p-b043b076.entry.js +0 -4
  313. package/dist/viewer/p-b0ac6b3c.entry.js +0 -4
  314. package/dist/viewer/p-bcde5521.entry.js +0 -4
  315. package/dist/viewer/p-d1584404.js +0 -4
  316. package/dist/viewer/p-d32b54cb.js +0 -4
  317. package/dist/viewer/p-d3a20af4.entry.js +0 -4
  318. package/dist/viewer/p-d9f99f4d.entry.js +0 -4
  319. package/dist/viewer/p-ebd55df7.entry.js +0 -4
  320. package/dist/viewer/p-f0411993.entry.js +0 -4
  321. package/dist/viewer/p-f482325b.js +0 -10
  322. package/dist/viewer/p-fad9693e.js +0 -4
  323. package/dist/viewer/p-ffdeb08c.js +0 -4
@@ -5,14 +5,15 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-e100709a.js');
9
- const bundle_esm = require('./bundle.esm-618a5fe9.js');
10
- const _commonjsHelpers = require('./_commonjsHelpers-537d719a.js');
11
- const grpcWebClient_umd = require('./grpc-web-client.umd-60a79aae.js');
12
- const config = require('./config-fb124bac.js');
13
- const browser_esm = require('./browser.esm-075810bf.js');
8
+ const index = require('./index-4138aa2c.js');
9
+ const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
+ const _commonjsHelpers = require('./_commonjsHelpers-dcc4cf71.js');
11
+ const grpcWebClient_umd = require('./grpc-web-client.umd-2af20c1b.js');
12
+ const config = require('./config-c63caa4f.js');
13
+ const browser_esm = require('./browser.esm-0bcdc581.js');
14
14
  const dom = require('./dom-d162f898.js');
15
- require('./streamAttributes-81eb52f2.js');
15
+ require('./streamAttributes-c343bdc8.js');
16
+ require('./entities-9eb7e608.js');
16
17
 
17
18
  window.requestIdleCallback =
18
19
  window.requestIdleCallback ||
@@ -4352,7 +4353,8 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.toObject = function(in
4352
4353
  var obj = {
4353
4354
  filter: grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(msg, 1, ""),
4354
4355
  fullTree: grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(msg, 2, false),
4355
- columnsKeysList: grpcWebClient_umd.googleProtobuf.Message.getRepeatedField(msg, 3)
4356
+ columnsKeysList: grpcWebClient_umd.googleProtobuf.Message.getRepeatedField(msg, 3),
4357
+ exactMatch: grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(msg, 4, false)
4356
4358
  };
4357
4359
 
4358
4360
  if (includeInstance) {
@@ -4401,6 +4403,10 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.deserializeBinaryFromR
4401
4403
  var value = /** @type {string} */ (reader.readString());
4402
4404
  msg.addColumnsKeys(value);
4403
4405
  break;
4406
+ case 4:
4407
+ var value = /** @type {boolean} */ (reader.readBool());
4408
+ msg.setExactMatch(value);
4409
+ break;
4404
4410
  default:
4405
4411
  reader.skipField();
4406
4412
  break;
@@ -4451,6 +4457,13 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.serializeBinaryToWrite
4451
4457
  f
4452
4458
  );
4453
4459
  }
4460
+ f = message.getExactMatch();
4461
+ if (f) {
4462
+ writer.writeBool(
4463
+ 4,
4464
+ f
4465
+ );
4466
+ }
4454
4467
  };
4455
4468
 
4456
4469
 
@@ -4515,6 +4528,23 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.clearColumns
4515
4528
  };
4516
4529
 
4517
4530
 
4531
+ /**
4532
+ * optional bool exact_match = 4;
4533
+ * Note that Boolean fields may be set to 0/1 when serialized from a Java server.
4534
+ * You should avoid comparisons like {@code val === true/false} in those cases.
4535
+ * @return {boolean}
4536
+ */
4537
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.getExactMatch = function() {
4538
+ return /** @type {boolean} */ (grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(this, 4, false));
4539
+ };
4540
+
4541
+
4542
+ /** @param {boolean} value */
4543
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterRequest.prototype.setExactMatch = function(value) {
4544
+ grpcWebClient_umd.googleProtobuf.Message.setProto3BooleanField(this, 4, value);
4545
+ };
4546
+
4547
+
4518
4548
 
4519
4549
  /**
4520
4550
  * Generated by JsPbCodeGenerator.
@@ -4562,7 +4592,7 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.toObject =
4562
4592
  */
4563
4593
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.toObject = function(includeInstance, msg) {
4564
4594
  var obj = {
4565
-
4595
+ numberOfResults: grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(msg, 1, 0)
4566
4596
  };
4567
4597
 
4568
4598
  if (includeInstance) {
@@ -4599,6 +4629,10 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.deserializeBinaryFrom
4599
4629
  }
4600
4630
  var field = reader.getFieldNumber();
4601
4631
  switch (field) {
4632
+ case 1:
4633
+ var value = /** @type {number} */ (reader.readUint32());
4634
+ msg.setNumberOfResults(value);
4635
+ break;
4602
4636
  default:
4603
4637
  reader.skipField();
4604
4638
  break;
@@ -4627,6 +4661,29 @@ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.serializeBi
4627
4661
  * @suppress {unusedLocalVariables} f is only used for nested messages
4628
4662
  */
4629
4663
  proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.serializeBinaryToWriter = function(message, writer) {
4664
+ var f = undefined;
4665
+ f = message.getNumberOfResults();
4666
+ if (f !== 0) {
4667
+ writer.writeUint32(
4668
+ 1,
4669
+ f
4670
+ );
4671
+ }
4672
+ };
4673
+
4674
+
4675
+ /**
4676
+ * optional uint32 number_of_results = 1;
4677
+ * @return {number}
4678
+ */
4679
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.getNumberOfResults = function() {
4680
+ return /** @type {number} */ (grpcWebClient_umd.googleProtobuf.Message.getFieldWithDefault(this, 1, 0));
4681
+ };
4682
+
4683
+
4684
+ /** @param {number} value */
4685
+ proto.vertexvis.protobuf.scenetree.v1alpha1.FilterResponse.prototype.setNumberOfResults = function(value) {
4686
+ grpcWebClient_umd.googleProtobuf.Message.setProto3IntField(this, 1, value);
4630
4687
  };
4631
4688
 
4632
4689
 
@@ -6499,6 +6556,8 @@ var SceneTreeErrorCode;
6499
6556
  (function (SceneTreeErrorCode) {
6500
6557
  SceneTreeErrorCode[SceneTreeErrorCode["UNKNOWN"] = 0] = "UNKNOWN";
6501
6558
  SceneTreeErrorCode[SceneTreeErrorCode["SCENE_TREE_DISABLED"] = 1] = "SCENE_TREE_DISABLED";
6559
+ SceneTreeErrorCode[SceneTreeErrorCode["MISSING_VIEWER"] = 2] = "MISSING_VIEWER";
6560
+ SceneTreeErrorCode[SceneTreeErrorCode["DISCONNECTED"] = 3] = "DISCONNECTED";
6502
6561
  })(SceneTreeErrorCode || (SceneTreeErrorCode = {}));
6503
6562
  class SceneTreeErrorDetails {
6504
6563
  constructor(code, link) {
@@ -6513,6 +6572,10 @@ function getSceneTreeErrorMessage(code) {
6513
6572
  return 'An unknown error occurred.';
6514
6573
  case SceneTreeErrorCode.SCENE_TREE_DISABLED:
6515
6574
  return 'The tree for this scene is not enabled. Enable the tree for this scene to interact with the tree.';
6575
+ case SceneTreeErrorCode.MISSING_VIEWER:
6576
+ return 'Could not find reference to the viewer';
6577
+ case SceneTreeErrorCode.DISCONNECTED:
6578
+ return 'Disconnected from server.';
6516
6579
  }
6517
6580
  }
6518
6581
 
@@ -6589,6 +6652,15 @@ class SceneTreeController {
6589
6652
  get isConnected() {
6590
6653
  return this.state.connection.type === 'connected';
6591
6654
  }
6655
+ /**
6656
+ * Registers an event listener that will be invoked when the state changes
6657
+ *
6658
+ * @param listener The listener to add.
6659
+ * @returns A disposable that can be used to remove the listener.
6660
+ */
6661
+ stateChanged(listener) {
6662
+ return this.onStateChange.on(listener);
6663
+ }
6592
6664
  async connect(jwtProvider) {
6593
6665
  const { connection } = this.state;
6594
6666
  const jwt = jwtProvider();
@@ -6846,16 +6918,19 @@ class SceneTreeController {
6846
6918
  * @param options The options to apply to the filter.
6847
6919
  */
6848
6920
  async filter(term, options = {}) {
6849
- await this.ifConnectionHasJwt((jwt) => {
6850
- return this.requestUnary(jwt, (metadata, handler) => {
6921
+ return this.ifConnectionHasJwt(async (jwt) => {
6922
+ const res = await this.requestUnary(jwt, (metadata, handler) => {
6851
6923
  var _a;
6852
6924
  const req = new scene_tree_api_pb.FilterRequest();
6853
6925
  req.setFilter(term);
6854
- req.setFullTree(((_a = options.includeCollapsed) !== null && _a !== void 0 ? _a : true) === true);
6926
+ req.setFullTree((_a = options.includeCollapsed) !== null && _a !== void 0 ? _a : true);
6927
+ req.setExactMatch(!!options.exactMatch);
6855
6928
  if (options.columns)
6856
6929
  req.setColumnsKeysList(options.columns);
6857
6930
  this.client.filter(req, metadata, handler);
6858
6931
  });
6932
+ const { numberOfResults } = res.toObject();
6933
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalFilteredRows: numberOfResults }));
6859
6934
  });
6860
6935
  }
6861
6936
  /**
@@ -7022,7 +7097,7 @@ class SceneTreeController {
7022
7097
  const end = this.state.rows.slice(start.length + fetchedRows.length, totalRows);
7023
7098
  const fill = new Array(Math.max(0, totalRows - start.length - fetchedRows.length - end.length));
7024
7099
  const rows = [...start, ...fetchedRows, ...end, ...fill];
7025
- this.updateState(Object.assign(Object.assign({}, this.state), { totalRows, rows }));
7100
+ this.updateState(Object.assign(Object.assign({}, this.state), { totalRows: totalRows, rows: rows }));
7026
7101
  }
7027
7102
  }
7028
7103
  catch (e) {
@@ -7170,6 +7245,17 @@ async function selectRangeInSceneTree(viewer, start, end, { material, append = t
7170
7245
  ])
7171
7246
  .execute();
7172
7247
  }
7248
+ async function selectFilterResults(viewer, filter, keys, exactMatch, { material = undefined, append = false }) {
7249
+ const scene = await viewer.scene();
7250
+ return scene
7251
+ .items((op) => [
7252
+ ...(append ? [] : [op.where((q) => q.all()).deselect()]),
7253
+ op
7254
+ .where((q) => q.withMetadata(filter, keys, exactMatch))
7255
+ .select(material),
7256
+ ])
7257
+ .execute();
7258
+ }
7173
7259
  async function deselectItem(viewer, id) {
7174
7260
  const scene = await viewer.scene();
7175
7261
  return scene
@@ -7203,10 +7289,13 @@ let SceneTree = class {
7203
7289
  */
7204
7290
  this.configEnv = 'platprod';
7205
7291
  /**
7206
- * Temporary flag to indicate whether metadata should be used when filtering
7207
- * as opposed to just the name of the item.
7292
+ * Indicates whether the metadata search should use an exact match.
7208
7293
  */
7209
- this.filterOnMetadata = false;
7294
+ this.metadataSearchExactMatch = false;
7295
+ /**
7296
+ * A list of the metadata keys that a scene tree search should be performed on.
7297
+ */
7298
+ this.metadataSearchKeys = [];
7210
7299
  /**
7211
7300
  * A list of part metadata keys that will be made available to each row. This
7212
7301
  * metadata can be used for data binding inside the scene tree's template.
@@ -7457,7 +7546,7 @@ let SceneTree = class {
7457
7546
  async getRowForEvent(event) {
7458
7547
  const { clientY, target } = event;
7459
7548
  if (target != null &&
7460
- this.connectionErrorDetails == null &&
7549
+ this.errorDetails == null &&
7461
7550
  dom.getSceneTreeContainsElement(this.el, target) &&
7462
7551
  isSceneTreeTableCellElement(target)) {
7463
7552
  return this.getRowAtClientY(clientY);
@@ -7492,6 +7581,23 @@ let SceneTree = class {
7492
7581
  var _a;
7493
7582
  return (_a = this.controller) === null || _a === void 0 ? void 0 : _a.filter(term, options);
7494
7583
  }
7584
+ /**
7585
+ * Performs an async request that will select the filtered items in the tree
7586
+ * that match the given term.
7587
+ *
7588
+ * @param term The filter term.
7589
+ * @returns A promise that completes when the request has completed.
7590
+ */
7591
+ async selectFilteredItems(term) {
7592
+ if (this.viewer != null) {
7593
+ const columnsToSearch = this.metadataSearchKeys.length > 0
7594
+ ? this.metadataSearchKeys
7595
+ : this.metadataKeys;
7596
+ await selectFilterResults(this.viewer, term, columnsToSearch, this.metadataSearchExactMatch, {
7597
+ append: false,
7598
+ });
7599
+ }
7600
+ }
7495
7601
  /**
7496
7602
  * Fetches the metadata keys that are available to the scene tree. Metadata
7497
7603
  * keys can be assigned to the scene tree using the `metadataKeys` property.
@@ -7515,9 +7621,6 @@ let SceneTree = class {
7515
7621
  * @ignore
7516
7622
  */
7517
7623
  componentWillLoad() {
7518
- if (this.viewerSelector != null) {
7519
- this.viewer = document.querySelector(this.viewerSelector);
7520
- }
7521
7624
  if (this.controller == null) {
7522
7625
  const { sceneTreeHost } = this.getConfig().network;
7523
7626
  const client = new SceneTreeAPIClient_1(sceneTreeHost);
@@ -7532,6 +7635,7 @@ let SceneTree = class {
7532
7635
  async componentDidLoad() {
7533
7636
  var _a;
7534
7637
  this.ensureLayoutDefined();
7638
+ this.updateLayoutElement();
7535
7639
  const layoutEl = this.getLayoutElement();
7536
7640
  const resizeObserver = new ResizeObserver(() => {
7537
7641
  this.invalidateRows();
@@ -7540,16 +7644,23 @@ let SceneTree = class {
7540
7644
  this.stateMap.resizeObserver = resizeObserver;
7541
7645
  this.stateMap.componentLoaded = true;
7542
7646
  (_a = this.controller) === null || _a === void 0 ? void 0 : _a.setMetadataKeys(this.metadataKeys);
7647
+ if (this.viewer == null) {
7648
+ this.errorDetails = new SceneTreeErrorDetails(SceneTreeErrorCode.MISSING_VIEWER);
7649
+ }
7650
+ }
7651
+ componentWillRender() {
7652
+ // The controller can load data prior to the first render
7653
+ // ensure that this renders any time the state changes.
7654
+ this.updateLayoutElement();
7543
7655
  }
7544
7656
  /**
7545
7657
  * @ignore
7546
7658
  */
7547
7659
  render() {
7548
- return (index.h(index.Host, null, index.h("div", { class: "header" }, index.h("slot", { name: "header" }, index.h("vertex-scene-tree-toolbar", { class: "search-toolbar" }, index.h("vertex-scene-tree-search", null)))), this.connectionErrorDetails != null &&
7549
- this.renderError(this.connectionErrorDetails), this.connectionErrorDetails == null && (index.h("div", { class: "rows-scroll" }, index.h("slot", null))), index.h("div", { class: "footer" }, index.h("slot", { name: "footer" }))));
7660
+ return (index.h(index.Host, null, index.h("div", { class: "header" }, index.h("slot", { name: "header" }, index.h("vertex-scene-tree-toolbar", { class: "search-toolbar" }, index.h("vertex-scene-tree-search", null)))), this.errorDetails != null && this.renderError(this.errorDetails), this.errorDetails == null && (index.h("div", { class: "rows-scroll" }, index.h("slot", null))), index.h("div", { class: "footer" }, index.h("slot", { name: "footer" }))));
7550
7661
  }
7551
7662
  renderError(details) {
7552
- if (details.code === SceneTreeErrorCode.UNKNOWN) {
7663
+ if (details.code !== SceneTreeErrorCode.SCENE_TREE_DISABLED) {
7553
7664
  return (index.h(SceneTreeError, { details: details }, index.h("button", { class: "button button-secondary", onClick: () => this.retryConnectToViewer(), disabled: this.attemptingRetry }, "Retry")));
7554
7665
  }
7555
7666
  else {
@@ -7594,14 +7705,21 @@ let SceneTree = class {
7594
7705
  }
7595
7706
  retryConnectToViewer() {
7596
7707
  this.attemptingRetry = true;
7708
+ this.errorDetails = undefined;
7597
7709
  this.connectToViewer();
7598
7710
  }
7599
7711
  connectToViewer() {
7600
7712
  var _a, _b;
7601
7713
  (_a = this.stateMap.viewerDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
7714
+ if (this.viewer == null && this.viewerSelector != null) {
7715
+ this.viewer = document.querySelector(this.viewerSelector);
7716
+ }
7602
7717
  if (this.viewer != null) {
7603
7718
  this.stateMap.viewerDisposable = (_b = this.controller) === null || _b === void 0 ? void 0 : _b.connectToViewer(this.viewer);
7604
7719
  }
7720
+ else {
7721
+ this.attemptingRetry = false;
7722
+ }
7605
7723
  }
7606
7724
  scheduleClearUnusedData() {
7607
7725
  if (this.stateMap.idleCallbackId != null) {
@@ -7627,13 +7745,15 @@ let SceneTree = class {
7627
7745
  handleControllerStateChange(state) {
7628
7746
  this.rows = state.rows;
7629
7747
  this.totalRows = state.totalRows;
7630
- this.updateLayoutElement();
7631
7748
  if (state.connection.type === 'failure') {
7632
- this.connectionErrorDetails = state.connection.details;
7749
+ this.errorDetails = state.connection.details;
7633
7750
  this.connectionError.emit(state.connection.details);
7634
7751
  }
7752
+ else if (state.connection.type === 'disconnected') {
7753
+ this.errorDetails = new SceneTreeErrorDetails(SceneTreeErrorCode.DISCONNECTED);
7754
+ }
7635
7755
  else {
7636
- this.connectionErrorDetails = undefined;
7756
+ this.errorDetails = undefined;
7637
7757
  }
7638
7758
  if (state.connection.type === 'connected' ||
7639
7759
  state.connection.type === 'failure') {
@@ -7655,8 +7775,12 @@ let SceneTree = class {
7655
7775
  await op({ viewer: this.viewer, id: node.id.hex, node });
7656
7776
  }
7657
7777
  handleSearch(event) {
7778
+ const columnsToSearch = this.metadataSearchKeys.length > 0
7779
+ ? this.metadataSearchKeys
7780
+ : this.metadataKeys;
7658
7781
  this.filterItems(event.detail, {
7659
- columns: this.filterOnMetadata ? this.metadataKeys : undefined,
7782
+ columns: columnsToSearch,
7783
+ exactMatch: this.metadataSearchExactMatch,
7660
7784
  });
7661
7785
  }
7662
7786
  getScrollToPosition(index, position) {
@@ -7704,6 +7828,9 @@ let SceneTree = class {
7704
7828
  layout.controller = this.controller;
7705
7829
  layout.rowData = this.rowData;
7706
7830
  }
7831
+ else if (!this.stateMap.componentLoaded && this.totalRows > 0) {
7832
+ console.debug('Scene tree has rows, but the component has not yet rendered');
7833
+ }
7707
7834
  }
7708
7835
  getLayoutElement() {
7709
7836
  if (this.stateMap.layoutEl != null) {
@@ -5,9 +5,9 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-e100709a.js');
9
- const index$1 = require('./index-3bc6bac0.js');
10
- require('./_commonjsHelpers-537d719a.js');
8
+ const index = require('./index-4138aa2c.js');
9
+ const index$1 = require('./index-b9d13137.js');
10
+ require('./_commonjsHelpers-dcc4cf71.js');
11
11
 
12
12
  const viewerButtonCss = ":host{cursor:pointer}.viewer-button{align-items:center;background:none;border:none;color:inherit;cursor:inherit;display:flex;padding:0}";
13
13
 
@@ -5,7 +5,7 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-e100709a.js');
8
+ const index = require('./index-4138aa2c.js');
9
9
 
10
10
  const viewerDefaultToolbarCss = ":host{--viewer-toolbar-group-gap:0.5rem;--viewer-toolbar-group-background:rgba(245, 245, 245, 0.95);--viewer-toolbar-group-border-radius:0.25rem;--viewer-toolbar-group-box-shadow:-1px 0 2px rgba(0, 0, 0, 0.12),\n 1px 0 2px rgba(0, 0, 0, 0.13);--viewer-toolbar-group-padding:0.25rem;--viewer-toolbar-group-item-gap:0.25rem}.group{background:var(--viewer-toolbar-group-background);border-radius:var(--viewer-toolbar-group-border-radius);box-shadow:var(--viewer-toolbar-group-box-shadow);padding:var(--viewer-toolbar-group-padding)}.group[data-direction='horizontal']:not(:first-child){margin-left:var(--viewer-toolbar-group-gap)}.group[data-direction='horizontal'] .group-item:not(:first-child){margin-left:var(--viewer-toolbar-group-item-gap)}.group[data-direction='vertical']:not(:first-child){margin-top:var(--viewer-toolbar-group-gap)}.group[data-direction='vertical'] .group-item:not(:first-child){margin-top:var(--viewer-toolbar-group-item-gap)}.btn{color:var(--neutral-800);padding:0.125rem;border-radius:0.125rem}.btn:hover{background:var(--neutral-300)}";
11
11
 
@@ -5,18 +5,20 @@
5
5
 
6
6
  Object.defineProperty(exports, '__esModule', { value: true });
7
7
 
8
- const index = require('./index-e100709a.js');
9
- const bundle_esm = require('./bundle.esm-618a5fe9.js');
10
- require('./streamAttributes-81eb52f2.js');
11
- const viewport = require('./viewport-54b1389d.js');
12
- require('./browser.esm-075810bf.js');
13
- require('./_commonjsHelpers-537d719a.js');
8
+ const index = require('./index-4138aa2c.js');
9
+ const bundle_esm = require('./bundle.esm-22b6f2d6.js');
10
+ const browser_esm = require('./browser.esm-0bcdc581.js');
11
+ require('./streamAttributes-c343bdc8.js');
12
+ require('./entities-9eb7e608.js');
13
+ const viewport = require('./viewport-5ca619f7.js');
14
+ require('./_commonjsHelpers-dcc4cf71.js');
14
15
 
15
16
  const viewerDomElementCss = ":host{position:absolute;pointer-events:none}:host(:not([interactions-off]))>*{pointer-events:auto}";
16
17
 
17
18
  let ViewerDomElement = class {
18
19
  constructor(hostRef) {
19
20
  index.registerInstance(this, hostRef);
21
+ this.propertyChange = index.createEvent(this, "propertyChange", 7);
20
22
  /**
21
23
  * The local 3D position of where this element is located.
22
24
  */
@@ -32,7 +34,7 @@ let ViewerDomElement = class {
32
34
  */
33
35
  this.quaternion = bundle_esm.quaternion.create();
34
36
  /**
35
- * The local rotation of this element, as a JSON string. JSON
37
+ * The local quaternion rotation of this element, as a JSON string. JSON
36
38
  * representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z":
37
39
  * 0, "w": 1}`.
38
40
  */
@@ -135,183 +137,22 @@ let ViewerDomElement = class {
135
137
  /**
136
138
  * @ignore
137
139
  */
138
- connectedCallback() {
139
- this.syncProperties();
140
- }
141
- /**
142
- * @ignore
143
- */
144
- componentShouldUpdate(newValue, oldValue, prop) {
145
- return prop === 'occluded';
146
- }
147
- syncProperties() {
148
- this.syncPosition();
149
- this.syncRotation();
150
- this.syncQuaternion();
151
- this.syncScale();
152
- this.syncMatrix();
153
- }
154
- syncPosition() {
155
- this.position =
156
- this.positionJson.length > 0
157
- ? this.parseJson('positionJson', this.positionJson, bundle_esm.vector3.fromJson)
158
- : this.position;
159
- }
160
- syncRotation() {
161
- this.rotation =
162
- this.rotationJson != null && this.rotationJson.length > 0
163
- ? this.parseJson('rotationJson', this.rotationJson, bundle_esm.euler.fromJson)
164
- : this.rotation;
165
- this.syncQuaternionWithRotation();
166
- }
167
- syncQuaternionWithRotation() {
168
- this.quaternion =
169
- this.rotation != null
170
- ? bundle_esm.quaternion.fromEuler(this.rotation)
171
- : this.quaternion;
172
- }
173
- syncQuaternion() {
174
- this.quaternion =
175
- this.quaternionJson.length > 0
176
- ? this.parseJson('quaternionJson', this.quaternionJson, bundle_esm.quaternion.fromJson)
177
- : this.quaternion;
178
- }
179
- syncScale() {
180
- this.scale =
181
- this.scaleJson.length > 0
182
- ? this.parseJson('scaleJson', this.scaleJson, bundle_esm.vector3.fromJson)
183
- : this.scale;
184
- }
185
- syncMatrix() {
186
- this.matrix = bundle_esm.matrix4.makeTRS(this.position, this.quaternion, this.scale);
187
- }
188
- parseJson(propName, value, parse) {
189
- try {
190
- return parse(value);
191
- }
192
- catch (e) {
193
- console.warn(`Could not parse \`${propName}\`. Invalid JSON.`);
194
- throw e;
140
+ handleMatrixChanged(newMatrix, oldMatrix) {
141
+ if (!browser_esm.objects.isEqual(newMatrix, oldMatrix)) {
142
+ this.propertyChange.emit();
195
143
  }
196
144
  }
197
145
  /**
198
146
  * @ignore
199
147
  */
200
- render() {
201
- return (index.h(index.Host, null, index.h("slot", null)));
202
- }
203
- static get watchers() { return {
204
- "position": ["handlePositionChange"],
205
- "positionJson": ["handlePositionJsonChanged"],
206
- "rotation": ["handleRotationChanged"],
207
- "rotationJson": ["handleRotationJsonChanged"],
208
- "quaternion": ["handleQuaternionChange"],
209
- "quaternionJson": ["handleQuaternionJsonChanged"],
210
- "scale": ["handleScaleChange"],
211
- "scaleJson": ["handleScaleJsonChanged"]
212
- }; }
213
- };
214
- ViewerDomElement.style = viewerDomElementCss;
215
-
216
- const viewerDomGroupCss = ":host{display:block;transform-style:preserve-3d}";
217
-
218
- let ViewerDomGroup = class {
219
- constructor(hostRef) {
220
- index.registerInstance(this, hostRef);
221
- /**
222
- * The local 3D position of where this element is located.
223
- */
224
- this.position = bundle_esm.vector3.origin();
225
- /**
226
- * The local 3D position of where this element is located, as a JSON string.
227
- * JSON representation can either be in the format of `[x, y, z]` or `{"x": 0,
228
- * "y": 0, "z": 0}`.
229
- */
230
- this.positionJson = '';
231
- /**
232
- * The local rotation of this element.
233
- */
234
- this.quaternion = bundle_esm.quaternion.create();
235
- /**
236
- * The local rotation of this element, as a JSON string. JSON
237
- * representation can either be `[x, y, z, w]` or `{"x": 0, "y": 0, "z":
238
- * 0, "w": 1}`.
239
- */
240
- this.quaternionJson = '';
241
- /**
242
- * The local scale of this element.
243
- */
244
- this.scale = bundle_esm.vector3.create(1, 1, 1);
245
- /**
246
- * The local scale of this element, as a JSON string. JSON string
247
- * representation can either be in the format of `[x, y, z]` or `{"x": 0, "y":
248
- * 0, "z": 0}`.
249
- */
250
- this.scaleJson = '';
251
- /**
252
- * The local matrix of this element.
253
- */
254
- this.matrix = bundle_esm.matrix4.makeIdentity();
255
- }
256
- /**
257
- * @ignore
258
- */
259
- handlePositionChange() {
260
- this.syncMatrix();
261
- }
262
- /**
263
- * @ignore
264
- */
265
- handlePositionJsonChanged() {
266
- this.syncPosition();
267
- }
268
- /**
269
- * @ignore
270
- */
271
- handleRotationChanged() {
272
- this.syncQuaternionWithRotation();
273
- }
274
- /**
275
- * @ignore
276
- */
277
- handleRotationJsonChanged() {
278
- this.syncRotation();
279
- }
280
- /**
281
- * @ignore
282
- */
283
- handleQuaternionChange() {
284
- this.syncMatrix();
285
- }
286
- /**
287
- * @ignore
288
- */
289
- handleQuaternionJsonChanged() {
290
- this.syncQuaternion();
291
- }
292
- /**
293
- * @ignore
294
- */
295
- handleScaleChange() {
296
- this.syncMatrix();
297
- }
298
- /**
299
- * @ignore
300
- */
301
- handleScaleJsonChanged() {
302
- this.syncScale();
303
- }
304
- /**
305
- * @ignore
306
- */
307
- componentWillLoad() {
148
+ connectedCallback() {
308
149
  this.syncProperties();
309
150
  }
310
151
  /**
311
152
  * @ignore
312
153
  */
313
- componentShouldUpdate() {
314
- return false;
154
+ componentShouldUpdate(newValue, oldValue, prop) {
155
+ return prop === 'occluded';
315
156
  }
316
157
  syncProperties() {
317
158
  this.syncPosition();
@@ -377,17 +218,19 @@ let ViewerDomGroup = class {
377
218
  "quaternion": ["handleQuaternionChange"],
378
219
  "quaternionJson": ["handleQuaternionJsonChanged"],
379
220
  "scale": ["handleScaleChange"],
380
- "scaleJson": ["handleScaleJsonChanged"]
221
+ "scaleJson": ["handleScaleJsonChanged"],
222
+ "matrix": ["handleMatrixChanged"]
381
223
  }; }
382
224
  };
383
- ViewerDomGroup.style = viewerDomGroupCss;
225
+ ViewerDomElement.style = viewerDomElementCss;
384
226
 
385
227
  function isVertexViewerDomElement(el) {
386
228
  return (el instanceof HTMLElement && el.nodeName === 'VERTEX-VIEWER-DOM-ELEMENT');
387
229
  }
388
230
 
389
231
  function isVertexViewerDomGroup(el) {
390
- return el instanceof HTMLElement && el.nodeName === 'VERTEX-VIEWER-DOM-GROUP';
232
+ return ((el instanceof HTMLElement && el.nodeName === 'VERTEX-VIEWER-DOM-GROUP') ||
233
+ (el instanceof HTMLElement && el.dataset.isDomGroupElement != null));
391
234
  }
392
235
 
393
236
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
@@ -638,5 +481,4 @@ let ViewerDomRenderer = class {
638
481
  ViewerDomRenderer.style = viewerDomRendererCss;
639
482
 
640
483
  exports.vertex_viewer_dom_element = ViewerDomElement;
641
- exports.vertex_viewer_dom_group = ViewerDomGroup;
642
484
  exports.vertex_viewer_dom_renderer = ViewerDomRenderer;