@vertexvis/viewer 1.1.1-testing.3 → 1.1.1-testing.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 (456) hide show
  1. package/README.template.md +14 -8
  2. package/dist/cjs/{bundle-07I6_WqC.js → bundle-BCS0nA91.js} +28 -25
  3. package/dist/cjs/bundle-BCS0nA91.js.map +1 -0
  4. package/dist/cjs/{config-CepHuwRF.js → config-BY0v6BSK.js} +3 -3
  5. package/dist/cjs/{config-CepHuwRF.js.map → config-BY0v6BSK.js.map} +1 -1
  6. package/dist/cjs/{controller-Dklbe0Y6.js → controller-DvE3p6ta.js} +3 -3
  7. package/dist/cjs/{controller-Dklbe0Y6.js.map → controller-DvE3p6ta.js.map} +1 -1
  8. package/dist/cjs/{dom-Dlu6-7PF.js → dom-BuQSLPWr.js} +3 -3
  9. package/dist/cjs/{dom-Dlu6-7PF.js.map → dom-BuQSLPWr.js.map} +1 -1
  10. package/dist/cjs/{entities-BdWnb6KI.js → entities-CEaa12yP.js} +4 -4
  11. package/dist/cjs/{entities-BdWnb6KI.js.map → entities-CEaa12yP.js.map} +1 -1
  12. package/dist/cjs/{geometry_pb-BISQT2vx.js → geometry_pb-EVfAEuPO.js} +3 -3
  13. package/dist/cjs/{geometry_pb-BISQT2vx.js.map → geometry_pb-EVfAEuPO.js.map} +1 -1
  14. package/dist/cjs/grpc-D5Apx_zz.js.map +1 -1
  15. package/dist/cjs/index.cjs.js +13 -13
  16. package/dist/cjs/loader.cjs.js +1 -1
  17. package/dist/cjs/{markup-C-qyTwID.js → markup-Du4uVRo4.js} +3 -3
  18. package/dist/cjs/{markup-C-qyTwID.js.map → markup-Du4uVRo4.js.map} +1 -1
  19. package/dist/cjs/{model-Dy5FvjIA.js → model-BC6acIWJ.js} +3 -3
  20. package/dist/cjs/{model-Dy5FvjIA.js.map → model-BC6acIWJ.js.map} +1 -1
  21. package/dist/cjs/model-Bw4h8wNt.js.map +1 -1
  22. package/dist/cjs/{model-k5VBFN6C.js → model-DqxeakCS.js} +3 -3
  23. package/dist/cjs/{model-k5VBFN6C.js.map → model-DqxeakCS.js.map} +1 -1
  24. package/dist/cjs/{multiElementInteractionHandler-Bqpg2wVT.js → multiElementInteractionHandler-Bdeo6FYp.js} +6 -5
  25. package/dist/cjs/multiElementInteractionHandler-Bdeo6FYp.js.map +1 -0
  26. package/dist/cjs/{overlays-BujVkBnG.js → overlays-DASFbMSp.js} +3 -3
  27. package/dist/cjs/{overlays-BujVkBnG.js.map → overlays-DASFbMSp.js.map} +1 -1
  28. package/dist/cjs/{queries-GhYmoomu.js → queries-LthBzEHD.js} +5 -5
  29. package/dist/cjs/queries-LthBzEHD.js.map +1 -0
  30. package/dist/cjs/{regl-component-CB004H91.js → regl-component-B_JaaVlv.js} +6 -6
  31. package/dist/cjs/{regl-component-CB004H91.js.map → regl-component-B_JaaVlv.js.map} +1 -1
  32. package/dist/cjs/{representation_pb-CHCm5o1e.js → representation_pb-B6XR10pQ.js} +3 -3
  33. package/dist/cjs/{representation_pb-CHCm5o1e.js.map → representation_pb-B6XR10pQ.js.map} +1 -1
  34. package/dist/cjs/{results-BpfUIwa8.js → results-CU9Ctm2K.js} +3 -3
  35. package/dist/cjs/{results-BpfUIwa8.js.map → results-CU9Ctm2K.js.map} +1 -1
  36. package/dist/cjs/{streamAttributes-CJOD7AxG.js → streamAttributes-nCF7u7lv.js} +4 -4
  37. package/dist/cjs/{streamAttributes-CJOD7AxG.js.map → streamAttributes-nCF7u7lv.js.map} +1 -1
  38. package/dist/cjs/{util-smaTO4bk.js → util-gX3IGslq.js} +3 -3
  39. package/dist/cjs/{util-smaTO4bk.js.map → util-gX3IGslq.js.map} +1 -1
  40. package/dist/cjs/{utils-BsXO-wLi.js → utils-D5TGpFAV.js} +3 -3
  41. package/dist/cjs/utils-D5TGpFAV.js.map +1 -0
  42. package/dist/cjs/{utils-DY6afhh8.js → utils-opS9hsaU.js} +3 -3
  43. package/dist/cjs/{utils-DY6afhh8.js.map → utils-opS9hsaU.js.map} +1 -1
  44. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +1 -1
  45. package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js.map +1 -1
  46. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +2 -2
  47. package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js.map +1 -1
  48. package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js.map +1 -1
  49. package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
  50. package/dist/cjs/vertex-scene-tree.cjs.entry.js.map +1 -1
  51. package/dist/cjs/vertex-viewer-annotation-callout.cjs.entry.js.map +1 -1
  52. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +4 -4
  53. package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js.map +1 -1
  54. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +6 -1
  55. package/dist/cjs/vertex-viewer-button_3.cjs.entry.js.map +1 -1
  56. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +2 -2
  57. package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js.map +1 -1
  58. package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +5 -5
  59. package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
  60. package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +5 -5
  61. package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +3 -3
  62. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +4 -4
  63. package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js.map +1 -1
  64. package/dist/cjs/vertex-viewer-markup.cjs.entry.js +3 -3
  65. package/dist/cjs/vertex-viewer-markup.cjs.entry.js.map +1 -1
  66. package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -3
  67. package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +8 -8
  68. package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +5 -5
  69. package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +7 -7
  70. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +7 -7
  71. package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js.map +1 -1
  72. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +7 -6
  73. package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js.map +1 -1
  74. package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +3 -3
  75. package/dist/cjs/vertex-viewer-spinner.cjs.entry.js.map +1 -1
  76. package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js +2 -2
  77. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +6 -6
  78. package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js.map +1 -1
  79. package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +2 -2
  80. package/dist/cjs/vertex-viewer-walk-mode-tool.cjs.entry.js +1 -1
  81. package/dist/cjs/vertex-viewer.cjs.entry.js +8 -8
  82. package/dist/cjs/viewer.cjs.js +1 -1
  83. package/dist/cjs/{viewport-B70DgDZj.js → viewport-BDbB9o9T.js} +3 -3
  84. package/dist/cjs/{viewport-B70DgDZj.js.map → viewport-BDbB9o9T.js.map} +1 -1
  85. package/dist/collection/components/scene-tree/scene-tree.css +2 -3
  86. package/dist/collection/components/scene-tree/scene-tree.js.map +1 -1
  87. package/dist/collection/components/scene-tree-notification-banner/scene-tree-notification-banner.css +1 -1
  88. package/dist/collection/components/scene-tree-search/scene-tree-search.css +1 -1
  89. package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +10 -10
  90. package/dist/collection/components/scene-tree-table-column/scene-tree-table-column.css +0 -1
  91. package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.css +3 -3
  92. package/dist/collection/components/viewer-annotation-callout/viewer-annotation-callout.css +3 -4
  93. package/dist/collection/components/viewer-box-query-tool/types.js.map +1 -1
  94. package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +9 -7
  95. package/dist/collection/components/viewer-button/viewer-button.js +32 -1
  96. package/dist/collection/components/viewer-button/viewer-button.js.map +1 -1
  97. package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.css +2 -2
  98. package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +1 -1
  99. package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js.map +1 -1
  100. package/dist/collection/components/viewer-markup/viewer-markup.js.map +1 -1
  101. package/dist/collection/components/viewer-markup-arrow/utils.js.map +1 -1
  102. package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.css +2 -2
  103. package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +12 -11
  104. package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +21 -8
  105. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +2 -1
  106. package/dist/collection/components/viewer-pin-label/viewer-pin-label.js.map +1 -1
  107. package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +5 -4
  108. package/dist/collection/components/viewer-spinner/viewer-spinner.css +2 -2
  109. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map +1 -1
  110. package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +1 -2
  111. package/dist/collection/lib/grpc.js.map +1 -1
  112. package/dist/collection/lib/interactions/baseInteractionHandler.js +2 -1
  113. package/dist/collection/lib/interactions/baseInteractionHandler.js.map +1 -1
  114. package/dist/collection/lib/scenes/scene.js.map +1 -1
  115. package/dist/collection/lib/scenes/sceneViewStateLoader.js.map +1 -1
  116. package/dist/collection/lib/stream/state.js.map +1 -1
  117. package/dist/collection/lib/types/loadableResource.js.map +1 -1
  118. package/dist/collection/lib/types/sceneViewStateIdentifier.js.map +1 -1
  119. package/dist/collection/lib/walk-mode/model.js.map +1 -1
  120. package/dist/components/index.js +1 -1
  121. package/dist/components/p-2UsvOTHJ.js +5 -0
  122. package/dist/components/p-2UsvOTHJ.js.map +1 -0
  123. package/dist/components/{p-garvKln8.js → p-BAuOB8M-.js} +2 -2
  124. package/dist/components/p-BAuOB8M-.js.map +1 -0
  125. package/dist/components/p-BFEV_v80.js +5 -0
  126. package/dist/components/p-BFEV_v80.js.map +1 -0
  127. package/dist/components/{p-C02XtMl4.js → p-BHyxBmg6.js} +2 -2
  128. package/dist/components/{p-CfTvpqud.js → p-BNRm88jS.js} +2 -2
  129. package/dist/components/{p-O1_Yvjd6.js → p-BT9d9jRt.js} +2 -2
  130. package/dist/components/{p-oDn1DcWj.js → p-BZDn1Vuv.js} +2 -2
  131. package/dist/components/{p-VEJB73Ei.js → p-Bdf4AcJ2.js} +2 -2
  132. package/dist/components/{p-CelQDFR0.js → p-C12jtCFb.js} +2 -2
  133. package/dist/components/{p-Dzs4u_ZY.js → p-CABws4i9.js} +2 -2
  134. package/dist/components/p-CIuxJYJL.js.map +1 -1
  135. package/dist/components/{p-CZgX-9yo.js → p-COznr3CH.js} +2 -2
  136. package/dist/components/{p-BqeEZXPn.js → p-CPROw2BU.js} +2 -2
  137. package/dist/components/{p-BKQMbekH.js → p-CWcvgy8e.js} +2 -2
  138. package/dist/components/{p-CMdP8O-G.js → p-Ca253f0h.js} +2 -2
  139. package/dist/components/{p-EG7pMA2M.js → p-CeZe0Qql.js} +2 -2
  140. package/dist/components/p-CioaIHsi.js.map +1 -1
  141. package/dist/components/{p-DH341c7b.js → p-Cku0WCYo.js} +2 -2
  142. package/dist/components/p-Cku0WCYo.js.map +1 -0
  143. package/dist/components/{p-Due5EmBt.js → p-Clyxptbp.js} +2 -2
  144. package/dist/components/{p-taOlygmc.js → p-Cs2aiMUK.js} +2 -2
  145. package/dist/components/p-Cs2aiMUK.js.map +1 -0
  146. package/dist/components/{p-DjrtwKcK.js → p-CvEK3ZK1.js} +2 -2
  147. package/dist/components/p-Cxz4L6FA.js +5 -0
  148. package/dist/components/p-Cxz4L6FA.js.map +1 -0
  149. package/dist/components/{p-MnZadXO8.js → p-D1Vdomj_.js} +2 -2
  150. package/dist/components/{p-DRGCkSEK.js → p-D3bzgaCV.js} +2 -2
  151. package/dist/components/{p-DnVcQAR9.js → p-D3in41xo.js} +2 -2
  152. package/dist/components/p-DTwJX9HL.js +5 -0
  153. package/dist/components/p-DTwJX9HL.js.map +1 -0
  154. package/dist/components/p-DUo-H-nW.js +5 -0
  155. package/dist/components/p-DUo-H-nW.js.map +1 -0
  156. package/dist/components/{p-DCTZZ5Rd.js → p-DjQ6RXWP.js} +2 -2
  157. package/dist/components/p-DxuSiXYg.js.map +1 -1
  158. package/dist/components/{p-CxzyM08j.js → p-DyL2wWm6.js} +2 -2
  159. package/dist/components/{p-avWSFTeP.js → p-JvS9LLoO.js} +2 -2
  160. package/dist/{viewer/p-7m7Vr5V7.js → components/p-Ng27jBsS.js} +2 -2
  161. package/dist/components/p-Ng27jBsS.js.map +1 -0
  162. package/dist/components/{p-BC777sCK.js → p-UJR-ixsy.js} +2 -2
  163. package/dist/components/{p-Ib4vgh2t.js → p-UrT4ZJv3.js} +2 -2
  164. package/dist/components/{p-Ib4vgh2t.js.map → p-UrT4ZJv3.js.map} +1 -1
  165. package/dist/components/p-Y8W_BXUk.js.map +1 -1
  166. package/dist/components/{p-mpsCUvSn.js → p-_qi2VkC2.js} +2 -2
  167. package/dist/components/{p-CNprIkKd.js → p-rDr0x5Z7.js} +2 -2
  168. package/dist/components/vertex-scene-tree-table-cell.js +1 -1
  169. package/dist/components/vertex-scene-tree-table-cell.js.map +1 -1
  170. package/dist/components/vertex-scene-tree-table-column.js.map +1 -1
  171. package/dist/components/vertex-scene-tree-table-layout.js +1 -1
  172. package/dist/components/vertex-scene-tree.js +1 -1
  173. package/dist/components/vertex-scene-tree.js.map +1 -1
  174. package/dist/components/vertex-viewer-annotation-callout.js.map +1 -1
  175. package/dist/components/vertex-viewer-box-query-tool.js +1 -1
  176. package/dist/components/vertex-viewer-box-query-tool.js.map +1 -1
  177. package/dist/components/vertex-viewer-button.js +1 -1
  178. package/dist/components/vertex-viewer-default-toolbar.js +1 -1
  179. package/dist/components/vertex-viewer-default-toolbar.js.map +1 -1
  180. package/dist/components/vertex-viewer-dom-element.js +1 -1
  181. package/dist/components/vertex-viewer-dom-group.js +1 -1
  182. package/dist/components/vertex-viewer-dom-renderer.js +1 -1
  183. package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
  184. package/dist/components/vertex-viewer-markup-arrow.js +1 -1
  185. package/dist/components/vertex-viewer-markup-circle.js +1 -1
  186. package/dist/components/vertex-viewer-markup-freeform.js +1 -1
  187. package/dist/components/vertex-viewer-markup-tool.js +1 -1
  188. package/dist/components/vertex-viewer-markup-tool.js.map +1 -1
  189. package/dist/components/vertex-viewer-markup.js +1 -1
  190. package/dist/components/vertex-viewer-markup.js.map +1 -1
  191. package/dist/components/vertex-viewer-measurement-details.js +1 -1
  192. package/dist/components/vertex-viewer-measurement-distance.js +1 -1
  193. package/dist/components/vertex-viewer-measurement-line.js +1 -1
  194. package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
  195. package/dist/components/vertex-viewer-measurement-precise.js +1 -1
  196. package/dist/components/vertex-viewer-pin-group.js +1 -1
  197. package/dist/components/vertex-viewer-pin-label-line.js +1 -1
  198. package/dist/components/vertex-viewer-pin-label.js +1 -1
  199. package/dist/components/vertex-viewer-pin-tool.js +1 -1
  200. package/dist/components/vertex-viewer-teleport-tool.js +1 -1
  201. package/dist/components/vertex-viewer-transform-widget.js +1 -1
  202. package/dist/components/vertex-viewer-transform-widget.js.map +1 -1
  203. package/dist/components/vertex-viewer-view-cube.js +1 -1
  204. package/dist/components/vertex-viewer-walk-mode-tool.js +1 -1
  205. package/dist/components/vertex-viewer.js +1 -1
  206. package/dist/esm/{bundle-CZZALKHT.js → bundle-2UsvOTHJ.js} +28 -25
  207. package/dist/esm/bundle-2UsvOTHJ.js.map +1 -0
  208. package/dist/esm/{config-CyaUTJEG.js → config-ss9ha12b.js} +3 -3
  209. package/dist/esm/{config-CyaUTJEG.js.map → config-ss9ha12b.js.map} +1 -1
  210. package/dist/esm/{controller-ByBd8r3O.js → controller-BPECXXfj.js} +3 -3
  211. package/dist/esm/{controller-ByBd8r3O.js.map → controller-BPECXXfj.js.map} +1 -1
  212. package/dist/esm/{dom-Bbf2HAst.js → dom-DaP9SiyY.js} +3 -3
  213. package/dist/esm/{dom-Bbf2HAst.js.map → dom-DaP9SiyY.js.map} +1 -1
  214. package/dist/esm/{entities-DriL3zBC.js → entities-DEFAhYdV.js} +4 -4
  215. package/dist/esm/{entities-DriL3zBC.js.map → entities-DEFAhYdV.js.map} +1 -1
  216. package/dist/esm/{geometry_pb-BEB8SExe.js → geometry_pb-D7fM1PYG.js} +3 -3
  217. package/dist/esm/{geometry_pb-BEB8SExe.js.map → geometry_pb-D7fM1PYG.js.map} +1 -1
  218. package/dist/esm/grpc-hWL8wFvk.js.map +1 -1
  219. package/dist/esm/index.js +13 -13
  220. package/dist/esm/index.mjs +13 -13
  221. package/dist/esm/loader.js +1 -1
  222. package/dist/esm/loader.mjs +1 -1
  223. package/dist/esm/{markup-y96-uR-l.js → markup-B58g75Hr.js} +3 -3
  224. package/dist/esm/{markup-y96-uR-l.js.map → markup-B58g75Hr.js.map} +1 -1
  225. package/dist/esm/{model-BJQo0DxL.js → model-B5KuXEsl.js} +3 -3
  226. package/dist/esm/{model-BJQo0DxL.js.map → model-B5KuXEsl.js.map} +1 -1
  227. package/dist/esm/model-BHVr1tU0.js.map +1 -1
  228. package/dist/esm/{model-CTdG73h9.js → model-Dc6T63-k.js} +3 -3
  229. package/dist/esm/{model-CTdG73h9.js.map → model-Dc6T63-k.js.map} +1 -1
  230. package/dist/esm/{multiElementInteractionHandler-C45E8VzE.js → multiElementInteractionHandler-3tE3OPpw.js} +6 -5
  231. package/dist/esm/multiElementInteractionHandler-3tE3OPpw.js.map +1 -0
  232. package/dist/esm/{overlays-DmcRtaSn.js → overlays-BwIqsqLW.js} +3 -3
  233. package/dist/esm/{overlays-DmcRtaSn.js.map → overlays-BwIqsqLW.js.map} +1 -1
  234. package/dist/esm/{queries-DWjy-LsV.js → queries-BcmE5Zbq.js} +5 -5
  235. package/dist/esm/queries-BcmE5Zbq.js.map +1 -0
  236. package/dist/esm/{regl-component-zzdsBise.js → regl-component-gIonUTBJ.js} +6 -6
  237. package/dist/esm/{regl-component-zzdsBise.js.map → regl-component-gIonUTBJ.js.map} +1 -1
  238. package/dist/esm/{representation_pb-CQdJxiGO.js → representation_pb-Bf023NuN.js} +3 -3
  239. package/dist/esm/{representation_pb-CQdJxiGO.js.map → representation_pb-Bf023NuN.js.map} +1 -1
  240. package/dist/esm/{results-ClIgKssN.js → results-De9arm7M.js} +3 -3
  241. package/dist/esm/{results-ClIgKssN.js.map → results-De9arm7M.js.map} +1 -1
  242. package/dist/esm/{streamAttributes-CTs61PCl.js → streamAttributes-Bj2xDHfI.js} +3 -3
  243. package/dist/esm/{streamAttributes-CTs61PCl.js.map → streamAttributes-Bj2xDHfI.js.map} +1 -1
  244. package/dist/esm/{util-DUjEw5Kh.js → util-CMPFqnEv.js} +3 -3
  245. package/dist/esm/{util-DUjEw5Kh.js.map → util-CMPFqnEv.js.map} +1 -1
  246. package/dist/esm/{utils-DOjHP1wA.js → utils-B1mSYmAK.js} +3 -3
  247. package/dist/esm/{utils-DOjHP1wA.js.map → utils-B1mSYmAK.js.map} +1 -1
  248. package/dist/esm/{utils-DJ5FvINs.js → utils-c-mcLgsj.js} +3 -3
  249. package/dist/esm/utils-c-mcLgsj.js.map +1 -0
  250. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +1 -1
  251. package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js.map +1 -1
  252. package/dist/esm/vertex-scene-tree-table-cell.entry.js +2 -2
  253. package/dist/esm/vertex-scene-tree-table-cell.entry.js.map +1 -1
  254. package/dist/esm/vertex-scene-tree-table-column.entry.js.map +1 -1
  255. package/dist/esm/vertex-scene-tree.entry.js +3 -3
  256. package/dist/esm/vertex-scene-tree.entry.js.map +1 -1
  257. package/dist/esm/vertex-viewer-annotation-callout.entry.js.map +1 -1
  258. package/dist/esm/vertex-viewer-box-query-tool.entry.js +4 -4
  259. package/dist/esm/vertex-viewer-box-query-tool.entry.js.map +1 -1
  260. package/dist/esm/vertex-viewer-button_3.entry.js +6 -1
  261. package/dist/esm/vertex-viewer-button_3.entry.js.map +1 -1
  262. package/dist/esm/vertex-viewer-default-toolbar.entry.js +2 -2
  263. package/dist/esm/vertex-viewer-default-toolbar.entry.js.map +1 -1
  264. package/dist/esm/vertex-viewer-dom-element_2.entry.js +5 -5
  265. package/dist/esm/vertex-viewer-dom-group.entry.js +1 -1
  266. package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +5 -5
  267. package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +3 -3
  268. package/dist/esm/vertex-viewer-markup-tool.entry.js +4 -4
  269. package/dist/esm/vertex-viewer-markup-tool.entry.js.map +1 -1
  270. package/dist/esm/vertex-viewer-markup.entry.js +3 -3
  271. package/dist/esm/vertex-viewer-markup.entry.js.map +1 -1
  272. package/dist/esm/vertex-viewer-measurement-details.entry.js +3 -3
  273. package/dist/esm/vertex-viewer-measurement-distance.entry.js +8 -8
  274. package/dist/esm/vertex-viewer-measurement-line_2.entry.js +5 -5
  275. package/dist/esm/vertex-viewer-measurement-precise.entry.js +7 -7
  276. package/dist/esm/vertex-viewer-pin-group.entry.js +7 -7
  277. package/dist/esm/vertex-viewer-pin-group.entry.js.map +1 -1
  278. package/dist/esm/vertex-viewer-pin-label_2.entry.js +7 -6
  279. package/dist/esm/vertex-viewer-pin-label_2.entry.js.map +1 -1
  280. package/dist/esm/vertex-viewer-pin-tool.entry.js +3 -3
  281. package/dist/esm/vertex-viewer-spinner.entry.js.map +1 -1
  282. package/dist/esm/vertex-viewer-teleport-tool.entry.js +2 -2
  283. package/dist/esm/vertex-viewer-transform-widget.entry.js +6 -6
  284. package/dist/esm/vertex-viewer-transform-widget.entry.js.map +1 -1
  285. package/dist/esm/vertex-viewer-view-cube.entry.js +2 -2
  286. package/dist/esm/vertex-viewer-walk-mode-tool.entry.js +1 -1
  287. package/dist/esm/vertex-viewer.entry.js +8 -8
  288. package/dist/esm/viewer.js +1 -1
  289. package/dist/esm/{viewport-D90kzsD7.js → viewport-CHtidaFL.js} +3 -3
  290. package/dist/esm/{viewport-D90kzsD7.js.map → viewport-CHtidaFL.js.map} +1 -1
  291. package/dist/types/components/viewer-button/viewer-button.d.ts +5 -0
  292. package/dist/types/components.d.ts +14 -1
  293. package/dist/types/lib/walk-mode/model.d.ts +10 -10
  294. package/dist/types/regl-shape.d.ts +1 -5
  295. package/dist/viewer/index.esm.js +1 -1
  296. package/dist/viewer/{p-12a673f0.entry.js → p-00540193.entry.js} +2 -2
  297. package/dist/viewer/p-00540193.entry.js.map +1 -0
  298. package/dist/viewer/{p-78f422af.entry.js → p-287e0670.entry.js} +2 -2
  299. package/dist/viewer/{p-78f422af.entry.js.map → p-287e0670.entry.js.map} +1 -1
  300. package/dist/viewer/p-2UsvOTHJ.js +5 -0
  301. package/dist/viewer/p-2UsvOTHJ.js.map +1 -0
  302. package/dist/viewer/{p-510fd2e1.entry.js → p-2d2fa147.entry.js} +2 -2
  303. package/dist/viewer/{p-fe434552.entry.js → p-30a5748d.entry.js} +2 -2
  304. package/dist/viewer/p-32a51a21.entry.js +5 -0
  305. package/dist/viewer/p-32a51a21.entry.js.map +1 -0
  306. package/dist/viewer/{p-aa0359e0.entry.js → p-3c5dd716.entry.js} +2 -2
  307. package/dist/viewer/{p-9312a936.entry.js → p-48020de1.entry.js} +2 -2
  308. package/dist/viewer/{p-d5542b6a.entry.js → p-4dd67d16.entry.js} +2 -2
  309. package/dist/viewer/p-4dd67d16.entry.js.map +1 -0
  310. package/dist/viewer/p-504e77a7.entry.js +5 -0
  311. package/dist/viewer/{p-c2c3579f.entry.js.map → p-504e77a7.entry.js.map} +1 -1
  312. package/dist/viewer/{p-71c03352.entry.js → p-53f6cc59.entry.js} +2 -2
  313. package/dist/viewer/{p-7b4eec65.entry.js → p-5cfb3047.entry.js} +2 -2
  314. package/dist/viewer/{p-e3981cf8.entry.js → p-7cb9c9bb.entry.js} +2 -2
  315. package/dist/viewer/p-7cb9c9bb.entry.js.map +1 -0
  316. package/dist/viewer/{p-56e39cff.entry.js → p-83683307.entry.js} +2 -2
  317. package/dist/viewer/{p-a108a305.entry.js → p-9a39315d.entry.js} +2 -2
  318. package/dist/viewer/{p-O1_Yvjd6.js → p-BT9d9jRt.js} +2 -2
  319. package/dist/viewer/{p-O1_Yvjd6.js.map → p-BT9d9jRt.js.map} +1 -1
  320. package/dist/viewer/{p-VEJB73Ei.js → p-Bdf4AcJ2.js} +2 -2
  321. package/dist/viewer/{p-VEJB73Ei.js.map → p-Bdf4AcJ2.js.map} +1 -1
  322. package/dist/viewer/{p-Cr2EnhS-.js → p-BhKTTmpL.js} +2 -2
  323. package/dist/viewer/{p-Cr2EnhS-.js.map → p-BhKTTmpL.js.map} +1 -1
  324. package/dist/viewer/{p-CelQDFR0.js → p-C12jtCFb.js} +2 -2
  325. package/dist/viewer/{p-CelQDFR0.js.map → p-C12jtCFb.js.map} +1 -1
  326. package/dist/viewer/p-CEDqc5sS.js +5 -0
  327. package/dist/viewer/{p-BDy3SLKk.js.map → p-CEDqc5sS.js.map} +1 -1
  328. package/dist/viewer/{p-C6YtUG51.js → p-CS8PfgcI.js} +2 -2
  329. package/dist/viewer/{p-C6YtUG51.js.map → p-CS8PfgcI.js.map} +1 -1
  330. package/dist/viewer/{p-EG7pMA2M.js → p-CeZe0Qql.js} +2 -2
  331. package/dist/viewer/{p-EG7pMA2M.js.map → p-CeZe0Qql.js.map} +1 -1
  332. package/dist/viewer/p-CioaIHsi.js.map +1 -1
  333. package/dist/viewer/{p-EUeCUp3y.js → p-CxBXErQ8.js} +2 -2
  334. package/dist/viewer/{p-EUeCUp3y.js.map → p-CxBXErQ8.js.map} +1 -1
  335. package/dist/viewer/{p-BIR7Lfxx.js → p-CyiY_hsD.js} +2 -2
  336. package/dist/viewer/{p-BIR7Lfxx.js.map → p-CyiY_hsD.js.map} +1 -1
  337. package/dist/viewer/{p-CIBBr-p1.js → p-D0aTA_2m.js} +2 -2
  338. package/dist/viewer/{p-CIBBr-p1.js.map → p-D0aTA_2m.js.map} +1 -1
  339. package/dist/viewer/{p-C-huOg09.js → p-D2IEHEGM.js} +2 -2
  340. package/dist/viewer/{p-C-huOg09.js.map → p-D2IEHEGM.js.map} +1 -1
  341. package/dist/viewer/{p-UQXG8bCI.js → p-DBfvBC5O.js} +2 -2
  342. package/dist/viewer/p-DBfvBC5O.js.map +1 -0
  343. package/dist/viewer/{p-B-J4CqZy.js → p-DHK23fw4.js} +2 -2
  344. package/dist/viewer/{p-B-J4CqZy.js.map → p-DHK23fw4.js.map} +1 -1
  345. package/dist/{components/p-QhlhRt6X.js → viewer/p-DIbJ8Ijj.js} +2 -2
  346. package/dist/viewer/p-DIbJ8Ijj.js.map +1 -0
  347. package/dist/viewer/{p-CxzyM08j.js → p-DyL2wWm6.js} +2 -2
  348. package/dist/viewer/{p-CxzyM08j.js.map → p-DyL2wWm6.js.map} +1 -1
  349. package/dist/viewer/{p-avWSFTeP.js → p-JvS9LLoO.js} +2 -2
  350. package/dist/viewer/{p-avWSFTeP.js.map → p-JvS9LLoO.js.map} +1 -1
  351. package/dist/viewer/p-_LpaX1ga.js +5 -0
  352. package/dist/viewer/p-_LpaX1ga.js.map +1 -0
  353. package/dist/viewer/{p-mpsCUvSn.js → p-_qi2VkC2.js} +2 -2
  354. package/dist/viewer/{p-mpsCUvSn.js.map → p-_qi2VkC2.js.map} +1 -1
  355. package/dist/viewer/p-b5cc83a4.entry.js.map +1 -1
  356. package/dist/viewer/{p-82ed4346.entry.js → p-b79c295a.entry.js} +2 -2
  357. package/dist/viewer/{p-fc7d9b2b.entry.js → p-c531ca97.entry.js} +2 -2
  358. package/dist/viewer/{p-fc7d9b2b.entry.js.map → p-c531ca97.entry.js.map} +1 -1
  359. package/dist/viewer/p-c9dee5c4.entry.js +5 -0
  360. package/dist/viewer/p-c9dee5c4.entry.js.map +1 -0
  361. package/dist/viewer/{p-c2454523.entry.js → p-cc835213.entry.js} +2 -2
  362. package/dist/viewer/p-ce711ae0.entry.js +5 -0
  363. package/dist/viewer/p-ce711ae0.entry.js.map +1 -0
  364. package/dist/viewer/p-d357d235.entry.js.map +1 -1
  365. package/dist/viewer/{p-91fca24b.entry.js → p-d5a57757.entry.js} +2 -2
  366. package/dist/viewer/p-e4913b06.entry.js +5 -0
  367. package/dist/viewer/p-e4913b06.entry.js.map +1 -0
  368. package/dist/viewer/p-e98db875.entry.js.map +1 -1
  369. package/dist/viewer/{p-a893a299.entry.js → p-edc2f914.entry.js} +2 -2
  370. package/dist/viewer/{p-03a531d9.entry.js → p-ef9437ca.entry.js} +2 -2
  371. package/dist/viewer/{p-49578ec9.entry.js → p-fd3a5837.entry.js} +2 -2
  372. package/dist/viewer/p-fd3a5837.entry.js.map +1 -0
  373. package/dist/viewer/p-ipyYHvea.js.map +1 -1
  374. package/dist/viewer/{p-Ce1j43tF.js → p-kMZA0v7I.js} +2 -2
  375. package/dist/viewer/{p-Ce1j43tF.js.map → p-kMZA0v7I.js.map} +1 -1
  376. package/dist/viewer/viewer.esm.js +1 -1
  377. package/package.json +8 -8
  378. package/readme.md +14 -8
  379. package/dist/cjs/bundle-07I6_WqC.js.map +0 -1
  380. package/dist/cjs/multiElementInteractionHandler-Bqpg2wVT.js.map +0 -1
  381. package/dist/cjs/queries-GhYmoomu.js.map +0 -1
  382. package/dist/cjs/utils-BsXO-wLi.js.map +0 -1
  383. package/dist/components/p-B4sO9HdX.js +0 -5
  384. package/dist/components/p-B4sO9HdX.js.map +0 -1
  385. package/dist/components/p-C--Voxln.js +0 -5
  386. package/dist/components/p-C--Voxln.js.map +0 -1
  387. package/dist/components/p-CZZALKHT.js +0 -5
  388. package/dist/components/p-CZZALKHT.js.map +0 -1
  389. package/dist/components/p-Cn0vKqIN.js +0 -5
  390. package/dist/components/p-Cn0vKqIN.js.map +0 -1
  391. package/dist/components/p-DH341c7b.js.map +0 -1
  392. package/dist/components/p-Dmc49hX3.js +0 -5
  393. package/dist/components/p-Dmc49hX3.js.map +0 -1
  394. package/dist/components/p-QhlhRt6X.js.map +0 -1
  395. package/dist/components/p-garvKln8.js.map +0 -1
  396. package/dist/components/p-taOlygmc.js.map +0 -1
  397. package/dist/esm/bundle-CZZALKHT.js.map +0 -1
  398. package/dist/esm/multiElementInteractionHandler-C45E8VzE.js.map +0 -1
  399. package/dist/esm/queries-DWjy-LsV.js.map +0 -1
  400. package/dist/esm/utils-DJ5FvINs.js.map +0 -1
  401. package/dist/viewer/p-02384d83.entry.js +0 -5
  402. package/dist/viewer/p-02384d83.entry.js.map +0 -1
  403. package/dist/viewer/p-12a673f0.entry.js.map +0 -1
  404. package/dist/viewer/p-49578ec9.entry.js.map +0 -1
  405. package/dist/viewer/p-4c223366.entry.js +0 -5
  406. package/dist/viewer/p-4c223366.entry.js.map +0 -1
  407. package/dist/viewer/p-7m7Vr5V7.js.map +0 -1
  408. package/dist/viewer/p-8774425b.entry.js +0 -5
  409. package/dist/viewer/p-8774425b.entry.js.map +0 -1
  410. package/dist/viewer/p-9c02567d.entry.js +0 -5
  411. package/dist/viewer/p-9c02567d.entry.js.map +0 -1
  412. package/dist/viewer/p-BDy3SLKk.js +0 -5
  413. package/dist/viewer/p-CZZALKHT.js +0 -5
  414. package/dist/viewer/p-CZZALKHT.js.map +0 -1
  415. package/dist/viewer/p-Cju1inFh.js +0 -5
  416. package/dist/viewer/p-Cju1inFh.js.map +0 -1
  417. package/dist/viewer/p-UQXG8bCI.js.map +0 -1
  418. package/dist/viewer/p-c2c3579f.entry.js +0 -5
  419. package/dist/viewer/p-d5542b6a.entry.js.map +0 -1
  420. package/dist/viewer/p-e3981cf8.entry.js.map +0 -1
  421. /package/dist/components/{p-C02XtMl4.js.map → p-BHyxBmg6.js.map} +0 -0
  422. /package/dist/components/{p-CfTvpqud.js.map → p-BNRm88jS.js.map} +0 -0
  423. /package/dist/components/{p-O1_Yvjd6.js.map → p-BT9d9jRt.js.map} +0 -0
  424. /package/dist/components/{p-oDn1DcWj.js.map → p-BZDn1Vuv.js.map} +0 -0
  425. /package/dist/components/{p-VEJB73Ei.js.map → p-Bdf4AcJ2.js.map} +0 -0
  426. /package/dist/components/{p-CelQDFR0.js.map → p-C12jtCFb.js.map} +0 -0
  427. /package/dist/components/{p-Dzs4u_ZY.js.map → p-CABws4i9.js.map} +0 -0
  428. /package/dist/components/{p-CZgX-9yo.js.map → p-COznr3CH.js.map} +0 -0
  429. /package/dist/components/{p-BqeEZXPn.js.map → p-CPROw2BU.js.map} +0 -0
  430. /package/dist/components/{p-BKQMbekH.js.map → p-CWcvgy8e.js.map} +0 -0
  431. /package/dist/components/{p-CMdP8O-G.js.map → p-Ca253f0h.js.map} +0 -0
  432. /package/dist/components/{p-EG7pMA2M.js.map → p-CeZe0Qql.js.map} +0 -0
  433. /package/dist/components/{p-Due5EmBt.js.map → p-Clyxptbp.js.map} +0 -0
  434. /package/dist/components/{p-DjrtwKcK.js.map → p-CvEK3ZK1.js.map} +0 -0
  435. /package/dist/components/{p-MnZadXO8.js.map → p-D1Vdomj_.js.map} +0 -0
  436. /package/dist/components/{p-DRGCkSEK.js.map → p-D3bzgaCV.js.map} +0 -0
  437. /package/dist/components/{p-DnVcQAR9.js.map → p-D3in41xo.js.map} +0 -0
  438. /package/dist/components/{p-DCTZZ5Rd.js.map → p-DjQ6RXWP.js.map} +0 -0
  439. /package/dist/components/{p-CxzyM08j.js.map → p-DyL2wWm6.js.map} +0 -0
  440. /package/dist/components/{p-avWSFTeP.js.map → p-JvS9LLoO.js.map} +0 -0
  441. /package/dist/components/{p-BC777sCK.js.map → p-UJR-ixsy.js.map} +0 -0
  442. /package/dist/components/{p-mpsCUvSn.js.map → p-_qi2VkC2.js.map} +0 -0
  443. /package/dist/components/{p-CNprIkKd.js.map → p-rDr0x5Z7.js.map} +0 -0
  444. /package/dist/viewer/{p-510fd2e1.entry.js.map → p-2d2fa147.entry.js.map} +0 -0
  445. /package/dist/viewer/{p-fe434552.entry.js.map → p-30a5748d.entry.js.map} +0 -0
  446. /package/dist/viewer/{p-aa0359e0.entry.js.map → p-3c5dd716.entry.js.map} +0 -0
  447. /package/dist/viewer/{p-9312a936.entry.js.map → p-48020de1.entry.js.map} +0 -0
  448. /package/dist/viewer/{p-71c03352.entry.js.map → p-53f6cc59.entry.js.map} +0 -0
  449. /package/dist/viewer/{p-7b4eec65.entry.js.map → p-5cfb3047.entry.js.map} +0 -0
  450. /package/dist/viewer/{p-56e39cff.entry.js.map → p-83683307.entry.js.map} +0 -0
  451. /package/dist/viewer/{p-a108a305.entry.js.map → p-9a39315d.entry.js.map} +0 -0
  452. /package/dist/viewer/{p-82ed4346.entry.js.map → p-b79c295a.entry.js.map} +0 -0
  453. /package/dist/viewer/{p-c2454523.entry.js.map → p-cc835213.entry.js.map} +0 -0
  454. /package/dist/viewer/{p-91fca24b.entry.js.map → p-d5a57757.entry.js.map} +0 -0
  455. /package/dist/viewer/{p-a893a299.entry.js.map → p-edc2f914.entry.js.map} +0 -0
  456. /package/dist/viewer/{p-03a531d9.entry.js.map → p-ef9437ca.entry.js.map} +0 -0
@@ -124,4 +124,4 @@ button {
124
124
  .clear-btn:disabled {
125
125
  pointer-events: none;
126
126
  opacity: 0.5;
127
- }
127
+ }
@@ -16,29 +16,29 @@ button {
16
16
  * @prop --scene-tree-cell-background-hover: A CSS background of a cell when
17
17
  * hovered.
18
18
  */
19
- --scene-tree-cell-background-hover: var(--blue-200);
19
+ --scene-tree-cell-background-hover: var(--blue-200);
20
20
 
21
- /**
21
+ /**
22
22
  * @prop --scene-tree-cell-background-selected: A CSS background color of a
23
23
  * cell when selected.
24
24
  */
25
- --scene-tree-cell-background-selected: var(--blue-300);
25
+ --scene-tree-cell-background-selected: var(--blue-300);
26
26
 
27
- /**
27
+ /**
28
28
  * @prop --scene-tree-cell-text-positioning: A CSS text alignment
29
29
  * value that indicates how text should be positioned.
30
30
  */
31
- --scene-tree-cell-text-positioning: left;
31
+ --scene-tree-cell-text-positioning: left;
32
32
 
33
- /**
33
+ /**
34
34
  * @prop --scene-tree-cell-padding: CSS lengths that specifies the amount of
35
35
  * padding between the cell's border and content.
36
36
  */
37
- --scene-tree-cell-padding: 0.25rem 0;
37
+ --scene-tree-cell-padding: 0.25rem 0;
38
38
 
39
- font-size: var(--scene-tree-default-font-size, unset);
40
- font-family: var(--scene-tree-default-font-family, unset);
41
- color: var(--scene-tree-default-font-color, #444444);
39
+ font-size: var(--scene-tree-default-font-size, unset);
40
+ font-family: var(--scene-tree-default-font-family, unset);
41
+ color: var(--scene-tree-default-font-color, #444444);
42
42
  }
43
43
 
44
44
  :host([is-hovered]) {
@@ -16,4 +16,3 @@
16
16
  width: 100%;
17
17
  overflow: hidden;
18
18
  }
19
-
@@ -11,19 +11,19 @@
11
11
  * @prop --scene-tree-table-row-padding: CSS lengths that specifies the amount of
12
12
  * padding between the row's border and content.
13
13
  */
14
- --scene-tree-table-row-padding: 2px 0px;
14
+ --scene-tree-table-row-padding: 2px 0px;
15
15
 
16
16
  /**
17
17
  * @prop --scene-tree-table-column-gap: CSS length that specifies the amount of
18
18
  * padding between columns in the table.
19
19
  */
20
- --scene-tree-table-column-gap: 0.5rem;
20
+ --scene-tree-table-column-gap: 0.5rem;
21
21
 
22
22
  /**
23
23
  * @prop --scene-tree-table-column-resize-cursor: A CSS cursor value that will
24
24
  * be displayed when resizing a column. Defaults to `col-resize`.
25
25
  */
26
- --scene-tree-table-column-resize-cursor: col-resize;
26
+ --scene-tree-table-column-resize-cursor: col-resize;
27
27
  }
28
28
 
29
29
  .header {
@@ -1,18 +1,17 @@
1
1
  :host {
2
2
  display: block;
3
3
 
4
-
5
4
  /**
6
5
  * @prop --viewer-annotation-callout-primary-color: A CSS color that
7
6
  * specifies the primary color of the callout.
8
7
  */
9
- --viewer-annotation-callout-primary-color: var(--blue-700);
8
+ --viewer-annotation-callout-primary-color: var(--blue-700);
10
9
 
11
10
  /**
12
11
  * @prop --viewer-annotation-callout-accent-color: A CSS color that
13
12
  * specifies a contrasting color to the primary color.
14
13
  */
15
- --viewer-annotation-callout-accent-color: var(--white);
14
+ --viewer-annotation-callout-accent-color: var(--white);
16
15
  }
17
16
 
18
17
  .content {
@@ -45,4 +44,4 @@
45
44
 
46
45
  .icon {
47
46
  color: var(--viewer-annotation-callout-accent-color);
48
- }
47
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/components/viewer-box-query-tool/types.ts"],"names":[],"mappings":"","sourcesContent":["export type VolumeIntersectionQueryType =\n | 'clearAndSelect'\n | 'select'\n | 'deselect';\n\nexport type VolumeIntersectionQueryMode = 'exclusive' | 'inclusive';\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/components/viewer-box-query-tool/types.ts"],"names":[],"mappings":"","sourcesContent":["export type VolumeIntersectionQueryType =\n 'clearAndSelect' | 'select' | 'deselect';\n\nexport type VolumeIntersectionQueryMode = 'exclusive' | 'inclusive';\n"]}
@@ -52,12 +52,14 @@
52
52
  border-radius: var(--viewer-box-query-outline-border-radius);
53
53
  }
54
54
 
55
- :host([exclusive="true"]) .outline {
56
- border: 3px var(--viewer-box-query-outline-exclusive-border-style) var(--viewer-box-query-outline-exclusive-color);
55
+ :host([exclusive='true']) .outline {
56
+ border: 3px var(--viewer-box-query-outline-exclusive-border-style)
57
+ var(--viewer-box-query-outline-exclusive-color);
57
58
  }
58
59
 
59
- :host([inclusive="true"]) .outline {
60
- border: 3px var(--viewer-box-query-outline-inclusive-border-style) var(--viewer-box-query-outline-inclusive-color);
60
+ :host([inclusive='true']) .outline {
61
+ border: 3px var(--viewer-box-query-outline-inclusive-border-style)
62
+ var(--viewer-box-query-outline-inclusive-color);
61
63
  }
62
64
 
63
65
  .fill {
@@ -70,10 +72,10 @@
70
72
  border-radius: var(--viewer-box-query-outline-border-radius);
71
73
  }
72
74
 
73
- :host([exclusive="true"]) .fill {
75
+ :host([exclusive='true']) .fill {
74
76
  background-color: var(--viewer-box-query-outline-exclusive-color);
75
77
  }
76
78
 
77
- :host([inclusive="true"]) .fill {
79
+ :host([inclusive='true']) .fill {
78
80
  background-color: var(--viewer-box-query-outline-inclusive-color);
79
- }
81
+ }
@@ -3,8 +3,15 @@
3
3
  */
4
4
  import { h, Host } from "@stencil/core";
5
5
  export class ViewerButton {
6
+ constructor() {
7
+ /**
8
+ * Accessible name applied to the internal native button. Use this for
9
+ * icon-only buttons or when the slotted content does not provide a name.
10
+ */
11
+ this.ariaLabel = null;
12
+ }
6
13
  render() {
7
- return (h(Host, { key: 'ad089fc6e38b51cc0bd267c21f034f5cf92787f4' }, h("button", { key: '6c4c11f6ee44645ba5b8e8246dda2a2f7f7ca472', class: "viewer-button" }, h("slot", { key: '17fae4ab960240b4bb6e3fb41bfafec60e3db3f8' }))));
14
+ return (h(Host, { key: '48d5d5322a3a9a0ea1057612fe2a8f1c9bef5171' }, h("button", { key: 'd0e8582256ea5b9a10e33819991e2d6e76271c43', class: "viewer-button", "aria-label": this.ariaLabel }, h("slot", { key: 'cc647426fc0a227fc0aa0e1f49ff65cdedd73f1d' }))));
8
15
  }
9
16
  static get is() { return "vertex-viewer-button"; }
10
17
  static get encapsulation() { return "shadow"; }
@@ -18,5 +25,29 @@ export class ViewerButton {
18
25
  "$": ["viewer-button.css"]
19
26
  };
20
27
  }
28
+ static get properties() {
29
+ return {
30
+ "ariaLabel": {
31
+ "type": "string",
32
+ "mutable": false,
33
+ "complexType": {
34
+ "original": "string | null",
35
+ "resolved": "null | string",
36
+ "references": {}
37
+ },
38
+ "required": false,
39
+ "optional": false,
40
+ "docs": {
41
+ "tags": [],
42
+ "text": "Accessible name applied to the internal native button. Use this for\nicon-only buttons or when the slotted content does not provide a name."
43
+ },
44
+ "getter": false,
45
+ "setter": false,
46
+ "reflect": false,
47
+ "attribute": "aria-label",
48
+ "defaultValue": "null"
49
+ }
50
+ };
51
+ }
21
52
  }
22
53
  //# sourceMappingURL=viewer-button.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-button.js","sourceRoot":"","sources":["../../../../../src/components/viewer-button/viewer-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOnD,MAAM,OAAO,YAAY;IAChB,MAAM;QACX,OAAO,CACL,EAAC,IAAI;YACH,+DAAQ,KAAK,EAAC,eAAe;gBAC3B,8DAAa,CACN,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host } from '@stencil/core';\n\n@Component({\n tag: 'vertex-viewer-button',\n styleUrl: 'viewer-button.css',\n shadow: true,\n})\nexport class ViewerButton {\n public render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <button class=\"viewer-button\">\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"viewer-button.js","sourceRoot":"","sources":["../../../../../src/components/viewer-button/viewer-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAOzD,MAAM,OAAO,YAAY;IALzB;QAME;;;WAGG;QAEI,cAAS,GAAkB,IAAI,CAAC;KAWxC;IATQ,MAAM;QACX,OAAO,CACL,EAAC,IAAI;YACH,+DAAQ,KAAK,EAAC,eAAe,gBAAa,IAAI,CAAC,SAAS;gBACtD,8DAAa,CACN,CACJ,CACR,CAAC;IACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Host, Prop } from '@stencil/core';\n\n@Component({\n tag: 'vertex-viewer-button',\n styleUrl: 'viewer-button.css',\n shadow: true,\n})\nexport class ViewerButton {\n /**\n * Accessible name applied to the internal native button. Use this for\n * icon-only buttons or when the slotted content does not provide a name.\n */\n @Prop({ attribute: 'aria-label' })\n public ariaLabel: string | null = null;\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <button class=\"viewer-button\" aria-label={this.ariaLabel}>\n <slot></slot>\n </button>\n </Host>\n );\n }\n}\n"]}
@@ -21,8 +21,8 @@
21
21
  * @prop --viewer-toolbar-group-box-shadow: The shadow to apply to each group
22
22
  * in the toolbar. Defaults to `-1px 0 2px rgba(0, 0, 0, 0.12), 1px 0 2px rgba(0, 0, 0, 0.13)`.
23
23
  */
24
- --viewer-toolbar-group-box-shadow: -1px 0 2px rgba(0, 0, 0, 0.12),
25
- 1px 0 2px rgba(0, 0, 0, 0.13);
24
+ --viewer-toolbar-group-box-shadow:
25
+ -1px 0 2px rgba(0, 0, 0, 0.12), 1px 0 2px rgba(0, 0, 0, 0.13);
26
26
 
27
27
  /**
28
28
  * @prop --viewer-toolbar-group-padding: The padding to apply to each group in
@@ -23,7 +23,7 @@ export class ViewerDefaultToolbar {
23
23
  this.animationMs = 1000;
24
24
  }
25
25
  render() {
26
- return (h("vertex-viewer-toolbar", { key: '349bf96991062154e2e7666bbbecd3d66310e69f', placement: this.placement, direction: this.direction }, h("vertex-viewer-toolbar-group", { key: '6982b3cb19276e09484c52d8baaa825a7339f371', class: "group", direction: this.direction, "data-direction": this.direction }, h("vertex-viewer-button", { key: '77e0f4332b4997c433d2f28b5b9917cc9bea9a12', class: "group-item btn", "data-testid": "fit-all-btn", onClick: () => this.viewAll() }, h("vertex-viewer-icon", { key: '75f085b6c0443ba658e795f74a579cf70e1af2da', class: "icon", name: "fit-all", size: "md" })))));
26
+ return (h("vertex-viewer-toolbar", { key: '349bf96991062154e2e7666bbbecd3d66310e69f', placement: this.placement, direction: this.direction }, h("vertex-viewer-toolbar-group", { key: '6982b3cb19276e09484c52d8baaa825a7339f371', class: "group", direction: this.direction, "data-direction": this.direction }, h("vertex-viewer-button", { key: 'f7831cc2d418cd77b05493fd0e657b21f300648c', "aria-label": "Fit all", class: "group-item btn", "data-testid": "fit-all-btn", onClick: () => this.viewAll() }, h("vertex-viewer-icon", { key: 'adaa5a960e61b8b931634c350d3b1ef233243886', class: "icon", name: "fit-all", size: "md" })))));
27
27
  }
28
28
  async viewAll() {
29
29
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-default-toolbar.js","sourceRoot":"","sources":["../../../../../src/components/viewer-default-toolbar/viewer-default-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUnD,MAAM,OAAO,oBAAoB;IALjC;QAcE;;WAEG;QAEI,cAAS,GAA2B,eAAe,CAAC;QAE3D;;WAEG;QAEI,cAAS,GAAgC,YAAY,CAAC;QAE7D;;;WAGG;QAEI,uBAAkB,GAAG,KAAK,CAAC;QAElC;;WAEG;QAEI,gBAAW,GAAG,IAAI,CAAC;KAgC3B;IA9BQ,MAAM;QACX,OAAO,CACL,8EACE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YAEzB,oFACE,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,oBACT,IAAI,CAAC,SAAS;gBAE9B,6EACE,KAAK,EAAC,gBAAgB,iBACV,aAAa,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;oBAE7B,2EAAoB,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,GAAG,CACvC,CACK,CACR,CACzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO;;QACnB,MAAM,KAAK,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAA,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { ViewerToolbarPlacement } from '../viewer-toolbar/types';\nimport { ViewerToolbarGroupDirection } from '../viewer-toolbar-group/types';\n\n@Component({\n tag: 'vertex-viewer-default-toolbar',\n styleUrl: 'viewer-default-toolbar.css',\n shadow: true,\n})\nexport class ViewerDefaultToolbar {\n /**\n * An instance of the viewer that operations will be performed on. If\n * contained within a `<vertex-viewer>` element, this property will\n * automatically be wired.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * Specifies where the toolbar is positioned.\n */\n @Prop()\n public placement: ViewerToolbarPlacement = 'bottom-center';\n\n /**\n * Specifies the direction that UI elements are placed.\n */\n @Prop()\n public direction: ViewerToolbarGroupDirection = 'horizontal';\n\n /**\n * Indicates whether animations will be used when performing camera\n * operations. Defaults to `true`.\n */\n @Prop()\n public animationsDisabled = false;\n\n /**\n * The duration of animations, in milliseconds. Defaults to `1000`.\n */\n @Prop()\n public animationMs = 1000;\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <vertex-viewer-toolbar\n placement={this.placement}\n direction={this.direction}\n >\n <vertex-viewer-toolbar-group\n class=\"group\"\n direction={this.direction}\n data-direction={this.direction}\n >\n <vertex-viewer-button\n class=\"group-item btn\"\n data-testid=\"fit-all-btn\"\n onClick={() => this.viewAll()}\n >\n <vertex-viewer-icon class=\"icon\" name=\"fit-all\" size=\"md\" />\n </vertex-viewer-button>\n </vertex-viewer-toolbar-group>\n </vertex-viewer-toolbar>\n );\n }\n\n private async viewAll(): Promise<void> {\n const scene = await this.viewer?.scene();\n const animation = this.animationsDisabled\n ? undefined\n : { milliseconds: this.animationMs };\n scene?.camera().viewAll().render({ animation });\n }\n}\n"]}
1
+ {"version":3,"file":"viewer-default-toolbar.js","sourceRoot":"","sources":["../../../../../src/components/viewer-default-toolbar/viewer-default-toolbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC;AAUnD,MAAM,OAAO,oBAAoB;IALjC;QAcE;;WAEG;QAEI,cAAS,GAA2B,eAAe,CAAC;QAE3D;;WAEG;QAEI,cAAS,GAAgC,YAAY,CAAC;QAE7D;;;WAGG;QAEI,uBAAkB,GAAG,KAAK,CAAC;QAElC;;WAEG;QAEI,gBAAW,GAAG,IAAI,CAAC;KAiC3B;IA/BQ,MAAM;QACX,OAAO,CACL,8EACE,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,SAAS,EAAE,IAAI,CAAC,SAAS;YAEzB,oFACE,KAAK,EAAC,OAAO,EACb,SAAS,EAAE,IAAI,CAAC,SAAS,oBACT,IAAI,CAAC,SAAS;gBAE9B,2FACa,SAAS,EACpB,KAAK,EAAC,gBAAgB,iBACV,aAAa,EACzB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE;oBAE7B,2EAAoB,KAAK,EAAC,MAAM,EAAC,IAAI,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,GAAG,CACvC,CACK,CACR,CACzB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,OAAO;;QACnB,MAAM,KAAK,GAAG,MAAM,CAAA,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAA,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;QACvC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, h, Prop } from '@stencil/core';\n\nimport { ViewerToolbarPlacement } from '../viewer-toolbar/types';\nimport { ViewerToolbarGroupDirection } from '../viewer-toolbar-group/types';\n\n@Component({\n tag: 'vertex-viewer-default-toolbar',\n styleUrl: 'viewer-default-toolbar.css',\n shadow: true,\n})\nexport class ViewerDefaultToolbar {\n /**\n * An instance of the viewer that operations will be performed on. If\n * contained within a `<vertex-viewer>` element, this property will\n * automatically be wired.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * Specifies where the toolbar is positioned.\n */\n @Prop()\n public placement: ViewerToolbarPlacement = 'bottom-center';\n\n /**\n * Specifies the direction that UI elements are placed.\n */\n @Prop()\n public direction: ViewerToolbarGroupDirection = 'horizontal';\n\n /**\n * Indicates whether animations will be used when performing camera\n * operations. Defaults to `true`.\n */\n @Prop()\n public animationsDisabled = false;\n\n /**\n * The duration of animations, in milliseconds. Defaults to `1000`.\n */\n @Prop()\n public animationMs = 1000;\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <vertex-viewer-toolbar\n placement={this.placement}\n direction={this.direction}\n >\n <vertex-viewer-toolbar-group\n class=\"group\"\n direction={this.direction}\n data-direction={this.direction}\n >\n <vertex-viewer-button\n aria-label=\"Fit all\"\n class=\"group-item btn\"\n data-testid=\"fit-all-btn\"\n onClick={() => this.viewAll()}\n >\n <vertex-viewer-icon class=\"icon\" name=\"fit-all\" size=\"md\" />\n </vertex-viewer-button>\n </vertex-viewer-toolbar-group>\n </vertex-viewer-toolbar>\n );\n }\n\n private async viewAll(): Promise<void> {\n const scene = await this.viewer?.scene();\n const animation = this.animationsDisabled\n ? undefined\n : { milliseconds: this.animationMs };\n scene?.camera().viewAll().render({ animation });\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"viewer-markup.js","sourceRoot":"","sources":["../../../../../src/components/viewer-markup/viewer-markup.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Dimensions, Point } from '@vertexvis/geometry';\n\nimport { stampTemplateWithId } from '../../lib/templates';\nimport {\n ArrowMarkup,\n CircleMarkup,\n FreeformMarkup,\n Markup,\n MarkupCenteringBehavior,\n MarkupInteraction,\n} from '../../lib/types/markup';\nimport {\n isVertexViewerArrowMarkup,\n LineAnchorStyle,\n} from '../viewer-markup-arrow/utils';\nimport { isVertexViewerCircleMarkup } from '../viewer-markup-circle/utils';\nimport { isVertexViewerFreeformMarkup } from '../viewer-markup-freeform/utils';\nimport { ViewerMarkupToolType } from '../viewer-markup-tool/viewer-markup-tool';\n\n@Component({\n tag: 'vertex-viewer-markup',\n styleUrl: 'viewer-markup.css',\n shadow: true,\n})\nexport class ViewerMarkup {\n /**\n * An HTML template that describes the HTML to use for new arrow\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-arrow>`.\n */\n @Prop()\n public arrowTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new circle\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-circle>`.\n */\n @Prop()\n public circleTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new freeform\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-freeform>`.\n */\n @Prop()\n public freeformTemplateId?: string;\n\n /**\n * The type of markup to perform.\n */\n @Prop()\n public tool: ViewerMarkupToolType = 'arrow';\n\n /**\n * If `true`, disables adding or editing of markup through user\n * interaction.\n */\n @Prop()\n public disabled = false;\n\n /**\n * The viewer to connect to markup. If nested within a <vertex-viewer>,\n * this property will be populated automatically.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * The ID of the markup that is selected.\n */\n @Prop({ mutable: true })\n public selectedMarkupId?: string;\n\n /**\n * Indicates if new markup should be automatically selected.\n */\n @Prop()\n public selectNew = false;\n\n /**\n * The style of the starting anchor. This defaults to none.\n */\n @Prop({ mutable: true })\n public startLineAnchorStyle: LineAnchorStyle = 'none';\n\n /**\n * The style of the ending anchor. This defaults to 'arrow-triangle.'\n */\n @Prop({ mutable: true })\n public endLineAnchorStyle: LineAnchorStyle = 'arrow-triangle';\n\n /**\n * The original viewport dimensions where this markup was created. This value is used\n * to determine where the markup should be rendered relative to the current viewport,\n * enabling some markup to appear \"off-screen\".\n *\n * When provided, all NDC values will be considered relative to this viewport.\n */\n @Prop()\n public originatingViewport?: Dimensions.Dimensions;\n\n /**\n * Defines the behavior of the provided markup when the originating viewport is smaller\n * than the current viewport, or is scaled to a size smaller than the current viewport\n * using the `scale` property.\n *\n * Options:\n * - `x-only`: Markup will be centered horizontally, but not vertically.\n * - `y-only`: Markup will be centered vertically, but not horizontally.\n * - `both`: Markup will be centered both horizontally and vertically.\n * - `none`: Markup will not be centered (default).\n */\n @Prop()\n public centeringBehavior: MarkupCenteringBehavior = 'none';\n\n /**\n * The current offset of the visible viewport. This value is used to determine where\n * markup should be rendered relative to the current viewport, enabling some markup to appear \"off-screen\".\n *\n * When provided, all computed coordinates will be offset by this amount.\n */\n @Prop()\n public offset?: Point.Point;\n\n /**\n * The scale to render this markup at. This value is used to scale the element's bounds\n * along with any `offset` to determine the final computed coordinates.\n *\n * When provided, all computed coordinates will be scaled by this amount.\n */\n @Prop()\n public scale = 1;\n\n /**\n * Dispatched when a new markup is added, either through user interaction\n * or programmatically.\n */\n @Event()\n public markupAdded!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n\n /**\n * Dispatched when an existing piece of markup is changed, either through user interaction\n * or programmatically.\n */\n @Event()\n public markupChanged!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n\n /**\n * Dispatched when a markup is removed, either through user\n * interaction or programmatically.\n */\n @Event()\n public markupRemoved!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n\n /**\n * Dispatched when markup selection changes. Will either be the\n * selected element or `undefined` indicating that selection\n * was cleared.\n */\n @Event()\n public markupSelectionChanged!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n | undefined\n >;\n\n @Element()\n private hostEl!: HTMLElement;\n\n @State()\n private toSelectMarkupId?: string;\n\n @State()\n private pointerDownPosition?: Point.Point;\n\n protected disconnectedCallback(): void {\n window.removeEventListener('pointerup', this.handlePointerUp);\n window.removeEventListener('pointermove', this.handlePointerMove);\n }\n\n /**\n * Adds a new markup as a child to this component. A new markup\n * component will be created from the template specified by\n * `arrow-template-id`, `circle-template-id`, or if undefined\n * a default element will be created.\n *\n * @param markup The markup to add.\n * @returns The markup element that was created.\n * @see {@link arrowTemplateId}\n * @see {@link circleTemplateId}\n */\n @Method()\n public async addMarkup(\n markup: Markup,\n ): Promise<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n > {\n if (markup instanceof ArrowMarkup) {\n const { start, end, id } = markup;\n\n const el = this.createArrowMarkupElement();\n this.appendMarkupElement(el);\n el.id = id;\n el.start = start;\n el.end = end;\n el.startLineAnchorStyle = this.startLineAnchorStyle;\n el.endLineAnchorStyle = this.endLineAnchorStyle;\n\n return el;\n } else if (markup instanceof CircleMarkup) {\n const { bounds, id } = markup;\n\n const el = this.createCircleMarkupElement();\n this.appendMarkupElement(el);\n el.id = id;\n el.bounds = bounds;\n\n return el;\n } else if (markup instanceof FreeformMarkup) {\n const { bounds, points, id } = markup;\n\n const el = this.createFreeformMarkupElement();\n this.appendMarkupElement(el);\n el.id = id;\n el.points = points;\n el.bounds = bounds;\n\n return el;\n } else {\n throw new Error(`Cannot add markup. Unknown type '${markup}'.`);\n }\n }\n\n /**\n * Removes a markup with the given ID, and returns the HTML element\n * associated to the markup. Returns `undefined` if no markup is\n * found.\n *\n * @param id The ID of the markup to remove.\n * @returns The markup element, or undefined.\n */\n @Method()\n public async removeMarkup(\n id: string,\n ): Promise<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n | undefined\n > {\n const markup = await this.getMarkupElement(id);\n\n if (markup != null) {\n markup.remove();\n this.markupRemoved.emit(markup);\n }\n\n return markup;\n }\n\n /**\n * Returns a list of markup elements that are children of this component.\n *\n * @returns A list of all markups.\n * @see {@link getMarkupElement}\n */\n @Method()\n public async getMarkupElements(): Promise<\n Array<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >\n > {\n return Array.from(this.hostEl.children).filter(\n (e) =>\n isVertexViewerArrowMarkup(e) ||\n isVertexViewerCircleMarkup(e) ||\n isVertexViewerFreeformMarkup(e),\n ) as Array<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n }\n\n /**\n * Returns the markup element associated to the given ID.\n *\n * @param id The ID of the markup element to return.\n * @returns A markup element, or `undefined`.\n * @see {@link getMarkupElements}\n */\n @Method()\n public async getMarkupElement(\n id: string,\n ): Promise<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n | undefined\n > {\n const markup = await this.getMarkupElements();\n return markup.find((el) => el.id === id);\n }\n\n /**\n * @ignore\n */\n @Watch('selectedMarkupId')\n protected async handleSelectedMarkupIdChanged(): Promise<void> {\n const markup = await this.getMarkupElements();\n markup.forEach((m) => {\n if (m.id === this.selectedMarkupId) {\n m.mode = 'edit';\n this.markupSelectionChanged.emit(m);\n } else {\n m.mode = '';\n }\n });\n\n if (this.selectedMarkupId == null) {\n this.markupSelectionChanged.emit(undefined);\n }\n }\n\n /**\n * @ignore\n */\n @Watch('arrowTemplateId')\n @Watch('circleTemplateId')\n @Watch('freeformTemplateId')\n @Watch('tool')\n protected handlePropertyChanged(): void {\n this.updatePropsOnMarkupTool();\n }\n\n /**\n * @ignore\n */\n @Watch('viewer')\n @Watch('originatingViewport')\n @Watch('centeringBehavior')\n @Watch('offset')\n @Watch('scale')\n protected async handleViewerChanged(\n newViewer: HTMLVertexViewerElement | undefined,\n ): Promise<void> {\n this.updatePropsOnMarkupTool();\n this.updatePropsOnMarkups();\n }\n\n /**\n * @ignore\n */\n @Watch('disabled')\n protected handleDisabledChanged(): void {\n this.updatePropsOnMarkupTool();\n }\n\n /**\n * @ignore\n */\n @Watch('startLineAnchorStyle')\n protected async handleStartLineAnchorStyleChanged(): Promise<void> {\n this.updatePropsOnMarkupTool();\n\n // If a piece of arrow markup is currently selected, then update its anchor style\n const selectedArrow = await this.getSelectedArrowMarkup();\n if (selectedArrow != null) {\n selectedArrow.startLineAnchorStyle = this.startLineAnchorStyle;\n this.markupChanged.emit(selectedArrow);\n }\n }\n\n /**\n * @ignore\n */\n @Watch('endLineAnchorStyle')\n protected async handleEndLineAnchorStyleChanged(): Promise<void> {\n this.updatePropsOnMarkupTool();\n\n // If a piece of arrow markup is currently selected, then update its anchor style\n const selectedArrow = await this.getSelectedArrowMarkup();\n\n if (selectedArrow != null) {\n selectedArrow.endLineAnchorStyle = this.endLineAnchorStyle;\n this.markupChanged.emit(selectedArrow);\n }\n }\n\n /**\n * @ignore\n */\n @Listen('markupEnd')\n protected async handleMarkupEnd(event: CustomEvent<Markup>): Promise<void> {\n const e = event as CustomEvent<Markup>;\n const el = await this.addMarkup(e.detail);\n if (typeof el.componentOnReady === 'function') {\n await el.componentOnReady();\n }\n if (this.selectNew) {\n this.selectedMarkupId = e.detail.id;\n }\n this.getMarkupTool()?.reset();\n }\n\n /**\n * @ignore\n */\n @Listen('interactionEnd')\n protected async handleMarkupUpdated(\n event: CustomEvent<MarkupInteraction>,\n ): Promise<void> {\n const e = event as CustomEvent<MarkupInteraction>;\n\n // Do not emit the markupChanged event if the markup was just created\n if (!e.detail.newlyCreatedMarkup) {\n this.markupChanged.emit(e.detail.markup);\n }\n }\n\n /**\n * @ignore\n */\n @Listen('pointerdown')\n protected async handleMarkupPointerDown(event: PointerEvent): Promise<void> {\n if (!this.disabled) {\n const el = event.target as Element;\n const markups = await this.getMarkupElements();\n const markup = markups.find((m) => m === el);\n if (markup?.id != null && markup?.id !== '') {\n this.toSelectMarkupId = el.id;\n }\n this.pointerDownPosition = Point.create(event.clientX, event.clientY);\n\n window.addEventListener('pointermove', this.handlePointerMove);\n window.addEventListener('pointerup', this.handlePointerUp);\n }\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.updatePropsOnMarkupTool();\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <slot onSlotchange={this.handleSlotChange} />\n </Host>\n );\n }\n\n private handleSlotChange = (): void => {\n this.updatePropsOnMarkupTool();\n this.updatePropsOnMarkups();\n };\n\n private handlePointerMove = (event: PointerEvent): void => {\n if (\n this.pointerDownPosition != null &&\n Point.distance(\n this.pointerDownPosition,\n Point.create(event.clientX, event.clientY),\n ) > 2\n ) {\n this.toSelectMarkupId = undefined;\n }\n };\n\n private handlePointerUp = async (event: PointerEvent): Promise<void> => {\n if (!this.disabled) {\n const el = event.target as Element;\n const markups = await this.getMarkupElements();\n const markup = markups.find((m) => m === el);\n if (\n markup?.id != null &&\n markup.id !== '' &&\n markup.id === this.toSelectMarkupId\n ) {\n this.selectedMarkupId = el.id;\n } else if (\n this.pointerDownPosition != null &&\n Point.distance(\n this.pointerDownPosition,\n Point.create(event.clientX, event.clientY),\n ) <= 2\n ) {\n this.selectedMarkupId = undefined;\n }\n this.toSelectMarkupId = undefined;\n this.pointerDownPosition = undefined;\n }\n\n window.removeEventListener('pointerup', this.handlePointerUp);\n window.removeEventListener('pointermove', this.handlePointerMove);\n };\n\n private appendMarkupElement(\n el:\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupFreeformElement,\n ):\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupFreeformElement {\n this.updatePropsOnMarkup(el);\n this.hostEl.appendChild(el);\n this.markupAdded.emit(el);\n\n return el;\n }\n\n private createArrowMarkupElement(): HTMLVertexViewerMarkupArrowElement {\n if (this.arrowTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.arrowTemplateId,\n isVertexViewerArrowMarkup,\n () =>\n console.warn(\n `Arrow template with ID ${this.arrowTemplateId} not found. Using default arrow element.`,\n ),\n () =>\n console.warn(\n `Arrow template does not contain a vertex-viewer-markup-arrow. Using default arrow element.`,\n ),\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-arrow');\n }\n\n private createCircleMarkupElement(): HTMLVertexViewerMarkupCircleElement {\n if (this.circleTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.circleTemplateId,\n isVertexViewerCircleMarkup,\n () =>\n console.warn(\n `Circle template with ID ${this.circleTemplateId} not found. Using default circle element.`,\n ),\n () =>\n console.warn(\n `Circle template does not contain a vertex-viewer-markup-circle. Using default circle element.`,\n ),\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-circle');\n }\n\n private createFreeformMarkupElement(): HTMLVertexViewerMarkupFreeformElement {\n if (this.freeformTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.freeformTemplateId,\n isVertexViewerFreeformMarkup,\n () =>\n console.warn(\n `Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`,\n ),\n () =>\n console.warn(\n `Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.`,\n ),\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-freeform');\n }\n\n private async updatePropsOnMarkups(): Promise<void> {\n const markup = await this.getMarkupElements();\n markup.forEach((m) => this.updatePropsOnMarkup(m));\n }\n\n private updatePropsOnMarkup(\n element:\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement,\n ): void {\n element.viewer = this.viewer;\n element.originatingViewport = this.originatingViewport;\n element.centeringBehavior = this.centeringBehavior;\n element.offset = this.offset;\n element.scale = this.scale;\n element.classList.add('viewer-markup__markup');\n }\n\n private updatePropsOnMarkupTool(): void {\n const tool = this.getMarkupTool();\n if (tool != null) {\n tool.disabled = this.disabled;\n tool.arrowTemplateId = this.arrowTemplateId;\n tool.circleTemplateId = this.circleTemplateId;\n tool.freeformTemplateId = this.freeformTemplateId;\n tool.tool = this.tool;\n tool.viewer = this.viewer;\n tool.startLineAnchorStyle = this.startLineAnchorStyle;\n tool.endLineAnchorStyle = this.endLineAnchorStyle;\n tool.originatingViewport = this.originatingViewport;\n tool.centeringBehavior = this.centeringBehavior;\n tool.offset = this.offset;\n tool.scale = this.scale;\n }\n }\n\n private getMarkupTool(): HTMLVertexViewerMarkupToolElement | undefined {\n return this.hostEl.querySelector('vertex-viewer-markup-tool') as\n | HTMLVertexViewerMarkupToolElement\n | undefined;\n }\n\n private async getSelectedArrowMarkup(): Promise<\n HTMLVertexViewerMarkupArrowElement | undefined\n > {\n if (this.selectedMarkupId != null) {\n const selected = await this.getMarkupElement(this.selectedMarkupId);\n\n return isVertexViewerArrowMarkup(selected) ? selected : undefined;\n }\n }\n}\n"]}
1
+ {"version":3,"file":"viewer-markup.js","sourceRoot":"","sources":["../../../../../src/components/viewer-markup/viewer-markup.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Listen,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Dimensions, Point } from '@vertexvis/geometry';\n\nimport { stampTemplateWithId } from '../../lib/templates';\nimport {\n ArrowMarkup,\n CircleMarkup,\n FreeformMarkup,\n Markup,\n MarkupCenteringBehavior,\n MarkupInteraction,\n} from '../../lib/types/markup';\nimport {\n isVertexViewerArrowMarkup,\n LineAnchorStyle,\n} from '../viewer-markup-arrow/utils';\nimport { isVertexViewerCircleMarkup } from '../viewer-markup-circle/utils';\nimport { isVertexViewerFreeformMarkup } from '../viewer-markup-freeform/utils';\nimport { ViewerMarkupToolType } from '../viewer-markup-tool/viewer-markup-tool';\n\n@Component({\n tag: 'vertex-viewer-markup',\n styleUrl: 'viewer-markup.css',\n shadow: true,\n})\nexport class ViewerMarkup {\n /**\n * An HTML template that describes the HTML to use for new arrow\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-arrow>`.\n */\n @Prop()\n public arrowTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new circle\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-circle>`.\n */\n @Prop()\n public circleTemplateId?: string;\n\n /**\n * An HTML template that describes the HTML to use for new freeform\n * markup. It's expected that the template contains a\n * `<vertex-viewer-markup-freeform>`.\n */\n @Prop()\n public freeformTemplateId?: string;\n\n /**\n * The type of markup to perform.\n */\n @Prop()\n public tool: ViewerMarkupToolType = 'arrow';\n\n /**\n * If `true`, disables adding or editing of markup through user\n * interaction.\n */\n @Prop()\n public disabled = false;\n\n /**\n * The viewer to connect to markup. If nested within a <vertex-viewer>,\n * this property will be populated automatically.\n */\n @Prop()\n public viewer?: HTMLVertexViewerElement;\n\n /**\n * The ID of the markup that is selected.\n */\n @Prop({ mutable: true })\n public selectedMarkupId?: string;\n\n /**\n * Indicates if new markup should be automatically selected.\n */\n @Prop()\n public selectNew = false;\n\n /**\n * The style of the starting anchor. This defaults to none.\n */\n @Prop({ mutable: true })\n public startLineAnchorStyle: LineAnchorStyle = 'none';\n\n /**\n * The style of the ending anchor. This defaults to 'arrow-triangle.'\n */\n @Prop({ mutable: true })\n public endLineAnchorStyle: LineAnchorStyle = 'arrow-triangle';\n\n /**\n * The original viewport dimensions where this markup was created. This value is used\n * to determine where the markup should be rendered relative to the current viewport,\n * enabling some markup to appear \"off-screen\".\n *\n * When provided, all NDC values will be considered relative to this viewport.\n */\n @Prop()\n public originatingViewport?: Dimensions.Dimensions;\n\n /**\n * Defines the behavior of the provided markup when the originating viewport is smaller\n * than the current viewport, or is scaled to a size smaller than the current viewport\n * using the `scale` property.\n *\n * Options:\n * - `x-only`: Markup will be centered horizontally, but not vertically.\n * - `y-only`: Markup will be centered vertically, but not horizontally.\n * - `both`: Markup will be centered both horizontally and vertically.\n * - `none`: Markup will not be centered (default).\n */\n @Prop()\n public centeringBehavior: MarkupCenteringBehavior = 'none';\n\n /**\n * The current offset of the visible viewport. This value is used to determine where\n * markup should be rendered relative to the current viewport, enabling some markup to appear \"off-screen\".\n *\n * When provided, all computed coordinates will be offset by this amount.\n */\n @Prop()\n public offset?: Point.Point;\n\n /**\n * The scale to render this markup at. This value is used to scale the element's bounds\n * along with any `offset` to determine the final computed coordinates.\n *\n * When provided, all computed coordinates will be scaled by this amount.\n */\n @Prop()\n public scale = 1;\n\n /**\n * Dispatched when a new markup is added, either through user interaction\n * or programmatically.\n */\n @Event()\n public markupAdded!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n\n /**\n * Dispatched when an existing piece of markup is changed, either through user interaction\n * or programmatically.\n */\n @Event()\n public markupChanged!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n\n /**\n * Dispatched when a markup is removed, either through user\n * interaction or programmatically.\n */\n @Event()\n public markupRemoved!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n\n /**\n * Dispatched when markup selection changes. Will either be the\n * selected element or `undefined` indicating that selection\n * was cleared.\n */\n @Event()\n public markupSelectionChanged!: EventEmitter<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n | undefined\n >;\n\n @Element()\n private hostEl!: HTMLElement;\n\n @State()\n private toSelectMarkupId?: string;\n\n @State()\n private pointerDownPosition?: Point.Point;\n\n protected disconnectedCallback(): void {\n window.removeEventListener('pointerup', this.handlePointerUp);\n window.removeEventListener('pointermove', this.handlePointerMove);\n }\n\n /**\n * Adds a new markup as a child to this component. A new markup\n * component will be created from the template specified by\n * `arrow-template-id`, `circle-template-id`, or if undefined\n * a default element will be created.\n *\n * @param markup The markup to add.\n * @returns The markup element that was created.\n * @see {@link arrowTemplateId}\n * @see {@link circleTemplateId}\n */\n @Method()\n public async addMarkup(\n markup: Markup,\n ): Promise<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n > {\n if (markup instanceof ArrowMarkup) {\n const { start, end, id } = markup;\n\n const el = this.createArrowMarkupElement();\n this.appendMarkupElement(el);\n el.id = id;\n el.start = start;\n el.end = end;\n el.startLineAnchorStyle = this.startLineAnchorStyle;\n el.endLineAnchorStyle = this.endLineAnchorStyle;\n\n return el;\n } else if (markup instanceof CircleMarkup) {\n const { bounds, id } = markup;\n\n const el = this.createCircleMarkupElement();\n this.appendMarkupElement(el);\n el.id = id;\n el.bounds = bounds;\n\n return el;\n } else if (markup instanceof FreeformMarkup) {\n const { bounds, points, id } = markup;\n\n const el = this.createFreeformMarkupElement();\n this.appendMarkupElement(el);\n el.id = id;\n el.points = points;\n el.bounds = bounds;\n\n return el;\n } else {\n throw new Error(`Cannot add markup. Unknown type '${markup}'.`);\n }\n }\n\n /**\n * Removes a markup with the given ID, and returns the HTML element\n * associated to the markup. Returns `undefined` if no markup is\n * found.\n *\n * @param id The ID of the markup to remove.\n * @returns The markup element, or undefined.\n */\n @Method()\n public async removeMarkup(\n id: string,\n ): Promise<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n | undefined\n > {\n const markup = await this.getMarkupElement(id);\n\n if (markup != null) {\n markup.remove();\n this.markupRemoved.emit(markup);\n }\n\n return markup;\n }\n\n /**\n * Returns a list of markup elements that are children of this component.\n *\n * @returns A list of all markups.\n * @see {@link getMarkupElement}\n */\n @Method()\n public async getMarkupElements(): Promise<\n Array<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >\n > {\n return Array.from(this.hostEl.children).filter(\n (e) =>\n isVertexViewerArrowMarkup(e) ||\n isVertexViewerCircleMarkup(e) ||\n isVertexViewerFreeformMarkup(e),\n ) as Array<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n >;\n }\n\n /**\n * Returns the markup element associated to the given ID.\n *\n * @param id The ID of the markup element to return.\n * @returns A markup element, or `undefined`.\n * @see {@link getMarkupElements}\n */\n @Method()\n public async getMarkupElement(\n id: string,\n ): Promise<\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement\n | undefined\n > {\n const markup = await this.getMarkupElements();\n return markup.find((el) => el.id === id);\n }\n\n /**\n * @ignore\n */\n @Watch('selectedMarkupId')\n protected async handleSelectedMarkupIdChanged(): Promise<void> {\n const markup = await this.getMarkupElements();\n markup.forEach((m) => {\n if (m.id === this.selectedMarkupId) {\n m.mode = 'edit';\n this.markupSelectionChanged.emit(m);\n } else {\n m.mode = '';\n }\n });\n\n if (this.selectedMarkupId == null) {\n this.markupSelectionChanged.emit(undefined);\n }\n }\n\n /**\n * @ignore\n */\n @Watch('arrowTemplateId')\n @Watch('circleTemplateId')\n @Watch('freeformTemplateId')\n @Watch('tool')\n protected handlePropertyChanged(): void {\n this.updatePropsOnMarkupTool();\n }\n\n /**\n * @ignore\n */\n @Watch('viewer')\n @Watch('originatingViewport')\n @Watch('centeringBehavior')\n @Watch('offset')\n @Watch('scale')\n protected async handleViewerChanged(\n newViewer: HTMLVertexViewerElement | undefined,\n ): Promise<void> {\n this.updatePropsOnMarkupTool();\n this.updatePropsOnMarkups();\n }\n\n /**\n * @ignore\n */\n @Watch('disabled')\n protected handleDisabledChanged(): void {\n this.updatePropsOnMarkupTool();\n }\n\n /**\n * @ignore\n */\n @Watch('startLineAnchorStyle')\n protected async handleStartLineAnchorStyleChanged(): Promise<void> {\n this.updatePropsOnMarkupTool();\n\n // If a piece of arrow markup is currently selected, then update its anchor style\n const selectedArrow = await this.getSelectedArrowMarkup();\n if (selectedArrow != null) {\n selectedArrow.startLineAnchorStyle = this.startLineAnchorStyle;\n this.markupChanged.emit(selectedArrow);\n }\n }\n\n /**\n * @ignore\n */\n @Watch('endLineAnchorStyle')\n protected async handleEndLineAnchorStyleChanged(): Promise<void> {\n this.updatePropsOnMarkupTool();\n\n // If a piece of arrow markup is currently selected, then update its anchor style\n const selectedArrow = await this.getSelectedArrowMarkup();\n\n if (selectedArrow != null) {\n selectedArrow.endLineAnchorStyle = this.endLineAnchorStyle;\n this.markupChanged.emit(selectedArrow);\n }\n }\n\n /**\n * @ignore\n */\n @Listen('markupEnd')\n protected async handleMarkupEnd(event: CustomEvent<Markup>): Promise<void> {\n const e = event as CustomEvent<Markup>;\n const el = await this.addMarkup(e.detail);\n if (typeof el.componentOnReady === 'function') {\n await el.componentOnReady();\n }\n if (this.selectNew) {\n this.selectedMarkupId = e.detail.id;\n }\n this.getMarkupTool()?.reset();\n }\n\n /**\n * @ignore\n */\n @Listen('interactionEnd')\n protected async handleMarkupUpdated(\n event: CustomEvent<MarkupInteraction>,\n ): Promise<void> {\n const e = event as CustomEvent<MarkupInteraction>;\n\n // Do not emit the markupChanged event if the markup was just created\n if (!e.detail.newlyCreatedMarkup) {\n this.markupChanged.emit(e.detail.markup);\n }\n }\n\n /**\n * @ignore\n */\n @Listen('pointerdown')\n protected async handleMarkupPointerDown(event: PointerEvent): Promise<void> {\n if (!this.disabled) {\n const el = event.target as Element;\n const markups = await this.getMarkupElements();\n const markup = markups.find((m) => m === el);\n if (markup?.id != null && markup?.id !== '') {\n this.toSelectMarkupId = el.id;\n }\n this.pointerDownPosition = Point.create(event.clientX, event.clientY);\n\n window.addEventListener('pointermove', this.handlePointerMove);\n window.addEventListener('pointerup', this.handlePointerUp);\n }\n }\n\n /**\n * @ignore\n */\n protected componentDidLoad(): void {\n this.updatePropsOnMarkupTool();\n }\n\n /**\n * @ignore\n */\n protected render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <slot onSlotchange={this.handleSlotChange} />\n </Host>\n );\n }\n\n private handleSlotChange = (): void => {\n this.updatePropsOnMarkupTool();\n this.updatePropsOnMarkups();\n };\n\n private handlePointerMove = (event: PointerEvent): void => {\n if (\n this.pointerDownPosition != null &&\n Point.distance(\n this.pointerDownPosition,\n Point.create(event.clientX, event.clientY),\n ) > 2\n ) {\n this.toSelectMarkupId = undefined;\n }\n };\n\n private handlePointerUp = async (event: PointerEvent): Promise<void> => {\n if (!this.disabled) {\n const el = event.target as Element;\n const markups = await this.getMarkupElements();\n const markup = markups.find((m) => m === el);\n if (\n markup?.id != null &&\n markup.id !== '' &&\n markup.id === this.toSelectMarkupId\n ) {\n this.selectedMarkupId = el.id;\n } else if (\n this.pointerDownPosition != null &&\n Point.distance(\n this.pointerDownPosition,\n Point.create(event.clientX, event.clientY),\n ) <= 2\n ) {\n this.selectedMarkupId = undefined;\n }\n this.toSelectMarkupId = undefined;\n this.pointerDownPosition = undefined;\n }\n\n window.removeEventListener('pointerup', this.handlePointerUp);\n window.removeEventListener('pointermove', this.handlePointerMove);\n };\n\n private appendMarkupElement(\n el:\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupFreeformElement,\n ):\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupFreeformElement {\n this.updatePropsOnMarkup(el);\n this.hostEl.appendChild(el);\n this.markupAdded.emit(el);\n\n return el;\n }\n\n private createArrowMarkupElement(): HTMLVertexViewerMarkupArrowElement {\n if (this.arrowTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.arrowTemplateId,\n isVertexViewerArrowMarkup,\n () =>\n console.warn(\n `Arrow template with ID ${this.arrowTemplateId} not found. Using default arrow element.`,\n ),\n () =>\n console.warn(\n `Arrow template does not contain a vertex-viewer-markup-arrow. Using default arrow element.`,\n ),\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-arrow');\n }\n\n private createCircleMarkupElement(): HTMLVertexViewerMarkupCircleElement {\n if (this.circleTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.circleTemplateId,\n isVertexViewerCircleMarkup,\n () =>\n console.warn(\n `Circle template with ID ${this.circleTemplateId} not found. Using default circle element.`,\n ),\n () =>\n console.warn(\n `Circle template does not contain a vertex-viewer-markup-circle. Using default circle element.`,\n ),\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-circle');\n }\n\n private createFreeformMarkupElement(): HTMLVertexViewerMarkupFreeformElement {\n if (this.freeformTemplateId != null) {\n const element = stampTemplateWithId(\n window.document.body,\n this.freeformTemplateId,\n isVertexViewerFreeformMarkup,\n () =>\n console.warn(\n `Freeform template with ID ${this.freeformTemplateId} not found. Using default freeform element.`,\n ),\n () =>\n console.warn(\n `Freeform template does not contain a vertex-viewer-markup-freeform. Using default freeform element.`,\n ),\n );\n\n if (element != null) {\n return element;\n }\n }\n\n return document.createElement('vertex-viewer-markup-freeform');\n }\n\n private async updatePropsOnMarkups(): Promise<void> {\n const markup = await this.getMarkupElements();\n markup.forEach((m) => this.updatePropsOnMarkup(m));\n }\n\n private updatePropsOnMarkup(\n element:\n | HTMLVertexViewerMarkupArrowElement\n | HTMLVertexViewerMarkupCircleElement\n | HTMLVertexViewerMarkupFreeformElement,\n ): void {\n element.viewer = this.viewer;\n element.originatingViewport = this.originatingViewport;\n element.centeringBehavior = this.centeringBehavior;\n element.offset = this.offset;\n element.scale = this.scale;\n element.classList.add('viewer-markup__markup');\n }\n\n private updatePropsOnMarkupTool(): void {\n const tool = this.getMarkupTool();\n if (tool != null) {\n tool.disabled = this.disabled;\n tool.arrowTemplateId = this.arrowTemplateId;\n tool.circleTemplateId = this.circleTemplateId;\n tool.freeformTemplateId = this.freeformTemplateId;\n tool.tool = this.tool;\n tool.viewer = this.viewer;\n tool.startLineAnchorStyle = this.startLineAnchorStyle;\n tool.endLineAnchorStyle = this.endLineAnchorStyle;\n tool.originatingViewport = this.originatingViewport;\n tool.centeringBehavior = this.centeringBehavior;\n tool.offset = this.offset;\n tool.scale = this.scale;\n }\n }\n\n private getMarkupTool(): HTMLVertexViewerMarkupToolElement | undefined {\n return this.hostEl.querySelector('vertex-viewer-markup-tool') as\n HTMLVertexViewerMarkupToolElement | undefined;\n }\n\n private async getSelectedArrowMarkup(): Promise<\n HTMLVertexViewerMarkupArrowElement | undefined\n > {\n if (this.selectedMarkupId != null) {\n const selected = await this.getMarkupElement(this.selectedMarkupId);\n\n return isVertexViewerArrowMarkup(selected) ? selected : undefined;\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/components/viewer-markup-arrow/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle } from '@vertexvis/geometry';\n\nimport * as Point from '../../../../geometry/src/point';\n\nexport type LineAnchorStyle =\n | 'arrow-triangle'\n | 'arrow-line'\n | 'dot'\n | 'hash'\n | 'none';\n\nexport interface LineAnchorStylePoints {\n tip: Point.Point;\n base: Point.Point;\n arrowTriangle: ArrowheadPoints;\n arrowLine: ArrowheadPoints;\n hash: ArrowheadPoints;\n radius: number;\n}\n\nexport interface ArrowheadPoints {\n leftPoint: Point.Point;\n rightPoint: Point.Point;\n}\n\nexport interface LinePoints {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n}\n\nexport interface CirclePoints {\n cx: number;\n cy: number;\n r: number;\n}\n\nexport function createArrowheadPoints(\n start: Point.Point,\n end: Point.Point,\n arrowSideLength: number,\n arrowHeadTheta: number,\n): ArrowheadPoints {\n const arrowOrthogonalVector = Point.orthogonalVector(start, end);\n const normalizedDirection = Point.normalDirectionVector(start, end);\n\n const arrowLeft = Point.subtract(\n end,\n Point.add(\n Point.scaleProportional(\n normalizedDirection,\n arrowSideLength * Math.cos(arrowHeadTheta),\n ),\n Point.scaleProportional(\n arrowOrthogonalVector,\n arrowSideLength * Math.sin(arrowHeadTheta),\n ),\n ),\n );\n const arrowRight = Point.subtract(\n end,\n Point.subtract(\n Point.scaleProportional(\n normalizedDirection,\n arrowSideLength * Math.cos(arrowHeadTheta),\n ),\n Point.scaleProportional(\n arrowOrthogonalVector,\n arrowSideLength * Math.sin(arrowHeadTheta),\n ),\n ),\n );\n\n return {\n leftPoint: arrowLeft,\n rightPoint: arrowRight,\n };\n}\n\nexport function createLineAnchorStylePoints(\n start: Point.Point,\n end: Point.Point,\n triangleArrowAngle = 65,\n lineArrowAngle = 85,\n): LineAnchorStylePoints {\n // Adjust the size of the end style to the distance between the start and end points\n const distance = Point.distance(start, end);\n const arrowHeadHeight = Math.max(4, Math.min(16, distance * 0.25));\n const hashHeight = Math.max(4, Math.min(12, distance * 0.16));\n const radius = Math.min(5, distance * 0.1);\n\n // Triangle arrow position\n const triangleArrowRelativeHeight = arrowHeadHeight / distance;\n const triangleArrowBasePosition = Point.add(\n Point.scaleProportional(end, 1 - triangleArrowRelativeHeight),\n Point.scaleProportional(start, triangleArrowRelativeHeight),\n );\n const triangleArrowTheta = Angle.toRadians(triangleArrowAngle / 2);\n const triangleArrowSideLength =\n arrowHeadHeight / Math.cos(triangleArrowTheta);\n const triangleArrow = createArrowheadPoints(\n start,\n end,\n triangleArrowSideLength,\n triangleArrowTheta,\n );\n\n // Line arrow position\n const lineArrowTheta = Angle.toRadians(lineArrowAngle / 2);\n const lineArrowSideLength = arrowHeadHeight / Math.cos(lineArrowTheta);\n const lineArrow = createArrowheadPoints(\n start,\n end,\n lineArrowSideLength,\n lineArrowTheta,\n );\n\n // Hash position\n // Setting the arrowHeadAngle to 90 degrees results in a\n // straight hash mark perpendicular to the direction of the line\n const hashLineTheta = Angle.toRadians(90);\n const hashLine = createArrowheadPoints(start, end, hashHeight, hashLineTheta);\n\n return {\n tip: end,\n base: triangleArrowBasePosition,\n arrowTriangle: triangleArrow,\n arrowLine: lineArrow,\n hash: hashLine,\n radius: radius,\n };\n}\n\nexport function arrowheadPointsToPolygonPoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): string {\n const scaledRight = scalePointProportional(\n points.tip,\n points.arrowTriangle.rightPoint,\n scale,\n );\n const scaledLeft = scalePointProportional(\n points.tip,\n points.arrowTriangle.leftPoint,\n scale,\n );\n const scaledBase = scalePointProportional(points.tip, points.base, scale);\n\n return [points.tip, scaledRight, scaledBase, scaledLeft]\n .map((pt) => `${pt.x},${pt.y}`)\n .join(' ');\n}\n\nexport function arrowheadPointsToPathPoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): string {\n const scaledRight = scalePointProportional(\n points.tip,\n points.arrowLine.rightPoint,\n scale,\n );\n const scaledLeft = scalePointProportional(\n points.tip,\n points.arrowLine.leftPoint,\n scale,\n );\n\n return `M${scaledRight.x} ${scaledRight.y} L${points.tip.x} ${points.tip.y} L${scaledLeft.x} ${scaledLeft.y} L${points.tip.x} ${points.tip.y} Z`;\n}\n\nexport function arrowheadPointsToHashPoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): LinePoints {\n const scaledRight = scalePointProportional(\n points.tip,\n points.hash.rightPoint,\n scale,\n );\n const scaledLeft = scalePointProportional(\n points.tip,\n points.hash.leftPoint,\n scale,\n );\n\n return {\n x1: scaledRight.x,\n y1: scaledRight.y,\n x2: scaledLeft.x,\n y2: scaledLeft.y,\n };\n}\n\nexport function arrowheadPointsToCirclePoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): CirclePoints {\n return {\n cx: points.tip.x,\n cy: points.tip.y,\n r: points.radius * scale,\n };\n}\n\nexport function isVertexViewerArrowMarkup(\n el: unknown,\n): el is HTMLVertexViewerMarkupArrowElement {\n return (\n el instanceof HTMLElement && el.nodeName === 'VERTEX-VIEWER-MARKUP-ARROW'\n );\n}\n\nexport function parsePoint(\n value: string | Point.Point | undefined,\n): Point.Point | undefined {\n return typeof value === 'string' ? Point.fromJson(value) : value;\n}\n\nexport function scalePointProportional(\n basePoint: Point.Point,\n scaledPoint: Point.Point,\n scale: number,\n): Point.Point {\n return Point.add(\n basePoint,\n Point.scaleProportional(Point.subtract(scaledPoint, basePoint), scale),\n );\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../src/components/viewer-markup-arrow/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle } from '@vertexvis/geometry';\n\nimport * as Point from '../../../../geometry/src/point';\n\nexport type LineAnchorStyle =\n 'arrow-triangle' | 'arrow-line' | 'dot' | 'hash' | 'none';\n\nexport interface LineAnchorStylePoints {\n tip: Point.Point;\n base: Point.Point;\n arrowTriangle: ArrowheadPoints;\n arrowLine: ArrowheadPoints;\n hash: ArrowheadPoints;\n radius: number;\n}\n\nexport interface ArrowheadPoints {\n leftPoint: Point.Point;\n rightPoint: Point.Point;\n}\n\nexport interface LinePoints {\n x1: number;\n y1: number;\n x2: number;\n y2: number;\n}\n\nexport interface CirclePoints {\n cx: number;\n cy: number;\n r: number;\n}\n\nexport function createArrowheadPoints(\n start: Point.Point,\n end: Point.Point,\n arrowSideLength: number,\n arrowHeadTheta: number,\n): ArrowheadPoints {\n const arrowOrthogonalVector = Point.orthogonalVector(start, end);\n const normalizedDirection = Point.normalDirectionVector(start, end);\n\n const arrowLeft = Point.subtract(\n end,\n Point.add(\n Point.scaleProportional(\n normalizedDirection,\n arrowSideLength * Math.cos(arrowHeadTheta),\n ),\n Point.scaleProportional(\n arrowOrthogonalVector,\n arrowSideLength * Math.sin(arrowHeadTheta),\n ),\n ),\n );\n const arrowRight = Point.subtract(\n end,\n Point.subtract(\n Point.scaleProportional(\n normalizedDirection,\n arrowSideLength * Math.cos(arrowHeadTheta),\n ),\n Point.scaleProportional(\n arrowOrthogonalVector,\n arrowSideLength * Math.sin(arrowHeadTheta),\n ),\n ),\n );\n\n return {\n leftPoint: arrowLeft,\n rightPoint: arrowRight,\n };\n}\n\nexport function createLineAnchorStylePoints(\n start: Point.Point,\n end: Point.Point,\n triangleArrowAngle = 65,\n lineArrowAngle = 85,\n): LineAnchorStylePoints {\n // Adjust the size of the end style to the distance between the start and end points\n const distance = Point.distance(start, end);\n const arrowHeadHeight = Math.max(4, Math.min(16, distance * 0.25));\n const hashHeight = Math.max(4, Math.min(12, distance * 0.16));\n const radius = Math.min(5, distance * 0.1);\n\n // Triangle arrow position\n const triangleArrowRelativeHeight = arrowHeadHeight / distance;\n const triangleArrowBasePosition = Point.add(\n Point.scaleProportional(end, 1 - triangleArrowRelativeHeight),\n Point.scaleProportional(start, triangleArrowRelativeHeight),\n );\n const triangleArrowTheta = Angle.toRadians(triangleArrowAngle / 2);\n const triangleArrowSideLength =\n arrowHeadHeight / Math.cos(triangleArrowTheta);\n const triangleArrow = createArrowheadPoints(\n start,\n end,\n triangleArrowSideLength,\n triangleArrowTheta,\n );\n\n // Line arrow position\n const lineArrowTheta = Angle.toRadians(lineArrowAngle / 2);\n const lineArrowSideLength = arrowHeadHeight / Math.cos(lineArrowTheta);\n const lineArrow = createArrowheadPoints(\n start,\n end,\n lineArrowSideLength,\n lineArrowTheta,\n );\n\n // Hash position\n // Setting the arrowHeadAngle to 90 degrees results in a\n // straight hash mark perpendicular to the direction of the line\n const hashLineTheta = Angle.toRadians(90);\n const hashLine = createArrowheadPoints(start, end, hashHeight, hashLineTheta);\n\n return {\n tip: end,\n base: triangleArrowBasePosition,\n arrowTriangle: triangleArrow,\n arrowLine: lineArrow,\n hash: hashLine,\n radius: radius,\n };\n}\n\nexport function arrowheadPointsToPolygonPoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): string {\n const scaledRight = scalePointProportional(\n points.tip,\n points.arrowTriangle.rightPoint,\n scale,\n );\n const scaledLeft = scalePointProportional(\n points.tip,\n points.arrowTriangle.leftPoint,\n scale,\n );\n const scaledBase = scalePointProportional(points.tip, points.base, scale);\n\n return [points.tip, scaledRight, scaledBase, scaledLeft]\n .map((pt) => `${pt.x},${pt.y}`)\n .join(' ');\n}\n\nexport function arrowheadPointsToPathPoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): string {\n const scaledRight = scalePointProportional(\n points.tip,\n points.arrowLine.rightPoint,\n scale,\n );\n const scaledLeft = scalePointProportional(\n points.tip,\n points.arrowLine.leftPoint,\n scale,\n );\n\n return `M${scaledRight.x} ${scaledRight.y} L${points.tip.x} ${points.tip.y} L${scaledLeft.x} ${scaledLeft.y} L${points.tip.x} ${points.tip.y} Z`;\n}\n\nexport function arrowheadPointsToHashPoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): LinePoints {\n const scaledRight = scalePointProportional(\n points.tip,\n points.hash.rightPoint,\n scale,\n );\n const scaledLeft = scalePointProportional(\n points.tip,\n points.hash.leftPoint,\n scale,\n );\n\n return {\n x1: scaledRight.x,\n y1: scaledRight.y,\n x2: scaledLeft.x,\n y2: scaledLeft.y,\n };\n}\n\nexport function arrowheadPointsToCirclePoints(\n points: LineAnchorStylePoints,\n scale = 1,\n): CirclePoints {\n return {\n cx: points.tip.x,\n cy: points.tip.y,\n r: points.radius * scale,\n };\n}\n\nexport function isVertexViewerArrowMarkup(\n el: unknown,\n): el is HTMLVertexViewerMarkupArrowElement {\n return (\n el instanceof HTMLElement && el.nodeName === 'VERTEX-VIEWER-MARKUP-ARROW'\n );\n}\n\nexport function parsePoint(\n value: string | Point.Point | undefined,\n): Point.Point | undefined {\n return typeof value === 'string' ? Point.fromJson(value) : value;\n}\n\nexport function scalePointProportional(\n basePoint: Point.Point,\n scaledPoint: Point.Point,\n scale: number,\n): Point.Point {\n return Point.add(\n basePoint,\n Point.scaleProportional(Point.subtract(scaledPoint, basePoint), scale),\n );\n}\n"]}
@@ -7,6 +7,6 @@
7
7
  pointer-events: none;
8
8
  }
9
9
 
10
- :host([elevated=""]) {
10
+ :host([elevated='']) {
11
11
  z-index: 100;
12
- }
12
+ }
@@ -1,5 +1,4 @@
1
1
  :host {
2
-
3
2
  /**
4
3
  * @prop --viewer-annotations-pin-primary-color: A CSS color that
5
4
  * specifies the primary color for the pins. This value gets used for the dot color
@@ -18,43 +17,45 @@
18
17
  * @prop viewer-annotations-pin-dot-color: A CSS color that
19
18
  * specifies the color of the anchor dot
20
19
  */
21
- --viewer-annotations-pin-dot-color: var(--viewer-annotations-pin-primary-color);
20
+ --viewer-annotations-pin-dot-color: var(
21
+ --viewer-annotations-pin-primary-color
22
+ );
22
23
 
23
24
  /**
24
25
  * @prop --viewer-annotations-pin-color: A CSS color that
25
26
  * specifies the color of the pin
26
27
  */
27
- --viewer-annotations-pin-color: var(--viewer-annotations-pin-primary-color);
28
+ --viewer-annotations-pin-color: var(--viewer-annotations-pin-primary-color);
28
29
 
29
30
  /**
30
31
  * @prop --viewer-annotations-pin-font-size: A CSS property to specify
31
32
  the font size of the pin
32
33
  */
33
- --viewer-annotations-pin-font-size: 0.75rem;
34
+ --viewer-annotations-pin-font-size: 0.75rem;
34
35
 
35
36
  /**
36
37
  * @prop --viewer-annotations-pin-selected-stroke: A CSS color that
37
38
  * specifies the stroke color of a selected pin
38
39
  */
39
- --viewer-annotations-pin-selected-stroke: var(--white);
40
+ --viewer-annotations-pin-selected-stroke: var(--white);
40
41
 
41
42
  /**
42
43
  * @prop --viewer-annotations-pin-selected-border: A CSS color that
43
44
  * specifies the border of a selected pin
44
45
  */
45
- --viewer-annotations-pin-selected-border: 2px solid var(--white);
46
+ --viewer-annotations-pin-selected-border: 2px solid var(--white);
46
47
 
47
48
  /**
48
49
  * @prop --viewer-annotations-pin-label-border: A CSS color that
49
50
  * specifies the border of a text pin anchor
50
51
  */
51
- --viewer-annotations-pin-label-border: 2px solid var(--black);
52
+ --viewer-annotations-pin-label-border: 2px solid var(--black);
52
53
 
53
54
  /**
54
55
  * @prop --viewer-annotations-pin-selected-border: A CSS color that
55
56
  * specifies the stroke of a selected default pin
56
57
  */
57
- --viewer-annotations-pin-selected-stroke: var(--white);
58
+ --viewer-annotations-pin-selected-stroke: var(--white);
58
59
 
59
60
  font-size: var(--viewer-annotations-pin-font-size);
60
61
  position: absolute;
@@ -83,7 +84,7 @@
83
84
  .selected {
84
85
  width: 13px;
85
86
  height: 13px;
86
- border: var(--viewer-annotations-pin-selected-border)
87
+ border: var(--viewer-annotations-pin-selected-border);
87
88
  }
88
89
 
89
90
  .pin {
@@ -103,10 +104,10 @@
103
104
  }
104
105
 
105
106
  .pin-occluded {
106
- opacity: .3;
107
+ opacity: 0.3;
107
108
  transition: opacity 0.3s ease-in;
108
109
  }
109
110
 
110
111
  .pin-detached {
111
112
  visibility: hidden;
112
- }
113
+ }
@@ -3,19 +3,25 @@
3
3
  * @prop --viewer-annotations-pin-label-background-color: A CSS color that
4
4
  * specifies the color of the label background
5
5
  */
6
- --viewer-annotations-pin-label-background-color: var(--viewer-annotations-pin-accent-color);
6
+ --viewer-annotations-pin-label-background-color: var(
7
+ --viewer-annotations-pin-accent-color
8
+ );
7
9
 
8
10
  /**
9
11
  * @prop --viewer-annotations-pin-label-border-color: A CSS color that
10
12
  * specifies the color of the label's border
11
13
  */
12
- --viewer-annotations-pin-label-border-color: var(--viewer-annotations-pin-primary-color);
14
+ --viewer-annotations-pin-label-border-color: var(
15
+ --viewer-annotations-pin-primary-color
16
+ );
13
17
 
14
18
  /**
15
19
  * @prop --viewer-annotations-pin-label-focused-border-color: A CSS color that
16
20
  * specifies the color of the label's border when focused.
17
21
  */
18
- --viewer-annotations-pin-label-focused-border-color: var(--viewer-annotations-pin-primary-color);
22
+ --viewer-annotations-pin-label-focused-border-color: var(
23
+ --viewer-annotations-pin-primary-color
24
+ );
19
25
 
20
26
  /**
21
27
  * @prop --viewer-annotations-pin-label-color: A CSS color that
@@ -33,7 +39,7 @@
33
39
  * @prop --viewer-annotations-pin-label-padding-x: A var that
34
40
  * specifies the horizontal padding of the label
35
41
  */
36
- --viewer-annotations-pin-label-padding-x: 0.5em;
42
+ --viewer-annotations-pin-label-padding-x: 0.5em;
37
43
 
38
44
  /**
39
45
  * @prop --viewer-annotations-pin-label-border-width: A CSS length that
@@ -69,7 +75,7 @@
69
75
  * @prop --viewer-annotations-pin-label-max-height: A CSS length that
70
76
  * specifies the maximum height of the label. Defaults to `50rem`.
71
77
  */
72
- --viewer-annotations-pin-label-max-height: 50rem;
78
+ --viewer-annotations-pin-label-max-height: 50rem;
73
79
 
74
80
  overflow: hidden;
75
81
  pointer-events: none;
@@ -125,11 +131,15 @@
125
131
  word-break: break-word;
126
132
  padding: 0 0 0 0;
127
133
  background-color: transparent;
128
- margin: var(--viewer-annotations-pin-label-padding-y) var(--viewer-annotations-pin-label-padding-x);
134
+ margin: var(--viewer-annotations-pin-label-padding-y)
135
+ var(--viewer-annotations-pin-label-padding-x);
129
136
  width: var(--viewer-annotations-pin-label-min-width);
130
137
  flex-grow: 1;
131
138
  overflow: hidden;
132
- max-width: calc(var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)));
139
+ max-width: calc(
140
+ var(--viewer-annotations-pin-label-max-width) -
141
+ calc(2 * var(--viewer-annotations-pin-label-padding-x))
142
+ );
133
143
  }
134
144
 
135
145
  .pin-label-input.readonly {
@@ -150,5 +160,8 @@
150
160
  border-color: var(--viewer-annotations-pin-label-border-color);
151
161
  margin: var(--viewer-annotations-pin-label-padding-y) 0;
152
162
  padding: 0 var(--viewer-annotations-pin-label-padding-x);
153
- max-width: calc(var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)));
163
+ max-width: calc(
164
+ var(--viewer-annotations-pin-label-max-width) -
165
+ calc(2 * var(--viewer-annotations-pin-label-padding-x))
166
+ );
154
167
  }
@@ -27,7 +27,8 @@ export class VertexPinLabel {
27
27
  this.contentElBounds = this.contentEl.getBoundingClientRect();
28
28
  const computedStyles = getComputedStyle(this.contentEl);
29
29
  this.textareaRows = Math.max(1, Math.ceil((Number.parseFloat(computedStyles.getPropertyValue('height')) -
30
- Number.parseFloat(computedStyles.getPropertyValue('borderWidth')) * 2) /
30
+ Number.parseFloat(computedStyles.getPropertyValue('borderWidth')) *
31
+ 2) /
31
32
  Number.parseFloat(computedStyles.getPropertyValue('lineHeight'))));
32
33
  }
33
34
  });