@vertexvis/viewer 0.24.4-canary.9 → 0.24.4

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 (236) hide show
  1. package/README.template.md +6 -0
  2. package/dist/cjs/{cursors-2dfb0ef3.js → cursors-17ad74ac.js} +2 -2
  3. package/dist/cjs/{cursors-2dfb0ef3.js.map → cursors-17ad74ac.js.map} +1 -1
  4. package/dist/cjs/dom-fc408b4c.js.map +1 -1
  5. package/dist/cjs/{index-5fa5a527.js → index-0abd8b0b.js} +2 -2
  6. package/dist/cjs/index-0abd8b0b.js.map +1 -0
  7. package/dist/cjs/index.cjs.js +2 -2
  8. package/dist/cjs/loader.cjs.js +1 -1
  9. package/dist/cjs/loader.cjs.js.map +1 -1
  10. package/dist/cjs/{queries-cf96c8bc.js → queries-4580caa5.js} +8 -2
  11. package/dist/cjs/queries-4580caa5.js.map +1 -0
  12. package/dist/cjs/{shadow-css-8962c4a9.js → shadow-css-37297ac8.js} +1 -1
  13. package/dist/cjs/shadow-css-37297ac8.js.map +1 -0
  14. package/dist/cjs/{stencil-a3f4e15b.js → stencil-40ef9119.js} +2 -2
  15. package/dist/cjs/{stencil-a3f4e15b.js.map → stencil-40ef9119.js.map} +1 -1
  16. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +8 -2
  17. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js.map +1 -1
  18. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +1 -1
  19. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js +1 -1
  20. package/dist/cjs/vertex-scene-tree-table-header.cjs.entry.js +1 -1
  21. package/dist/cjs/vertex-scene-tree-table-resize-divider.cjs.entry.js +1 -1
  22. package/dist/cjs/vertex-scene-tree-toolbar-group.cjs.entry.js +1 -1
  23. package/dist/cjs/vertex-scene-tree.cjs.entry.js +1 -1
  24. package/dist/cjs/vertex-viewer-annotation-callout.cjs.entry.js +1 -1
  25. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +2 -2
  26. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +1 -1
  27. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +1 -1
  28. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +1 -1
  29. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
  30. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +2 -2
  31. package/dist/cjs/vertex-viewer-icon.cjs.entry.js +1 -1
  32. package/dist/cjs/vertex-viewer-layer.cjs.entry.js +1 -1
  33. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +1 -1
  34. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +1 -1
  35. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +1 -1
  36. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +1 -1
  37. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +2 -2
  38. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +1 -1
  39. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +2 -2
  40. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +3 -3
  41. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js.map +1 -1
  42. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +2 -2
  43. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +2 -2
  44. package/dist/cjs/vertex-viewer-spinner.cjs.entry.js +1 -1
  45. package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js +1 -1
  46. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +2 -2
  47. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +2 -2
  48. package/dist/cjs/vertex-viewer-walk-mode-tool.cjs.entry.js +4 -4
  49. package/dist/cjs/vertex-viewer-walk-mode-tool.cjs.entry.js.map +1 -1
  50. package/dist/cjs/vertex-viewer.cjs.entry.js +22 -11
  51. package/dist/cjs/vertex-viewer.cjs.entry.js.map +1 -1
  52. package/dist/cjs/viewer.cjs.js +1 -1
  53. package/dist/cjs/viewer.cjs.js.map +1 -1
  54. package/dist/collection/components/scene-tree-search/scene-tree-search.js +21 -1
  55. package/dist/collection/components/scene-tree-search/scene-tree-search.js.map +1 -1
  56. package/dist/collection/components/viewer/viewer.js +18 -7
  57. package/dist/collection/components/viewer/viewer.js.map +1 -1
  58. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +5 -0
  59. package/dist/collection/components/viewer-walk-mode-tool/viewer-walk-mode-tool.js +3 -3
  60. package/dist/collection/components/viewer-walk-mode-tool/viewer-walk-mode-tool.js.map +1 -1
  61. package/dist/collection/lib/cursors.js +1 -1
  62. package/dist/collection/lib/cursors.js.map +1 -1
  63. package/dist/collection/lib/model-views/controller.js +7 -1
  64. package/dist/collection/lib/model-views/controller.js.map +1 -1
  65. package/dist/collection/lib/stream/stream.js +4 -3
  66. package/dist/collection/lib/stream/stream.js.map +1 -1
  67. package/dist/collection/testing/viewer.js +1 -1
  68. package/dist/collection/testing/viewer.js.map +1 -1
  69. package/dist/components/cursors.js +1 -1
  70. package/dist/components/cursors.js.map +1 -1
  71. package/dist/components/queries.js +7 -1
  72. package/dist/components/queries.js.map +1 -1
  73. package/dist/components/scene-tree-search.js +6 -0
  74. package/dist/components/scene-tree-search.js.map +1 -1
  75. package/dist/components/vertex-viewer-walk-mode-tool.js +3 -3
  76. package/dist/components/vertex-viewer-walk-mode-tool.js.map +1 -1
  77. package/dist/components/vertex-viewer.js +18 -7
  78. package/dist/components/vertex-viewer.js.map +1 -1
  79. package/dist/components/viewer-pin-group.js +1 -1
  80. package/dist/components/viewer-pin-group.js.map +1 -1
  81. package/dist/esm/{cursors-9e349d61.js → cursors-3806bc04.js} +2 -2
  82. package/dist/esm/{cursors-9e349d61.js.map → cursors-3806bc04.js.map} +1 -1
  83. package/dist/esm/dom-dba69343.js.map +1 -1
  84. package/dist/esm/{index-f3e96c9e.js → index-c12dc0cd.js} +2 -2
  85. package/dist/esm/index-c12dc0cd.js.map +1 -0
  86. package/dist/esm/index.js +2 -2
  87. package/dist/esm/index.mjs +2 -2
  88. package/dist/esm/loader.js +1 -1
  89. package/dist/esm/loader.js.map +1 -1
  90. package/dist/esm/loader.mjs +1 -1
  91. package/dist/esm/{queries-2f4a492c.js → queries-948a88f9.js} +8 -2
  92. package/dist/esm/queries-948a88f9.js.map +1 -0
  93. package/dist/esm/{shadow-css-9363884b.js → shadow-css-d5069bdf.js} +1 -1
  94. package/dist/esm/shadow-css-d5069bdf.js.map +1 -0
  95. package/dist/esm/{stencil-9d9f090f.js → stencil-38b2fc28.js} +2 -2
  96. package/dist/esm/{stencil-9d9f090f.js.map → stencil-38b2fc28.js.map} +1 -1
  97. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +8 -2
  98. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js.map +1 -1
  99. package/dist/esm/vertex-scene-tree-table-cell.entry.js +1 -1
  100. package/dist/esm/vertex-scene-tree-table-column.entry.js +1 -1
  101. package/dist/esm/vertex-scene-tree-table-header.entry.js +1 -1
  102. package/dist/esm/vertex-scene-tree-table-resize-divider.entry.js +1 -1
  103. package/dist/esm/vertex-scene-tree-toolbar-group.entry.js +1 -1
  104. package/dist/esm/vertex-scene-tree.entry.js +1 -1
  105. package/dist/esm/vertex-viewer-annotation-callout.entry.js +1 -1
  106. package/dist/esm/vertex-viewer-box-query-tool.entry.js +2 -2
  107. package/dist/esm/vertex-viewer-button_3.entry.js +1 -1
  108. package/dist/esm/vertex-viewer-default-toolbar.entry.js +1 -1
  109. package/dist/esm/vertex-viewer-dom-element_2.entry.js +1 -1
  110. package/dist/esm/vertex-viewer-dom-group.entry.js +1 -1
  111. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +2 -2
  112. package/dist/esm/vertex-viewer-icon.entry.js +1 -1
  113. package/dist/esm/vertex-viewer-layer.entry.js +1 -1
  114. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +1 -1
  115. package/dist/esm/vertex-viewer-markup-tool.entry.js +1 -1
  116. package/dist/esm/vertex-viewer-markup.entry.js +1 -1
  117. package/dist/esm/vertex-viewer-measurement-details.entry.js +1 -1
  118. package/dist/esm/vertex-viewer-measurement-distance.entry.js +2 -2
  119. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +1 -1
  120. package/dist/esm/vertex-viewer-measurement-precise.entry.js +2 -2
  121. package/dist/esm/vertex-viewer-pin-group.entry.js +3 -3
  122. package/dist/esm/vertex-viewer-pin-group.entry.js.map +1 -1
  123. package/dist/esm/vertex-viewer-pin-label_2.entry.js +2 -2
  124. package/dist/esm/vertex-viewer-pin-tool.entry.js +2 -2
  125. package/dist/esm/vertex-viewer-spinner.entry.js +1 -1
  126. package/dist/esm/vertex-viewer-teleport-tool.entry.js +1 -1
  127. package/dist/esm/vertex-viewer-transform-widget.entry.js +2 -2
  128. package/dist/esm/vertex-viewer-view-cube.entry.js +2 -2
  129. package/dist/esm/vertex-viewer-walk-mode-tool.entry.js +4 -4
  130. package/dist/esm/vertex-viewer-walk-mode-tool.entry.js.map +1 -1
  131. package/dist/esm/vertex-viewer.entry.js +22 -11
  132. package/dist/esm/vertex-viewer.entry.js.map +1 -1
  133. package/dist/esm/viewer.js +1 -1
  134. package/dist/esm/viewer.js.map +1 -1
  135. package/dist/types/components/scene-tree-search/scene-tree-search.d.ts +5 -1
  136. package/dist/types/components/viewer/viewer.d.ts +3 -2
  137. package/dist/types/components.d.ts +9 -5
  138. package/dist/types/lib/stream/stream.d.ts +1 -1
  139. package/dist/types/testing/viewer.d.ts +1 -1
  140. package/dist/viewer/index.esm.js +1 -1
  141. package/dist/viewer/{p-0e0973f0.entry.js → p-03efd0d6.entry.js} +2 -2
  142. package/dist/viewer/{p-7f0eeb06.entry.js → p-0988832f.entry.js} +2 -2
  143. package/dist/viewer/{p-78a1be4e.entry.js → p-0aa04328.entry.js} +2 -2
  144. package/dist/viewer/p-18ce3f3b.entry.js +5 -0
  145. package/dist/viewer/{p-9bb550e2.entry.js.map → p-18ce3f3b.entry.js.map} +1 -1
  146. package/dist/viewer/{p-2ecdcd5d.entry.js → p-23f0bb30.entry.js} +2 -2
  147. package/dist/viewer/{p-06b8bca7.entry.js → p-296311d3.entry.js} +2 -2
  148. package/dist/viewer/{p-2172230d.entry.js → p-2fd66679.entry.js} +2 -2
  149. package/dist/viewer/{p-5540add8.entry.js → p-362f3e12.entry.js} +2 -2
  150. package/dist/viewer/{p-110f66c6.js → p-388f809e.js} +2 -2
  151. package/dist/viewer/p-388f809e.js.map +1 -0
  152. package/dist/viewer/{p-48b63c5f.entry.js → p-45044ff2.entry.js} +2 -2
  153. package/dist/viewer/{p-9fc2e56e.entry.js → p-45b5b5ed.entry.js} +2 -2
  154. package/dist/viewer/{p-f79933ae.entry.js → p-4bd1ea70.entry.js} +2 -2
  155. package/dist/viewer/{p-842cc51b.entry.js → p-4bf16450.entry.js} +2 -2
  156. package/dist/viewer/{p-a057d7f2.entry.js → p-56fa8168.entry.js} +2 -2
  157. package/dist/viewer/{p-8c367e87.entry.js → p-59f204e7.entry.js} +2 -2
  158. package/dist/viewer/p-59f204e7.entry.js.map +1 -0
  159. package/dist/viewer/{p-33033b58.entry.js → p-6cf6eb8a.entry.js} +2 -2
  160. package/dist/viewer/p-715255e1.entry.js +5 -0
  161. package/dist/viewer/p-715255e1.entry.js.map +1 -0
  162. package/dist/viewer/{p-5f9352c0.entry.js → p-75f5ae33.entry.js} +2 -2
  163. package/dist/viewer/{p-7eea3fb3.entry.js → p-7a87ae97.entry.js} +2 -2
  164. package/dist/viewer/{p-22b42d4b.entry.js → p-86e1ee86.entry.js} +2 -2
  165. package/dist/viewer/p-89d93218.entry.js +5 -0
  166. package/dist/viewer/p-89d93218.entry.js.map +1 -0
  167. package/dist/viewer/{p-07325d65.entry.js → p-8c53ed63.entry.js} +2 -2
  168. package/dist/viewer/p-991f7bac.js.map +1 -1
  169. package/dist/viewer/{p-983db3dd.entry.js → p-a009c6d9.entry.js} +2 -2
  170. package/dist/viewer/{p-dcb64250.entry.js → p-a3bc0b79.entry.js} +2 -2
  171. package/dist/viewer/{p-29318a17.entry.js → p-aece4279.entry.js} +2 -2
  172. package/dist/viewer/{p-be257155.js → p-b8c0f6ff.js} +1 -1
  173. package/dist/viewer/p-b8c0f6ff.js.map +1 -0
  174. package/dist/viewer/p-bab8266e.js +5 -0
  175. package/dist/viewer/p-bab8266e.js.map +1 -0
  176. package/dist/viewer/{p-05562c21.entry.js → p-bcddbdb2.entry.js} +2 -2
  177. package/dist/viewer/{p-40e8a5ea.entry.js → p-c3b071a3.entry.js} +2 -2
  178. package/dist/viewer/{p-fbfa1e82.entry.js → p-cd3f0870.entry.js} +2 -2
  179. package/dist/viewer/{p-d2677c13.entry.js → p-d9e75269.entry.js} +2 -2
  180. package/dist/viewer/p-e1eaedd8.js +5 -0
  181. package/dist/viewer/{p-a27a9775.entry.js → p-e70e2c04.entry.js} +2 -2
  182. package/dist/viewer/{p-ffa8a2dd.entry.js → p-ebea8f56.entry.js} +2 -2
  183. package/dist/viewer/{p-342dac8b.js → p-eda9f5d4.js} +2 -2
  184. package/dist/viewer/{p-342dac8b.js.map → p-eda9f5d4.js.map} +1 -1
  185. package/dist/viewer/{p-9d54d593.entry.js → p-f292e8ae.entry.js} +2 -2
  186. package/dist/viewer/{p-d024c250.entry.js → p-f8a9c4d2.entry.js} +2 -2
  187. package/dist/viewer/viewer.esm.js +1 -1
  188. package/dist/viewer/viewer.esm.js.map +1 -1
  189. package/package.json +7 -7
  190. package/readme.md +10 -4
  191. package/dist/cjs/index-5fa5a527.js.map +0 -1
  192. package/dist/cjs/queries-cf96c8bc.js.map +0 -1
  193. package/dist/cjs/shadow-css-8962c4a9.js.map +0 -1
  194. package/dist/esm/index-f3e96c9e.js.map +0 -1
  195. package/dist/esm/queries-2f4a492c.js.map +0 -1
  196. package/dist/esm/shadow-css-9363884b.js.map +0 -1
  197. package/dist/viewer/p-04bf6b89.js +0 -5
  198. package/dist/viewer/p-110f66c6.js.map +0 -1
  199. package/dist/viewer/p-51eff23a.entry.js +0 -5
  200. package/dist/viewer/p-51eff23a.entry.js.map +0 -1
  201. package/dist/viewer/p-629a5ae7.entry.js +0 -5
  202. package/dist/viewer/p-629a5ae7.entry.js.map +0 -1
  203. package/dist/viewer/p-8c367e87.entry.js.map +0 -1
  204. package/dist/viewer/p-9bb550e2.entry.js +0 -5
  205. package/dist/viewer/p-b2e80d7f.js +0 -5
  206. package/dist/viewer/p-b2e80d7f.js.map +0 -1
  207. package/dist/viewer/p-be257155.js.map +0 -1
  208. /package/dist/viewer/{p-0e0973f0.entry.js.map → p-03efd0d6.entry.js.map} +0 -0
  209. /package/dist/viewer/{p-7f0eeb06.entry.js.map → p-0988832f.entry.js.map} +0 -0
  210. /package/dist/viewer/{p-78a1be4e.entry.js.map → p-0aa04328.entry.js.map} +0 -0
  211. /package/dist/viewer/{p-2ecdcd5d.entry.js.map → p-23f0bb30.entry.js.map} +0 -0
  212. /package/dist/viewer/{p-06b8bca7.entry.js.map → p-296311d3.entry.js.map} +0 -0
  213. /package/dist/viewer/{p-2172230d.entry.js.map → p-2fd66679.entry.js.map} +0 -0
  214. /package/dist/viewer/{p-5540add8.entry.js.map → p-362f3e12.entry.js.map} +0 -0
  215. /package/dist/viewer/{p-48b63c5f.entry.js.map → p-45044ff2.entry.js.map} +0 -0
  216. /package/dist/viewer/{p-9fc2e56e.entry.js.map → p-45b5b5ed.entry.js.map} +0 -0
  217. /package/dist/viewer/{p-f79933ae.entry.js.map → p-4bd1ea70.entry.js.map} +0 -0
  218. /package/dist/viewer/{p-842cc51b.entry.js.map → p-4bf16450.entry.js.map} +0 -0
  219. /package/dist/viewer/{p-a057d7f2.entry.js.map → p-56fa8168.entry.js.map} +0 -0
  220. /package/dist/viewer/{p-33033b58.entry.js.map → p-6cf6eb8a.entry.js.map} +0 -0
  221. /package/dist/viewer/{p-5f9352c0.entry.js.map → p-75f5ae33.entry.js.map} +0 -0
  222. /package/dist/viewer/{p-7eea3fb3.entry.js.map → p-7a87ae97.entry.js.map} +0 -0
  223. /package/dist/viewer/{p-22b42d4b.entry.js.map → p-86e1ee86.entry.js.map} +0 -0
  224. /package/dist/viewer/{p-07325d65.entry.js.map → p-8c53ed63.entry.js.map} +0 -0
  225. /package/dist/viewer/{p-983db3dd.entry.js.map → p-a009c6d9.entry.js.map} +0 -0
  226. /package/dist/viewer/{p-dcb64250.entry.js.map → p-a3bc0b79.entry.js.map} +0 -0
  227. /package/dist/viewer/{p-29318a17.entry.js.map → p-aece4279.entry.js.map} +0 -0
  228. /package/dist/viewer/{p-05562c21.entry.js.map → p-bcddbdb2.entry.js.map} +0 -0
  229. /package/dist/viewer/{p-40e8a5ea.entry.js.map → p-c3b071a3.entry.js.map} +0 -0
  230. /package/dist/viewer/{p-fbfa1e82.entry.js.map → p-cd3f0870.entry.js.map} +0 -0
  231. /package/dist/viewer/{p-d2677c13.entry.js.map → p-d9e75269.entry.js.map} +0 -0
  232. /package/dist/viewer/{p-04bf6b89.js.map → p-e1eaedd8.js.map} +0 -0
  233. /package/dist/viewer/{p-a27a9775.entry.js.map → p-e70e2c04.entry.js.map} +0 -0
  234. /package/dist/viewer/{p-ffa8a2dd.entry.js.map → p-ebea8f56.entry.js.map} +0 -0
  235. /package/dist/viewer/{p-9d54d593.entry.js.map → p-f292e8ae.entry.js.map} +0 -0
  236. /package/dist/viewer/{p-d024c250.entry.js.map → p-f8a9c4d2.entry.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- const index = require('./index-5fa5a527.js');
6
+ const index = require('./index-0abd8b0b.js');
7
7
  const appGlobals = require('./app-globals-0d907996.js');
8
8
  require('./_commonjsHelpers-03d93eda.js');
9
9
 
@@ -1 +1 @@
1
- {"file":"viewer.cjs.js","mappings":"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","names":["doc","NAMESPACE","win","promiseResolve","globalScripts","bootstrapLazy"],"sources":["../../node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v2.16.1 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n if (BUILD.cssVarShim) {\n // shim css vars\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,\n // simply stub the implementations out.\n // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)\n // @ts-ignore\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","import { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"version":3}
1
+ {"file":"viewer.cjs.js","mappings":"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","names":["doc","NAMESPACE","win","promiseResolve","globalScripts","bootstrapLazy"],"sources":["./node_modules/@stencil/core/internal/client/patch-browser.js","@lazy-browser-entrypoint?app-data=conditional"],"sourcesContent":["/*\n Stencil Client Patch Browser v2.16.1 | MIT Licensed | https://stenciljs.com\n */\nimport { BUILD, NAMESPACE } from '@stencil/core/internal/app-data';\nimport { consoleDevInfo, plt, win, doc, promiseResolve, H } from '@stencil/core';\nconst getDynamicImportFunction = (namespace) => `__sc_import_${namespace.replace(/\\s|-/g, '_')}`;\nconst patchBrowser = () => {\n // NOTE!! This fn cannot use async/await!\n if (BUILD.isDev && !BUILD.isTesting) {\n consoleDevInfo('Running in development mode.');\n }\n if (BUILD.cssVarShim) {\n // shim css vars\n plt.$cssShim$ = win.__cssshim;\n }\n if (BUILD.cloneNodeFix) {\n // opted-in to polyfill cloneNode() for slot polyfilled components\n patchCloneNodeFix(H.prototype);\n }\n if (BUILD.profile && !performance.mark) {\n // not all browsers support performance.mark/measure (Safari 10)\n // because the mark/measure APIs are designed to write entries to a buffer in the browser that does not exist,\n // simply stub the implementations out.\n // TODO(STENCIL-323): Remove this patch when support for older browsers is removed (breaking)\n // @ts-ignore\n performance.mark = performance.measure = () => {\n /*noop*/\n };\n performance.getEntriesByName = () => [];\n }\n // @ts-ignore\n const scriptElm = BUILD.scriptDataOpts || BUILD.safari10 || BUILD.dynamicImportShim\n ? Array.from(doc.querySelectorAll('script')).find((s) => new RegExp(`\\/${NAMESPACE}(\\\\.esm)?\\\\.js($|\\\\?|#)`).test(s.src) ||\n s.getAttribute('data-stencil-namespace') === NAMESPACE)\n : null;\n const importMeta = import.meta.url;\n const opts = BUILD.scriptDataOpts ? scriptElm['data-opts'] || {} : {};\n if (BUILD.safari10 && 'onbeforeload' in scriptElm && !history.scrollRestoration /* IS_ESM_BUILD */) {\n // Safari < v11 support: This IF is true if it's Safari below v11.\n // This fn cannot use async/await since Safari didn't support it until v11,\n // however, Safari 10 did support modules. Safari 10 also didn't support \"nomodule\",\n // so both the ESM file and nomodule file would get downloaded. Only Safari\n // has 'onbeforeload' in the script, and \"history.scrollRestoration\" was added\n // to Safari in v11. Return a noop then() so the async/await ESM code doesn't continue.\n // IS_ESM_BUILD is replaced at build time so this check doesn't happen in systemjs builds.\n return {\n then() {\n /* promise noop */\n },\n };\n }\n if (!BUILD.safari10 && importMeta !== '') {\n opts.resourcesUrl = new URL('.', importMeta).href;\n }\n else if (BUILD.dynamicImportShim || BUILD.safari10) {\n opts.resourcesUrl = new URL('.', new URL(scriptElm.getAttribute('data-resources-url') || scriptElm.src, win.location.href)).href;\n if (BUILD.dynamicImportShim) {\n patchDynamicImport(opts.resourcesUrl, scriptElm);\n }\n if (BUILD.dynamicImportShim && !win.customElements) {\n // module support, but no custom elements support (Old Edge)\n // @ts-ignore\n return import(/* webpackChunkName: \"polyfills-dom\" */ './dom.js').then(() => opts);\n }\n }\n return promiseResolve(opts);\n};\nconst patchDynamicImport = (base, orgScriptElm) => {\n const importFunctionName = getDynamicImportFunction(NAMESPACE);\n try {\n // test if this browser supports dynamic imports\n // There is a caching issue in V8, that breaks using import() in Function\n // By generating a random string, we can workaround it\n // Check https://bugs.chromium.org/p/chromium/issues/detail?id=990810 for more info\n win[importFunctionName] = new Function('w', `return import(w);//${Math.random()}`);\n }\n catch (e) {\n // this shim is specifically for browsers that do support \"esm\" imports\n // however, they do NOT support \"dynamic\" imports\n // basically this code is for old Edge, v18 and below\n const moduleMap = new Map();\n win[importFunctionName] = (src) => {\n const url = new URL(src, base).href;\n let mod = moduleMap.get(url);\n if (!mod) {\n const script = doc.createElement('script');\n script.type = 'module';\n script.crossOrigin = orgScriptElm.crossOrigin;\n script.src = URL.createObjectURL(new Blob([`import * as m from '${url}'; window.${importFunctionName}.m = m;`], {\n type: 'application/javascript',\n }));\n mod = new Promise((resolve) => {\n script.onload = () => {\n resolve(win[importFunctionName].m);\n script.remove();\n };\n });\n moduleMap.set(url, mod);\n doc.head.appendChild(script);\n }\n return mod;\n };\n }\n};\nconst patchCloneNodeFix = (HTMLElementPrototype) => {\n const nativeCloneNodeFn = HTMLElementPrototype.cloneNode;\n HTMLElementPrototype.cloneNode = function (deep) {\n if (this.nodeName === 'TEMPLATE') {\n return nativeCloneNodeFn.call(this, deep);\n }\n const clonedNode = nativeCloneNodeFn.call(this, false);\n const srcChildNodes = this.childNodes;\n if (deep) {\n for (let i = 0; i < srcChildNodes.length; i++) {\n // Node.ATTRIBUTE_NODE === 2, and checking because IE11\n if (srcChildNodes[i].nodeType !== 2) {\n clonedNode.appendChild(srcChildNodes[i].cloneNode(true));\n }\n }\n }\n return clonedNode;\n };\n};\nexport { patchBrowser };\n","import { bootstrapLazy } from '@stencil/core';\nimport { patchBrowser } from '@stencil/core/internal/client/patch-browser';\nimport { globalScripts } from '@stencil/core/internal/app-globals';\npatchBrowser().then(options => {\n globalScripts();\n return bootstrapLazy([/*!__STENCIL_LAZY_DATA__*/], options);\n});\n"],"version":3}
@@ -129,6 +129,11 @@ export class SceneTreeSearch {
129
129
  var _a, _b;
130
130
  (_a = this.onStateChangeDisposable) === null || _a === void 0 ? void 0 : _a.dispose();
131
131
  this.onStateChangeDisposable = (_b = this.controller) === null || _b === void 0 ? void 0 : _b.onStateChange.on((state) => {
132
+ // If a search was previously being performed, but has now finished,
133
+ // emit the event that the search has completed.
134
+ if (this.isSearching && !state.isSearching) {
135
+ this.searchCompleted.emit(this.value);
136
+ }
132
137
  this.isSearching = state.isSearching;
133
138
  });
134
139
  }
@@ -249,7 +254,22 @@ export class SceneTreeSearch {
249
254
  "composed": true,
250
255
  "docs": {
251
256
  "tags": [],
252
- "text": "An event that is emitted when a user has inputted or cleared the search\nterm. The event may be delayed according to the current `debounce` value."
257
+ "text": "An event that is emitted when a user has changed or cleared the search\nterm. The event may be delayed according to the current `debounce` value."
258
+ },
259
+ "complexType": {
260
+ "original": "string",
261
+ "resolved": "string",
262
+ "references": {}
263
+ }
264
+ }, {
265
+ "method": "searchCompleted",
266
+ "name": "searchCompleted",
267
+ "bubbles": true,
268
+ "cancelable": true,
269
+ "composed": true,
270
+ "docs": {
271
+ "tags": [],
272
+ "text": "An event that is emitted when a search has completed."
253
273
  },
254
274
  "complexType": {
255
275
  "original": "string",
@@ -1 +1 @@
1
- {"version":3,"file":"scene-tree-search.js","sourceRoot":"","sources":["../../../../../src/components/scene-tree-search/scene-tree-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Disposable } from '@vertexvis/utils';\nimport classNames from 'classnames';\n\nimport { debounceEvent } from '../../lib/stencil';\nimport { SceneTreeController } from '../scene-tree/lib/controller';\n\n/**\n * @slot search-icon - A slot that replaces the component's default search icon.\n * @slot clear-icon - A slot that replaces the component's default clear icon.\n */\n@Component({\n tag: 'vertex-scene-tree-search',\n styleUrl: 'scene-tree-search.css',\n shadow: true,\n})\nexport class SceneTreeSearch {\n /**\n * Specifies the delay, in milliseconds, to emit `search` events after user\n * input.\n *\n * If this value is specified, searches will automatically occur after a\n * keystroke has occurred and the debounce threshold has elapsed.\n *\n * Defaults to `undefined`, and searches only occur on an `Enter` press\n * or a `blur` event.\n */\n @Prop()\n public debounce?: number;\n\n /**\n * If `true`, disables user interaction of the component.\n */\n @Prop()\n public disabled = false;\n\n /**\n * Placeholder text if `value` is empty.\n */\n @Prop()\n public placeholder?: string = undefined;\n\n /**\n * The scene tree controller\n */\n @Prop()\n public controller?: SceneTreeController;\n\n /**\n * The current text value of the component. Value is updated on user\n * interaction.\n */\n @Prop({ mutable: true })\n public value = '';\n\n /**\n * An event that is emitted when a user has inputted or cleared the search\n * term. The event may be delayed according to the current `debounce` value.\n */\n @Event({ bubbles: true })\n public search!: EventEmitter<string>;\n\n @State()\n private focused = false;\n\n @State()\n private isSearching = false;\n\n private lastEmittedValue?: string;\n private inputEl?: HTMLInputElement;\n private onStateChangeDisposable?: Disposable;\n private searchDisposable?: Disposable;\n\n /**\n * Gives focus to the component's internal text input.\n */\n @Method()\n public async setFocus(): Promise<void> {\n // HTMLInputElement.focus() doesn't exist in tests.\n if (typeof this.inputEl?.focus === 'function') {\n this.inputEl?.focus();\n }\n }\n\n /**\n * @ignore\n */\n @Watch('controller')\n public controllerChanged(controller: SceneTreeController): void {\n this.setupController();\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.handleDebounceChanged();\n\n this.setupController();\n }\n\n /**\n * @ignore\n */\n protected disconnectedCallback(): void {\n this.onStateChangeDisposable?.dispose();\n }\n\n /**\n * Clears the current search term and clears any debounced filters.\n */\n @Method()\n public clear(): void {\n this.value = '';\n this.searchDisposable?.dispose();\n this.emitCurrentValue();\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <div class=\"root\">\n <div class=\"overlay icon icon-search\">\n <slot name=\"search-icon\">\n {this.isSearching ? (\n <vertex-viewer-spinner slot=\"search-icon\" size=\"xs\" />\n ) : (\n <vertex-viewer-icon name=\"search\" size=\"sm\" />\n )}\n </slot>\n </div>\n\n <input\n class={classNames('input', {\n background: this.focused || this.value.length > 0,\n })}\n type=\"text\"\n ref={(ref) => (this.inputEl = ref)}\n placeholder={this.placeholder}\n disabled={this.disabled}\n value={this.value}\n onInput={this.handleTextInput}\n onFocus={this.handleTextFocus}\n onBlur={this.handleTextBlur}\n onKeyPress={this.handleKeyPress}\n />\n\n <div\n class={classNames('overlay overlay-clear', {\n show: this.value.length > 0,\n })}\n >\n <button\n class=\"clear-btn icon\"\n tabIndex={-1}\n onMouseDown={this.handleClear}\n disabled={this.disabled}\n >\n <slot name=\"clear-icon\">\n <vertex-viewer-icon name=\"close-circle\" size=\"sm\" />\n </slot>\n </button>\n </div>\n </div>\n </Host>\n );\n }\n\n private handleTextInput = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n if (this.debounce != null || this.value === '') {\n this.emitCurrentValue();\n }\n };\n\n private handleTextFocus = (): void => {\n this.focused = true;\n };\n\n private handleTextBlur = (): void => {\n this.focused = false;\n\n this.searchDisposable?.dispose();\n\n if (this.value !== this.lastEmittedValue) {\n this.emitCurrentValue();\n }\n };\n\n private handleKeyPress = (event: KeyboardEvent): void => {\n if (event.key === 'Enter') {\n this.searchDisposable?.dispose();\n this.emitCurrentValue();\n }\n };\n\n private handleClear = (event: MouseEvent): void => {\n event.preventDefault();\n\n this.value = '';\n this.searchDisposable?.dispose();\n this.emitCurrentValue();\n this.setFocus();\n };\n\n private handleDebounceChanged(): void {\n this.searchDisposable?.dispose();\n\n const emitter = debounceEvent(this.search, this.debounce ?? 0);\n\n // Track this emitter in two separate variables to maintain the `EventEmitter` typing for\n // `this.search`. This allows for correct generation of `CustomEvent` types.\n this.search = emitter;\n this.searchDisposable = emitter;\n }\n\n private setupController(): void {\n this.onStateChangeDisposable?.dispose();\n\n this.onStateChangeDisposable = this.controller?.onStateChange.on(\n (state) => {\n this.isSearching = state.isSearching;\n }\n );\n }\n\n private emitCurrentValue(): void {\n this.lastEmittedValue = this.value;\n this.search.emit(this.value);\n }\n}\n"]}
1
+ {"version":3,"file":"scene-tree-search.js","sourceRoot":"","sources":["../../../../../src/components/scene-tree-search/scene-tree-search.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Disposable } from '@vertexvis/utils';\nimport classNames from 'classnames';\n\nimport { debounceEvent } from '../../lib/stencil';\nimport { SceneTreeController } from '../scene-tree/lib/controller';\n\n/**\n * @slot search-icon - A slot that replaces the component's default search icon.\n * @slot clear-icon - A slot that replaces the component's default clear icon.\n */\n@Component({\n tag: 'vertex-scene-tree-search',\n styleUrl: 'scene-tree-search.css',\n shadow: true,\n})\nexport class SceneTreeSearch {\n /**\n * Specifies the delay, in milliseconds, to emit `search` events after user\n * input.\n *\n * If this value is specified, searches will automatically occur after a\n * keystroke has occurred and the debounce threshold has elapsed.\n *\n * Defaults to `undefined`, and searches only occur on an `Enter` press\n * or a `blur` event.\n */\n @Prop()\n public debounce?: number;\n\n /**\n * If `true`, disables user interaction of the component.\n */\n @Prop()\n public disabled = false;\n\n /**\n * Placeholder text if `value` is empty.\n */\n @Prop()\n public placeholder?: string = undefined;\n\n /**\n * The scene tree controller\n */\n @Prop()\n public controller?: SceneTreeController;\n\n /**\n * The current text value of the component. Value is updated on user\n * interaction.\n */\n @Prop({ mutable: true })\n public value = '';\n\n /**\n * An event that is emitted when a user has changed or cleared the search\n * term. The event may be delayed according to the current `debounce` value.\n */\n @Event({ bubbles: true })\n public search!: EventEmitter<string>;\n\n /**\n * An event that is emitted when a search has completed.\n */\n @Event({ bubbles: true })\n public searchCompleted!: EventEmitter<string>;\n\n @State()\n private focused = false;\n\n @State()\n private isSearching = false;\n\n private lastEmittedValue?: string;\n private inputEl?: HTMLInputElement;\n private onStateChangeDisposable?: Disposable;\n private searchDisposable?: Disposable;\n\n /**\n * Gives focus to the component's internal text input.\n */\n @Method()\n public async setFocus(): Promise<void> {\n // HTMLInputElement.focus() doesn't exist in tests.\n if (typeof this.inputEl?.focus === 'function') {\n this.inputEl?.focus();\n }\n }\n\n /**\n * @ignore\n */\n @Watch('controller')\n public controllerChanged(controller: SceneTreeController): void {\n this.setupController();\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.handleDebounceChanged();\n\n this.setupController();\n }\n\n /**\n * @ignore\n */\n protected disconnectedCallback(): void {\n this.onStateChangeDisposable?.dispose();\n }\n\n /**\n * Clears the current search term and clears any debounced filters.\n */\n @Method()\n public clear(): void {\n this.value = '';\n this.searchDisposable?.dispose();\n this.emitCurrentValue();\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <div class=\"root\">\n <div class=\"overlay icon icon-search\">\n <slot name=\"search-icon\">\n {this.isSearching ? (\n <vertex-viewer-spinner slot=\"search-icon\" size=\"xs\" />\n ) : (\n <vertex-viewer-icon name=\"search\" size=\"sm\" />\n )}\n </slot>\n </div>\n\n <input\n class={classNames('input', {\n background: this.focused || this.value.length > 0,\n })}\n type=\"text\"\n ref={(ref) => (this.inputEl = ref)}\n placeholder={this.placeholder}\n disabled={this.disabled}\n value={this.value}\n onInput={this.handleTextInput}\n onFocus={this.handleTextFocus}\n onBlur={this.handleTextBlur}\n onKeyPress={this.handleKeyPress}\n />\n\n <div\n class={classNames('overlay overlay-clear', {\n show: this.value.length > 0,\n })}\n >\n <button\n class=\"clear-btn icon\"\n tabIndex={-1}\n onMouseDown={this.handleClear}\n disabled={this.disabled}\n >\n <slot name=\"clear-icon\">\n <vertex-viewer-icon name=\"close-circle\" size=\"sm\" />\n </slot>\n </button>\n </div>\n </div>\n </Host>\n );\n }\n\n private handleTextInput = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n\n if (this.debounce != null || this.value === '') {\n this.emitCurrentValue();\n }\n };\n\n private handleTextFocus = (): void => {\n this.focused = true;\n };\n\n private handleTextBlur = (): void => {\n this.focused = false;\n\n this.searchDisposable?.dispose();\n\n if (this.value !== this.lastEmittedValue) {\n this.emitCurrentValue();\n }\n };\n\n private handleKeyPress = (event: KeyboardEvent): void => {\n if (event.key === 'Enter') {\n this.searchDisposable?.dispose();\n this.emitCurrentValue();\n }\n };\n\n private handleClear = (event: MouseEvent): void => {\n event.preventDefault();\n\n this.value = '';\n this.searchDisposable?.dispose();\n this.emitCurrentValue();\n this.setFocus();\n };\n\n private handleDebounceChanged(): void {\n this.searchDisposable?.dispose();\n\n const emitter = debounceEvent(this.search, this.debounce ?? 0);\n\n // Track this emitter in two separate variables to maintain the `EventEmitter` typing for\n // `this.search`. This allows for correct generation of `CustomEvent` types.\n this.search = emitter;\n this.searchDisposable = emitter;\n }\n\n private setupController(): void {\n this.onStateChangeDisposable?.dispose();\n\n this.onStateChangeDisposable = this.controller?.onStateChange.on(\n (state) => {\n // If a search was previously being performed, but has now finished,\n // emit the event that the search has completed.\n if (this.isSearching && !state.isSearching) {\n this.searchCompleted.emit(this.value);\n }\n\n this.isSearching = state.isSearching;\n }\n );\n }\n\n private emitCurrentValue(): void {\n this.lastEmittedValue = this.value;\n this.search.emit(this.value);\n }\n}\n"]}
@@ -92,6 +92,14 @@ export class Viewer {
92
92
  * @internal
93
93
  */
94
94
  this.experimentalRenderingOptions = '';
95
+ /**
96
+ * Specifies options related to presentation of cross-sections.
97
+ * Defaults to showing the cross-section with an end cap that matches the part color.
98
+ */
99
+ this.crossSectioning = {
100
+ endCapEnabled: true,
101
+ endCapColor: undefined,
102
+ };
95
103
  /**
96
104
  * An optional value that will debounce frame updates when resizing
97
105
  * this viewer element.
@@ -457,10 +465,12 @@ export class Viewer {
457
465
  dimensions: this.dimensions,
458
466
  frameBgColor: this.getBackgroundColor(),
459
467
  });
460
- await ((_a = this.stream) === null || _a === void 0 ? void 0 : _a.load(urn, this.clientId, this.getDeviceId(), this.getResolvedConfig(), options === null || options === void 0 ? void 0 : options.cameraType));
461
- this.sceneReady.emit();
462
- if (EXPERIMENTAL_annotationPollingIntervalInMs !== undefined) {
463
- (_b = this.annotations) === null || _b === void 0 ? void 0 : _b.connect(EXPERIMENTAL_annotationPollingIntervalInMs);
468
+ const state = await ((_a = this.stream) === null || _a === void 0 ? void 0 : _a.load(urn, this.clientId, this.getDeviceId(), this.getResolvedConfig(), options === null || options === void 0 ? void 0 : options.cameraType));
469
+ if (state.type === 'connected') {
470
+ this.sceneReady.emit();
471
+ if (EXPERIMENTAL_annotationPollingIntervalInMs !== undefined) {
472
+ (_b = this.annotations) === null || _b === void 0 ? void 0 : _b.connect(EXPERIMENTAL_annotationPollingIntervalInMs);
473
+ }
464
474
  }
465
475
  }
466
476
  else {
@@ -1443,8 +1453,9 @@ export class Viewer {
1443
1453
  "optional": true,
1444
1454
  "docs": {
1445
1455
  "tags": [],
1446
- "text": "Specifies some options related to presentation of cross-sections"
1447
- }
1456
+ "text": "Specifies options related to presentation of cross-sections.\nDefaults to showing the cross-section with an end cap that matches the part color."
1457
+ },
1458
+ "defaultValue": "{\n endCapEnabled: true,\n endCapColor: undefined,\n }"
1448
1459
  },
1449
1460
  "featureMaps": {
1450
1461
  "type": "string",
@@ -1463,7 +1474,7 @@ export class Viewer {
1463
1474
  "optional": true,
1464
1475
  "docs": {
1465
1476
  "tags": [],
1466
- "text": "Specifies when a feature map is returned from rendering. Feature maps\ninclude information about the surfaces, edges and cross sections that are\nin a frame.\n\nPossible values are:\n\n * `undefined`: A feature map is never requested.\n * `final`: A feature map is only requested on the final frame.\n * `all`: A feature map is requested for every frame.\n\nFeature maps can increase the amount of data that's sent to a client and\ncan impact rendering performance. Values of `undefined` or `final` should\nbe used when needing the highest rendering performance."
1477
+ "text": "Specifies when a feature map is returned from rendering. Feature maps\ninclude information about the surfaces, edges and cross-sections that are\nin a frame.\n\nPossible values are:\n\n * `undefined`: A feature map is never requested.\n * `final`: A feature map is only requested on the final frame.\n * `all`: A feature map is requested for every frame.\n\nFeature maps can increase the amount of data that's sent to a client and\ncan impact rendering performance. Values of `undefined` or `final` should\nbe used when needing the highest rendering performance."
1467
1478
  },
1468
1479
  "attribute": "feature-maps",
1469
1480
  "reflect": false