@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.
- package/README.template.md +14 -8
- package/dist/cjs/{bundle-07I6_WqC.js → bundle-BCS0nA91.js} +28 -25
- package/dist/cjs/bundle-BCS0nA91.js.map +1 -0
- package/dist/cjs/{config-CepHuwRF.js → config-BY0v6BSK.js} +3 -3
- package/dist/cjs/{config-CepHuwRF.js.map → config-BY0v6BSK.js.map} +1 -1
- package/dist/cjs/{controller-Dklbe0Y6.js → controller-DvE3p6ta.js} +3 -3
- package/dist/cjs/{controller-Dklbe0Y6.js.map → controller-DvE3p6ta.js.map} +1 -1
- package/dist/cjs/{dom-Dlu6-7PF.js → dom-BuQSLPWr.js} +3 -3
- package/dist/cjs/{dom-Dlu6-7PF.js.map → dom-BuQSLPWr.js.map} +1 -1
- package/dist/cjs/{entities-BdWnb6KI.js → entities-CEaa12yP.js} +4 -4
- package/dist/cjs/{entities-BdWnb6KI.js.map → entities-CEaa12yP.js.map} +1 -1
- package/dist/cjs/{geometry_pb-BISQT2vx.js → geometry_pb-EVfAEuPO.js} +3 -3
- package/dist/cjs/{geometry_pb-BISQT2vx.js.map → geometry_pb-EVfAEuPO.js.map} +1 -1
- package/dist/cjs/grpc-D5Apx_zz.js.map +1 -1
- package/dist/cjs/index.cjs.js +13 -13
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{markup-C-qyTwID.js → markup-Du4uVRo4.js} +3 -3
- package/dist/cjs/{markup-C-qyTwID.js.map → markup-Du4uVRo4.js.map} +1 -1
- package/dist/cjs/{model-Dy5FvjIA.js → model-BC6acIWJ.js} +3 -3
- package/dist/cjs/{model-Dy5FvjIA.js.map → model-BC6acIWJ.js.map} +1 -1
- package/dist/cjs/model-Bw4h8wNt.js.map +1 -1
- package/dist/cjs/{model-k5VBFN6C.js → model-DqxeakCS.js} +3 -3
- package/dist/cjs/{model-k5VBFN6C.js.map → model-DqxeakCS.js.map} +1 -1
- package/dist/cjs/{multiElementInteractionHandler-Bqpg2wVT.js → multiElementInteractionHandler-Bdeo6FYp.js} +6 -5
- package/dist/cjs/multiElementInteractionHandler-Bdeo6FYp.js.map +1 -0
- package/dist/cjs/{overlays-BujVkBnG.js → overlays-DASFbMSp.js} +3 -3
- package/dist/cjs/{overlays-BujVkBnG.js.map → overlays-DASFbMSp.js.map} +1 -1
- package/dist/cjs/{queries-GhYmoomu.js → queries-LthBzEHD.js} +5 -5
- package/dist/cjs/queries-LthBzEHD.js.map +1 -0
- package/dist/cjs/{regl-component-CB004H91.js → regl-component-B_JaaVlv.js} +6 -6
- package/dist/cjs/{regl-component-CB004H91.js.map → regl-component-B_JaaVlv.js.map} +1 -1
- package/dist/cjs/{representation_pb-CHCm5o1e.js → representation_pb-B6XR10pQ.js} +3 -3
- package/dist/cjs/{representation_pb-CHCm5o1e.js.map → representation_pb-B6XR10pQ.js.map} +1 -1
- package/dist/cjs/{results-BpfUIwa8.js → results-CU9Ctm2K.js} +3 -3
- package/dist/cjs/{results-BpfUIwa8.js.map → results-CU9Ctm2K.js.map} +1 -1
- package/dist/cjs/{streamAttributes-CJOD7AxG.js → streamAttributes-nCF7u7lv.js} +4 -4
- package/dist/cjs/{streamAttributes-CJOD7AxG.js.map → streamAttributes-nCF7u7lv.js.map} +1 -1
- package/dist/cjs/{util-smaTO4bk.js → util-gX3IGslq.js} +3 -3
- package/dist/cjs/{util-smaTO4bk.js.map → util-gX3IGslq.js.map} +1 -1
- package/dist/cjs/{utils-BsXO-wLi.js → utils-D5TGpFAV.js} +3 -3
- package/dist/cjs/utils-D5TGpFAV.js.map +1 -0
- package/dist/cjs/{utils-DY6afhh8.js → utils-opS9hsaU.js} +3 -3
- package/dist/cjs/{utils-DY6afhh8.js.map → utils-opS9hsaU.js.map} +1 -1
- package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js +1 -1
- package/dist/cjs/vertex-scene-tree-notification-banner_4.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js +2 -2
- package/dist/cjs/vertex-scene-tree-table-cell.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-scene-tree-table-column.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-scene-tree.cjs.entry.js +3 -3
- package/dist/cjs/vertex-scene-tree.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-annotation-callout.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-box-query-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js +6 -1
- package/dist/cjs/vertex-viewer-button_3.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-default-toolbar.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-dom-element_2.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-dom-group.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer-hit-result-indicator.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-markup-arrow_3.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js +4 -4
- package/dist/cjs/vertex-viewer-markup-tool.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-markup.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-measurement-details.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-measurement-distance.cjs.entry.js +8 -8
- package/dist/cjs/vertex-viewer-measurement-line_2.cjs.entry.js +5 -5
- package/dist/cjs/vertex-viewer-measurement-precise.cjs.entry.js +7 -7
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js +7 -7
- package/dist/cjs/vertex-viewer-pin-group.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js +7 -6
- package/dist/cjs/vertex-viewer-pin-label_2.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-pin-tool.cjs.entry.js +3 -3
- package/dist/cjs/vertex-viewer-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-teleport-tool.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js +6 -6
- package/dist/cjs/vertex-viewer-transform-widget.cjs.entry.js.map +1 -1
- package/dist/cjs/vertex-viewer-view-cube.cjs.entry.js +2 -2
- package/dist/cjs/vertex-viewer-walk-mode-tool.cjs.entry.js +1 -1
- package/dist/cjs/vertex-viewer.cjs.entry.js +8 -8
- package/dist/cjs/viewer.cjs.js +1 -1
- package/dist/cjs/{viewport-B70DgDZj.js → viewport-BDbB9o9T.js} +3 -3
- package/dist/cjs/{viewport-B70DgDZj.js.map → viewport-BDbB9o9T.js.map} +1 -1
- package/dist/collection/components/scene-tree/scene-tree.css +2 -3
- package/dist/collection/components/scene-tree/scene-tree.js.map +1 -1
- package/dist/collection/components/scene-tree-notification-banner/scene-tree-notification-banner.css +1 -1
- package/dist/collection/components/scene-tree-search/scene-tree-search.css +1 -1
- package/dist/collection/components/scene-tree-table-cell/scene-tree-table-cell.css +10 -10
- package/dist/collection/components/scene-tree-table-column/scene-tree-table-column.css +0 -1
- package/dist/collection/components/scene-tree-table-layout/scene-tree-table-layout.css +3 -3
- package/dist/collection/components/viewer-annotation-callout/viewer-annotation-callout.css +3 -4
- package/dist/collection/components/viewer-box-query-tool/types.js.map +1 -1
- package/dist/collection/components/viewer-box-query-tool/viewer-box-query-tool.css +9 -7
- package/dist/collection/components/viewer-button/viewer-button.js +32 -1
- package/dist/collection/components/viewer-button/viewer-button.js.map +1 -1
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.css +2 -2
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js +1 -1
- package/dist/collection/components/viewer-default-toolbar/viewer-default-toolbar.js.map +1 -1
- package/dist/collection/components/viewer-markup/viewer-markup.js.map +1 -1
- package/dist/collection/components/viewer-markup-arrow/utils.js.map +1 -1
- package/dist/collection/components/viewer-markup-tool/viewer-markup-tool.css +2 -2
- package/dist/collection/components/viewer-pin-group/viewer-pin-group.css +12 -11
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.css +21 -8
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.js +2 -1
- package/dist/collection/components/viewer-pin-label/viewer-pin-label.js.map +1 -1
- package/dist/collection/components/viewer-pin-label-line/viewer-pin-label-line.css +5 -4
- package/dist/collection/components/viewer-spinner/viewer-spinner.css +2 -2
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget-components.js.map +1 -1
- package/dist/collection/components/viewer-transform-widget/viewer-transform-widget.css +1 -2
- package/dist/collection/lib/grpc.js.map +1 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js +2 -1
- package/dist/collection/lib/interactions/baseInteractionHandler.js.map +1 -1
- package/dist/collection/lib/scenes/scene.js.map +1 -1
- package/dist/collection/lib/scenes/sceneViewStateLoader.js.map +1 -1
- package/dist/collection/lib/stream/state.js.map +1 -1
- package/dist/collection/lib/types/loadableResource.js.map +1 -1
- package/dist/collection/lib/types/sceneViewStateIdentifier.js.map +1 -1
- package/dist/collection/lib/walk-mode/model.js.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/p-2UsvOTHJ.js +5 -0
- package/dist/components/p-2UsvOTHJ.js.map +1 -0
- package/dist/components/{p-garvKln8.js → p-BAuOB8M-.js} +2 -2
- package/dist/components/p-BAuOB8M-.js.map +1 -0
- package/dist/components/p-BFEV_v80.js +5 -0
- package/dist/components/p-BFEV_v80.js.map +1 -0
- package/dist/components/{p-C02XtMl4.js → p-BHyxBmg6.js} +2 -2
- package/dist/components/{p-CfTvpqud.js → p-BNRm88jS.js} +2 -2
- package/dist/components/{p-O1_Yvjd6.js → p-BT9d9jRt.js} +2 -2
- package/dist/components/{p-oDn1DcWj.js → p-BZDn1Vuv.js} +2 -2
- package/dist/components/{p-VEJB73Ei.js → p-Bdf4AcJ2.js} +2 -2
- package/dist/components/{p-CelQDFR0.js → p-C12jtCFb.js} +2 -2
- package/dist/components/{p-Dzs4u_ZY.js → p-CABws4i9.js} +2 -2
- package/dist/components/p-CIuxJYJL.js.map +1 -1
- package/dist/components/{p-CZgX-9yo.js → p-COznr3CH.js} +2 -2
- package/dist/components/{p-BqeEZXPn.js → p-CPROw2BU.js} +2 -2
- package/dist/components/{p-BKQMbekH.js → p-CWcvgy8e.js} +2 -2
- package/dist/components/{p-CMdP8O-G.js → p-Ca253f0h.js} +2 -2
- package/dist/components/{p-EG7pMA2M.js → p-CeZe0Qql.js} +2 -2
- package/dist/components/p-CioaIHsi.js.map +1 -1
- package/dist/components/{p-DH341c7b.js → p-Cku0WCYo.js} +2 -2
- package/dist/components/p-Cku0WCYo.js.map +1 -0
- package/dist/components/{p-Due5EmBt.js → p-Clyxptbp.js} +2 -2
- package/dist/components/{p-taOlygmc.js → p-Cs2aiMUK.js} +2 -2
- package/dist/components/p-Cs2aiMUK.js.map +1 -0
- package/dist/components/{p-DjrtwKcK.js → p-CvEK3ZK1.js} +2 -2
- package/dist/components/p-Cxz4L6FA.js +5 -0
- package/dist/components/p-Cxz4L6FA.js.map +1 -0
- package/dist/components/{p-MnZadXO8.js → p-D1Vdomj_.js} +2 -2
- package/dist/components/{p-DRGCkSEK.js → p-D3bzgaCV.js} +2 -2
- package/dist/components/{p-DnVcQAR9.js → p-D3in41xo.js} +2 -2
- package/dist/components/p-DTwJX9HL.js +5 -0
- package/dist/components/p-DTwJX9HL.js.map +1 -0
- package/dist/components/p-DUo-H-nW.js +5 -0
- package/dist/components/p-DUo-H-nW.js.map +1 -0
- package/dist/components/{p-DCTZZ5Rd.js → p-DjQ6RXWP.js} +2 -2
- package/dist/components/p-DxuSiXYg.js.map +1 -1
- package/dist/components/{p-CxzyM08j.js → p-DyL2wWm6.js} +2 -2
- package/dist/components/{p-avWSFTeP.js → p-JvS9LLoO.js} +2 -2
- package/dist/{viewer/p-7m7Vr5V7.js → components/p-Ng27jBsS.js} +2 -2
- package/dist/components/p-Ng27jBsS.js.map +1 -0
- package/dist/components/{p-BC777sCK.js → p-UJR-ixsy.js} +2 -2
- package/dist/components/{p-Ib4vgh2t.js → p-UrT4ZJv3.js} +2 -2
- package/dist/components/{p-Ib4vgh2t.js.map → p-UrT4ZJv3.js.map} +1 -1
- package/dist/components/p-Y8W_BXUk.js.map +1 -1
- package/dist/components/{p-mpsCUvSn.js → p-_qi2VkC2.js} +2 -2
- package/dist/components/{p-CNprIkKd.js → p-rDr0x5Z7.js} +2 -2
- package/dist/components/vertex-scene-tree-table-cell.js +1 -1
- package/dist/components/vertex-scene-tree-table-cell.js.map +1 -1
- package/dist/components/vertex-scene-tree-table-column.js.map +1 -1
- package/dist/components/vertex-scene-tree-table-layout.js +1 -1
- package/dist/components/vertex-scene-tree.js +1 -1
- package/dist/components/vertex-scene-tree.js.map +1 -1
- package/dist/components/vertex-viewer-annotation-callout.js.map +1 -1
- package/dist/components/vertex-viewer-box-query-tool.js +1 -1
- package/dist/components/vertex-viewer-box-query-tool.js.map +1 -1
- package/dist/components/vertex-viewer-button.js +1 -1
- package/dist/components/vertex-viewer-default-toolbar.js +1 -1
- package/dist/components/vertex-viewer-default-toolbar.js.map +1 -1
- package/dist/components/vertex-viewer-dom-element.js +1 -1
- package/dist/components/vertex-viewer-dom-group.js +1 -1
- package/dist/components/vertex-viewer-dom-renderer.js +1 -1
- package/dist/components/vertex-viewer-hit-result-indicator.js +1 -1
- package/dist/components/vertex-viewer-markup-arrow.js +1 -1
- package/dist/components/vertex-viewer-markup-circle.js +1 -1
- package/dist/components/vertex-viewer-markup-freeform.js +1 -1
- package/dist/components/vertex-viewer-markup-tool.js +1 -1
- package/dist/components/vertex-viewer-markup-tool.js.map +1 -1
- package/dist/components/vertex-viewer-markup.js +1 -1
- package/dist/components/vertex-viewer-markup.js.map +1 -1
- package/dist/components/vertex-viewer-measurement-details.js +1 -1
- package/dist/components/vertex-viewer-measurement-distance.js +1 -1
- package/dist/components/vertex-viewer-measurement-line.js +1 -1
- package/dist/components/vertex-viewer-measurement-overlays.js +1 -1
- package/dist/components/vertex-viewer-measurement-precise.js +1 -1
- package/dist/components/vertex-viewer-pin-group.js +1 -1
- package/dist/components/vertex-viewer-pin-label-line.js +1 -1
- package/dist/components/vertex-viewer-pin-label.js +1 -1
- package/dist/components/vertex-viewer-pin-tool.js +1 -1
- package/dist/components/vertex-viewer-teleport-tool.js +1 -1
- package/dist/components/vertex-viewer-transform-widget.js +1 -1
- package/dist/components/vertex-viewer-transform-widget.js.map +1 -1
- package/dist/components/vertex-viewer-view-cube.js +1 -1
- package/dist/components/vertex-viewer-walk-mode-tool.js +1 -1
- package/dist/components/vertex-viewer.js +1 -1
- package/dist/esm/{bundle-CZZALKHT.js → bundle-2UsvOTHJ.js} +28 -25
- package/dist/esm/bundle-2UsvOTHJ.js.map +1 -0
- package/dist/esm/{config-CyaUTJEG.js → config-ss9ha12b.js} +3 -3
- package/dist/esm/{config-CyaUTJEG.js.map → config-ss9ha12b.js.map} +1 -1
- package/dist/esm/{controller-ByBd8r3O.js → controller-BPECXXfj.js} +3 -3
- package/dist/esm/{controller-ByBd8r3O.js.map → controller-BPECXXfj.js.map} +1 -1
- package/dist/esm/{dom-Bbf2HAst.js → dom-DaP9SiyY.js} +3 -3
- package/dist/esm/{dom-Bbf2HAst.js.map → dom-DaP9SiyY.js.map} +1 -1
- package/dist/esm/{entities-DriL3zBC.js → entities-DEFAhYdV.js} +4 -4
- package/dist/esm/{entities-DriL3zBC.js.map → entities-DEFAhYdV.js.map} +1 -1
- package/dist/esm/{geometry_pb-BEB8SExe.js → geometry_pb-D7fM1PYG.js} +3 -3
- package/dist/esm/{geometry_pb-BEB8SExe.js.map → geometry_pb-D7fM1PYG.js.map} +1 -1
- package/dist/esm/grpc-hWL8wFvk.js.map +1 -1
- package/dist/esm/index.js +13 -13
- package/dist/esm/index.mjs +13 -13
- package/dist/esm/loader.js +1 -1
- package/dist/esm/loader.mjs +1 -1
- package/dist/esm/{markup-y96-uR-l.js → markup-B58g75Hr.js} +3 -3
- package/dist/esm/{markup-y96-uR-l.js.map → markup-B58g75Hr.js.map} +1 -1
- package/dist/esm/{model-BJQo0DxL.js → model-B5KuXEsl.js} +3 -3
- package/dist/esm/{model-BJQo0DxL.js.map → model-B5KuXEsl.js.map} +1 -1
- package/dist/esm/model-BHVr1tU0.js.map +1 -1
- package/dist/esm/{model-CTdG73h9.js → model-Dc6T63-k.js} +3 -3
- package/dist/esm/{model-CTdG73h9.js.map → model-Dc6T63-k.js.map} +1 -1
- package/dist/esm/{multiElementInteractionHandler-C45E8VzE.js → multiElementInteractionHandler-3tE3OPpw.js} +6 -5
- package/dist/esm/multiElementInteractionHandler-3tE3OPpw.js.map +1 -0
- package/dist/esm/{overlays-DmcRtaSn.js → overlays-BwIqsqLW.js} +3 -3
- package/dist/esm/{overlays-DmcRtaSn.js.map → overlays-BwIqsqLW.js.map} +1 -1
- package/dist/esm/{queries-DWjy-LsV.js → queries-BcmE5Zbq.js} +5 -5
- package/dist/esm/queries-BcmE5Zbq.js.map +1 -0
- package/dist/esm/{regl-component-zzdsBise.js → regl-component-gIonUTBJ.js} +6 -6
- package/dist/esm/{regl-component-zzdsBise.js.map → regl-component-gIonUTBJ.js.map} +1 -1
- package/dist/esm/{representation_pb-CQdJxiGO.js → representation_pb-Bf023NuN.js} +3 -3
- package/dist/esm/{representation_pb-CQdJxiGO.js.map → representation_pb-Bf023NuN.js.map} +1 -1
- package/dist/esm/{results-ClIgKssN.js → results-De9arm7M.js} +3 -3
- package/dist/esm/{results-ClIgKssN.js.map → results-De9arm7M.js.map} +1 -1
- package/dist/esm/{streamAttributes-CTs61PCl.js → streamAttributes-Bj2xDHfI.js} +3 -3
- package/dist/esm/{streamAttributes-CTs61PCl.js.map → streamAttributes-Bj2xDHfI.js.map} +1 -1
- package/dist/esm/{util-DUjEw5Kh.js → util-CMPFqnEv.js} +3 -3
- package/dist/esm/{util-DUjEw5Kh.js.map → util-CMPFqnEv.js.map} +1 -1
- package/dist/esm/{utils-DOjHP1wA.js → utils-B1mSYmAK.js} +3 -3
- package/dist/esm/{utils-DOjHP1wA.js.map → utils-B1mSYmAK.js.map} +1 -1
- package/dist/esm/{utils-DJ5FvINs.js → utils-c-mcLgsj.js} +3 -3
- package/dist/esm/utils-c-mcLgsj.js.map +1 -0
- package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js +1 -1
- package/dist/esm/vertex-scene-tree-notification-banner_4.entry.js.map +1 -1
- package/dist/esm/vertex-scene-tree-table-cell.entry.js +2 -2
- package/dist/esm/vertex-scene-tree-table-cell.entry.js.map +1 -1
- package/dist/esm/vertex-scene-tree-table-column.entry.js.map +1 -1
- package/dist/esm/vertex-scene-tree.entry.js +3 -3
- package/dist/esm/vertex-scene-tree.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-annotation-callout.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-box-query-tool.entry.js +4 -4
- package/dist/esm/vertex-viewer-box-query-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-button_3.entry.js +6 -1
- package/dist/esm/vertex-viewer-button_3.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-default-toolbar.entry.js +2 -2
- package/dist/esm/vertex-viewer-default-toolbar.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-dom-element_2.entry.js +5 -5
- package/dist/esm/vertex-viewer-dom-group.entry.js +1 -1
- package/dist/esm/vertex-viewer-hit-result-indicator.entry.js +5 -5
- package/dist/esm/vertex-viewer-markup-arrow_3.entry.js +3 -3
- package/dist/esm/vertex-viewer-markup-tool.entry.js +4 -4
- package/dist/esm/vertex-viewer-markup-tool.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-markup.entry.js +3 -3
- package/dist/esm/vertex-viewer-markup.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-measurement-details.entry.js +3 -3
- package/dist/esm/vertex-viewer-measurement-distance.entry.js +8 -8
- package/dist/esm/vertex-viewer-measurement-line_2.entry.js +5 -5
- package/dist/esm/vertex-viewer-measurement-precise.entry.js +7 -7
- package/dist/esm/vertex-viewer-pin-group.entry.js +7 -7
- package/dist/esm/vertex-viewer-pin-group.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-label_2.entry.js +7 -6
- package/dist/esm/vertex-viewer-pin-label_2.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-pin-tool.entry.js +3 -3
- package/dist/esm/vertex-viewer-spinner.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-teleport-tool.entry.js +2 -2
- package/dist/esm/vertex-viewer-transform-widget.entry.js +6 -6
- package/dist/esm/vertex-viewer-transform-widget.entry.js.map +1 -1
- package/dist/esm/vertex-viewer-view-cube.entry.js +2 -2
- package/dist/esm/vertex-viewer-walk-mode-tool.entry.js +1 -1
- package/dist/esm/vertex-viewer.entry.js +8 -8
- package/dist/esm/viewer.js +1 -1
- package/dist/esm/{viewport-D90kzsD7.js → viewport-CHtidaFL.js} +3 -3
- package/dist/esm/{viewport-D90kzsD7.js.map → viewport-CHtidaFL.js.map} +1 -1
- package/dist/types/components/viewer-button/viewer-button.d.ts +5 -0
- package/dist/types/components.d.ts +14 -1
- package/dist/types/lib/walk-mode/model.d.ts +10 -10
- package/dist/types/regl-shape.d.ts +1 -5
- package/dist/viewer/index.esm.js +1 -1
- package/dist/viewer/{p-12a673f0.entry.js → p-00540193.entry.js} +2 -2
- package/dist/viewer/p-00540193.entry.js.map +1 -0
- package/dist/viewer/{p-78f422af.entry.js → p-287e0670.entry.js} +2 -2
- package/dist/viewer/{p-78f422af.entry.js.map → p-287e0670.entry.js.map} +1 -1
- package/dist/viewer/p-2UsvOTHJ.js +5 -0
- package/dist/viewer/p-2UsvOTHJ.js.map +1 -0
- package/dist/viewer/{p-510fd2e1.entry.js → p-2d2fa147.entry.js} +2 -2
- package/dist/viewer/{p-fe434552.entry.js → p-30a5748d.entry.js} +2 -2
- package/dist/viewer/p-32a51a21.entry.js +5 -0
- package/dist/viewer/p-32a51a21.entry.js.map +1 -0
- package/dist/viewer/{p-aa0359e0.entry.js → p-3c5dd716.entry.js} +2 -2
- package/dist/viewer/{p-9312a936.entry.js → p-48020de1.entry.js} +2 -2
- package/dist/viewer/{p-d5542b6a.entry.js → p-4dd67d16.entry.js} +2 -2
- package/dist/viewer/p-4dd67d16.entry.js.map +1 -0
- package/dist/viewer/p-504e77a7.entry.js +5 -0
- package/dist/viewer/{p-c2c3579f.entry.js.map → p-504e77a7.entry.js.map} +1 -1
- package/dist/viewer/{p-71c03352.entry.js → p-53f6cc59.entry.js} +2 -2
- package/dist/viewer/{p-7b4eec65.entry.js → p-5cfb3047.entry.js} +2 -2
- package/dist/viewer/{p-e3981cf8.entry.js → p-7cb9c9bb.entry.js} +2 -2
- package/dist/viewer/p-7cb9c9bb.entry.js.map +1 -0
- package/dist/viewer/{p-56e39cff.entry.js → p-83683307.entry.js} +2 -2
- package/dist/viewer/{p-a108a305.entry.js → p-9a39315d.entry.js} +2 -2
- package/dist/viewer/{p-O1_Yvjd6.js → p-BT9d9jRt.js} +2 -2
- package/dist/viewer/{p-O1_Yvjd6.js.map → p-BT9d9jRt.js.map} +1 -1
- package/dist/viewer/{p-VEJB73Ei.js → p-Bdf4AcJ2.js} +2 -2
- package/dist/viewer/{p-VEJB73Ei.js.map → p-Bdf4AcJ2.js.map} +1 -1
- package/dist/viewer/{p-Cr2EnhS-.js → p-BhKTTmpL.js} +2 -2
- package/dist/viewer/{p-Cr2EnhS-.js.map → p-BhKTTmpL.js.map} +1 -1
- package/dist/viewer/{p-CelQDFR0.js → p-C12jtCFb.js} +2 -2
- package/dist/viewer/{p-CelQDFR0.js.map → p-C12jtCFb.js.map} +1 -1
- package/dist/viewer/p-CEDqc5sS.js +5 -0
- package/dist/viewer/{p-BDy3SLKk.js.map → p-CEDqc5sS.js.map} +1 -1
- package/dist/viewer/{p-C6YtUG51.js → p-CS8PfgcI.js} +2 -2
- package/dist/viewer/{p-C6YtUG51.js.map → p-CS8PfgcI.js.map} +1 -1
- package/dist/viewer/{p-EG7pMA2M.js → p-CeZe0Qql.js} +2 -2
- package/dist/viewer/{p-EG7pMA2M.js.map → p-CeZe0Qql.js.map} +1 -1
- package/dist/viewer/p-CioaIHsi.js.map +1 -1
- package/dist/viewer/{p-EUeCUp3y.js → p-CxBXErQ8.js} +2 -2
- package/dist/viewer/{p-EUeCUp3y.js.map → p-CxBXErQ8.js.map} +1 -1
- package/dist/viewer/{p-BIR7Lfxx.js → p-CyiY_hsD.js} +2 -2
- package/dist/viewer/{p-BIR7Lfxx.js.map → p-CyiY_hsD.js.map} +1 -1
- package/dist/viewer/{p-CIBBr-p1.js → p-D0aTA_2m.js} +2 -2
- package/dist/viewer/{p-CIBBr-p1.js.map → p-D0aTA_2m.js.map} +1 -1
- package/dist/viewer/{p-C-huOg09.js → p-D2IEHEGM.js} +2 -2
- package/dist/viewer/{p-C-huOg09.js.map → p-D2IEHEGM.js.map} +1 -1
- package/dist/viewer/{p-UQXG8bCI.js → p-DBfvBC5O.js} +2 -2
- package/dist/viewer/p-DBfvBC5O.js.map +1 -0
- package/dist/viewer/{p-B-J4CqZy.js → p-DHK23fw4.js} +2 -2
- package/dist/viewer/{p-B-J4CqZy.js.map → p-DHK23fw4.js.map} +1 -1
- package/dist/{components/p-QhlhRt6X.js → viewer/p-DIbJ8Ijj.js} +2 -2
- package/dist/viewer/p-DIbJ8Ijj.js.map +1 -0
- package/dist/viewer/{p-CxzyM08j.js → p-DyL2wWm6.js} +2 -2
- package/dist/viewer/{p-CxzyM08j.js.map → p-DyL2wWm6.js.map} +1 -1
- package/dist/viewer/{p-avWSFTeP.js → p-JvS9LLoO.js} +2 -2
- package/dist/viewer/{p-avWSFTeP.js.map → p-JvS9LLoO.js.map} +1 -1
- package/dist/viewer/p-_LpaX1ga.js +5 -0
- package/dist/viewer/p-_LpaX1ga.js.map +1 -0
- package/dist/viewer/{p-mpsCUvSn.js → p-_qi2VkC2.js} +2 -2
- package/dist/viewer/{p-mpsCUvSn.js.map → p-_qi2VkC2.js.map} +1 -1
- package/dist/viewer/p-b5cc83a4.entry.js.map +1 -1
- package/dist/viewer/{p-82ed4346.entry.js → p-b79c295a.entry.js} +2 -2
- package/dist/viewer/{p-fc7d9b2b.entry.js → p-c531ca97.entry.js} +2 -2
- package/dist/viewer/{p-fc7d9b2b.entry.js.map → p-c531ca97.entry.js.map} +1 -1
- package/dist/viewer/p-c9dee5c4.entry.js +5 -0
- package/dist/viewer/p-c9dee5c4.entry.js.map +1 -0
- package/dist/viewer/{p-c2454523.entry.js → p-cc835213.entry.js} +2 -2
- package/dist/viewer/p-ce711ae0.entry.js +5 -0
- package/dist/viewer/p-ce711ae0.entry.js.map +1 -0
- package/dist/viewer/p-d357d235.entry.js.map +1 -1
- package/dist/viewer/{p-91fca24b.entry.js → p-d5a57757.entry.js} +2 -2
- package/dist/viewer/p-e4913b06.entry.js +5 -0
- package/dist/viewer/p-e4913b06.entry.js.map +1 -0
- package/dist/viewer/p-e98db875.entry.js.map +1 -1
- package/dist/viewer/{p-a893a299.entry.js → p-edc2f914.entry.js} +2 -2
- package/dist/viewer/{p-03a531d9.entry.js → p-ef9437ca.entry.js} +2 -2
- package/dist/viewer/{p-49578ec9.entry.js → p-fd3a5837.entry.js} +2 -2
- package/dist/viewer/p-fd3a5837.entry.js.map +1 -0
- package/dist/viewer/p-ipyYHvea.js.map +1 -1
- package/dist/viewer/{p-Ce1j43tF.js → p-kMZA0v7I.js} +2 -2
- package/dist/viewer/{p-Ce1j43tF.js.map → p-kMZA0v7I.js.map} +1 -1
- package/dist/viewer/viewer.esm.js +1 -1
- package/package.json +8 -8
- package/readme.md +14 -8
- package/dist/cjs/bundle-07I6_WqC.js.map +0 -1
- package/dist/cjs/multiElementInteractionHandler-Bqpg2wVT.js.map +0 -1
- package/dist/cjs/queries-GhYmoomu.js.map +0 -1
- package/dist/cjs/utils-BsXO-wLi.js.map +0 -1
- package/dist/components/p-B4sO9HdX.js +0 -5
- package/dist/components/p-B4sO9HdX.js.map +0 -1
- package/dist/components/p-C--Voxln.js +0 -5
- package/dist/components/p-C--Voxln.js.map +0 -1
- package/dist/components/p-CZZALKHT.js +0 -5
- package/dist/components/p-CZZALKHT.js.map +0 -1
- package/dist/components/p-Cn0vKqIN.js +0 -5
- package/dist/components/p-Cn0vKqIN.js.map +0 -1
- package/dist/components/p-DH341c7b.js.map +0 -1
- package/dist/components/p-Dmc49hX3.js +0 -5
- package/dist/components/p-Dmc49hX3.js.map +0 -1
- package/dist/components/p-QhlhRt6X.js.map +0 -1
- package/dist/components/p-garvKln8.js.map +0 -1
- package/dist/components/p-taOlygmc.js.map +0 -1
- package/dist/esm/bundle-CZZALKHT.js.map +0 -1
- package/dist/esm/multiElementInteractionHandler-C45E8VzE.js.map +0 -1
- package/dist/esm/queries-DWjy-LsV.js.map +0 -1
- package/dist/esm/utils-DJ5FvINs.js.map +0 -1
- package/dist/viewer/p-02384d83.entry.js +0 -5
- package/dist/viewer/p-02384d83.entry.js.map +0 -1
- package/dist/viewer/p-12a673f0.entry.js.map +0 -1
- package/dist/viewer/p-49578ec9.entry.js.map +0 -1
- package/dist/viewer/p-4c223366.entry.js +0 -5
- package/dist/viewer/p-4c223366.entry.js.map +0 -1
- package/dist/viewer/p-7m7Vr5V7.js.map +0 -1
- package/dist/viewer/p-8774425b.entry.js +0 -5
- package/dist/viewer/p-8774425b.entry.js.map +0 -1
- package/dist/viewer/p-9c02567d.entry.js +0 -5
- package/dist/viewer/p-9c02567d.entry.js.map +0 -1
- package/dist/viewer/p-BDy3SLKk.js +0 -5
- package/dist/viewer/p-CZZALKHT.js +0 -5
- package/dist/viewer/p-CZZALKHT.js.map +0 -1
- package/dist/viewer/p-Cju1inFh.js +0 -5
- package/dist/viewer/p-Cju1inFh.js.map +0 -1
- package/dist/viewer/p-UQXG8bCI.js.map +0 -1
- package/dist/viewer/p-c2c3579f.entry.js +0 -5
- package/dist/viewer/p-d5542b6a.entry.js.map +0 -1
- package/dist/viewer/p-e3981cf8.entry.js.map +0 -1
- /package/dist/components/{p-C02XtMl4.js.map → p-BHyxBmg6.js.map} +0 -0
- /package/dist/components/{p-CfTvpqud.js.map → p-BNRm88jS.js.map} +0 -0
- /package/dist/components/{p-O1_Yvjd6.js.map → p-BT9d9jRt.js.map} +0 -0
- /package/dist/components/{p-oDn1DcWj.js.map → p-BZDn1Vuv.js.map} +0 -0
- /package/dist/components/{p-VEJB73Ei.js.map → p-Bdf4AcJ2.js.map} +0 -0
- /package/dist/components/{p-CelQDFR0.js.map → p-C12jtCFb.js.map} +0 -0
- /package/dist/components/{p-Dzs4u_ZY.js.map → p-CABws4i9.js.map} +0 -0
- /package/dist/components/{p-CZgX-9yo.js.map → p-COznr3CH.js.map} +0 -0
- /package/dist/components/{p-BqeEZXPn.js.map → p-CPROw2BU.js.map} +0 -0
- /package/dist/components/{p-BKQMbekH.js.map → p-CWcvgy8e.js.map} +0 -0
- /package/dist/components/{p-CMdP8O-G.js.map → p-Ca253f0h.js.map} +0 -0
- /package/dist/components/{p-EG7pMA2M.js.map → p-CeZe0Qql.js.map} +0 -0
- /package/dist/components/{p-Due5EmBt.js.map → p-Clyxptbp.js.map} +0 -0
- /package/dist/components/{p-DjrtwKcK.js.map → p-CvEK3ZK1.js.map} +0 -0
- /package/dist/components/{p-MnZadXO8.js.map → p-D1Vdomj_.js.map} +0 -0
- /package/dist/components/{p-DRGCkSEK.js.map → p-D3bzgaCV.js.map} +0 -0
- /package/dist/components/{p-DnVcQAR9.js.map → p-D3in41xo.js.map} +0 -0
- /package/dist/components/{p-DCTZZ5Rd.js.map → p-DjQ6RXWP.js.map} +0 -0
- /package/dist/components/{p-CxzyM08j.js.map → p-DyL2wWm6.js.map} +0 -0
- /package/dist/components/{p-avWSFTeP.js.map → p-JvS9LLoO.js.map} +0 -0
- /package/dist/components/{p-BC777sCK.js.map → p-UJR-ixsy.js.map} +0 -0
- /package/dist/components/{p-mpsCUvSn.js.map → p-_qi2VkC2.js.map} +0 -0
- /package/dist/components/{p-CNprIkKd.js.map → p-rDr0x5Z7.js.map} +0 -0
- /package/dist/viewer/{p-510fd2e1.entry.js.map → p-2d2fa147.entry.js.map} +0 -0
- /package/dist/viewer/{p-fe434552.entry.js.map → p-30a5748d.entry.js.map} +0 -0
- /package/dist/viewer/{p-aa0359e0.entry.js.map → p-3c5dd716.entry.js.map} +0 -0
- /package/dist/viewer/{p-9312a936.entry.js.map → p-48020de1.entry.js.map} +0 -0
- /package/dist/viewer/{p-71c03352.entry.js.map → p-53f6cc59.entry.js.map} +0 -0
- /package/dist/viewer/{p-7b4eec65.entry.js.map → p-5cfb3047.entry.js.map} +0 -0
- /package/dist/viewer/{p-56e39cff.entry.js.map → p-83683307.entry.js.map} +0 -0
- /package/dist/viewer/{p-a108a305.entry.js.map → p-9a39315d.entry.js.map} +0 -0
- /package/dist/viewer/{p-82ed4346.entry.js.map → p-b79c295a.entry.js.map} +0 -0
- /package/dist/viewer/{p-c2454523.entry.js.map → p-cc835213.entry.js.map} +0 -0
- /package/dist/viewer/{p-91fca24b.entry.js.map → p-d5a57757.entry.js.map} +0 -0
- /package/dist/viewer/{p-a893a299.entry.js.map → p-edc2f914.entry.js.map} +0 -0
- /package/dist/viewer/{p-03a531d9.entry.js.map → p-ef9437ca.entry.js.map} +0 -0
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{t as i,p as t,H as e,d as n,h as o,e as s}from"./p-Bb32XUUS.js";import{e as a,p as r}from"./p-2UsvOTHJ.js";import{c as l}from"./p-C6gMOKYg.js";import{g as h}from"./p-CPROw2BU.js";import{P as d,g as p,a as c}from"./p-D1akPoVm.js";import{r as v}from"./p-Cd7kap5W.js";import{r as u}from"./p-CDM7zNn0.js";class b{constructor(i,t="view",e="pin-icon",n=undefined){this.model=i;this.mode=t;this.type=e;this.styleAttributes=n}addPin(i){this.model.addPin(i)}clearPins(){this.model.clearPins()}removePin(i){this.model.removePin(i)}setPins(i){this.model.setPins(i)}setPin(i){this.model.setPin(i)}updatePin(i){this.model.updatePin(i)}setSelectedPinId(i){this.model.setSelectedPin(i)}getToolMode(){return this.mode}getToolType(){return this.type}setToolMode(i){this.mode=i}setToolType(i){this.type=i}getDraggable(){return this.draggable}setDraggable(i){this.draggable=i}setPrimaryColor(i){this.styleAttributes={...this.styleAttributes,primaryColor:i}}setAccentColor(i){this.styleAttributes={...this.styleAttributes,accentColor:i}}getStyleAttributes(){return this.styleAttributes}updateDraggable(i,t,e){if(this.draggable!=null){this.draggable=i}const n=this.model.getPinById(i.id);if(n!=null){this.updatePin({...n,worldPosition:t,partId:e})}}}function w(i,t){const e=Math.max(t.start,Math.min(t.end,i.x));const n=Math.max(t.start,Math.min(t.end,i.y));return r.create(e,n)}function m(i,t){return r.add(r.scale(i,t.width,t.height),a.center(t))}function f(i,t,e,n,o){const s=1/t.height;const l=1/t.width;const h=a.center(t);const d=r.scale(r.subtract(i,h),l,s);if(e){const t=r.scale(r.create(n,o),l,s);const e=h.x>i.x;const a=e?t.x:-3*t.x;const p=h.y>i.y;const c=p?t.y:-3*t.y;const v=r.add(d,r.create(a,c));return w(v,u.create(-.5,.5))}else{return w(d,u.create(-.5,.5))}}function g(i){return window.getComputedStyle(i)}const x=()=>`:host{--viewer-annotations-pin-label-background-color:var( --viewer-annotations-pin-accent-color );--viewer-annotations-pin-label-border-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-focused-border-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-color:var(--white);--viewer-annotations-pin-label-padding-y:0.375em;--viewer-annotations-pin-label-padding-x:0.5em;--viewer-annotations-pin-label-border-width:2px;--viewer-annotations-pin-label-border-style:solid;--viewer-annotations-pin-label-border-radius:0.25em;--viewer-annotations-pin-label-min-width:2rem;--viewer-annotations-pin-label-max-width:25rem;--viewer-annotations-pin-label-max-height:50rem;overflow:hidden;pointer-events:none}:host([mode='']) .pin-label{color:var(--viewer-annotations-pin-label-color);background:var(--viewer-annotations-pin-label-background-color)}.pin-label-text{font-family:Arial, Helvetica, sans-serif;font-size:0.875rem;line-height:1rem;word-break:break-word;white-space:pre-wrap}.pin-label-input-wrapper{display:flex;position:absolute;pointer-events:auto;box-sizing:border-box;min-width:var(--viewer-annotations-pin-label-min-width);max-width:var(--viewer-annotations-pin-label-max-width);max-height:var(--viewer-annotations-pin-label-max-height);background:var(--viewer-annotations-pin-label-background-color);border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);border-radius:var(--viewer-annotations-pin-label-border-radius)}.pin-label-input-wrapper.focused{min-width:var(--viewer-annotations-pin-label-max-width);border-color:var(--viewer-annotations-pin-label-focused-border-color)}.pin-input-drag-target{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.pin-label-input{resize:none;position:relative;outline:none;border:none;word-break:break-word;padding:0 0 0 0;background-color:transparent;margin:var(--viewer-annotations-pin-label-padding-y) var(--viewer-annotations-pin-label-padding-x);width:var(--viewer-annotations-pin-label-min-width);flex-grow:1;overflow:hidden;max-width:calc( var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)) )}.pin-label-input.readonly{pointer-events:auto;color:black;cursor:pointer}.pin-label-hidden{position:absolute;visibility:hidden;pointer-events:none;width:auto;height:auto;box-sizing:border-box;border-width:var(--viewer-annotations-pin-label-border-width);border-style:var(--viewer-annotations-pin-label-border-style);border-color:var(--viewer-annotations-pin-label-border-color);margin:var(--viewer-annotations-pin-label-padding-y) 0;padding:0 var(--viewer-annotations-pin-label-padding-x);max-width:calc( var(--viewer-annotations-pin-label-max-width) - calc(2 * var(--viewer-annotations-pin-label-padding-x)) )}`;const y=t(class i extends e{constructor(i){super();if(i!==false){this.__registerHost()}this.labelChanged=n(this,"labelChanged");this.labelFocused=n(this,"labelFocused");this.labelBlurred=n(this,"labelBlurred");this.value="";this.focused=false;this.textareaRows=1;this.computeContentSize=()=>{v((()=>{if(this.contentEl!=null){this.contentElBounds=this.contentEl.getBoundingClientRect();const i=g(this.contentEl);this.textareaRows=Math.max(1,Math.ceil((Number.parseFloat(i.getPropertyValue("height"))-Number.parseFloat(i.getPropertyValue("borderWidth"))*2)/Number.parseFloat(i.getPropertyValue("lineHeight"))))}}))};this.handleInputKeyDown=i=>{i.stopPropagation();if(i.key==="Enter"&&(i.ctrlKey||i.metaKey||i.shiftKey)){this.textareaRows+=1;this.value+="\n"}else if(i.key==="Enter"){i.preventDefault();this.submit()}};this.handlePointerDown=i=>{var t;if(!this.focused){if(this.elementBounds!=null){if(i.buttons!==2){i.preventDefault();i.stopPropagation()}this.relativePointerDownPosition=f(h(i,this.elementBounds),this.elementBounds);this.pinPointerDownPosition=(t=this.pin)===null||t===void 0?void 0:t.label.point;window.addEventListener("pointermove",this.handlePointerMove);window.addEventListener("pointerup",this.handlePointerUp)}}};this.handlePointerMove=i=>{var t;if(this.elementBounds!=null&&this.relativePointerDownPosition&&this.pinPointerDownPosition!=null){i.preventDefault();i.stopPropagation();const e=h(i,this.elementBounds);const n=f(e,this.elementBounds);const o=r.subtract(n,this.relativePointerDownPosition);const s=this.pin!=null?{...this.pin,label:{...this.pin.label,point:r.add(this.pinPointerDownPosition,o)}}:undefined;if(s){(t=this.pinController)===null||t===void 0?void 0:t.updatePin(s);this.computeScreenPosition()}}};this.handlePointerUp=i=>{var t,e;if(((t=this.pinController)===null||t===void 0?void 0:t.getToolMode())==="edit"&&this.relativePointerDownPosition!=null&&this.elementBounds!=null){const t=m(this.relativePointerDownPosition,this.elementBounds);const n=r.distance(t,h(i,this.elementBounds));if(n<=2){this.focused=true;this.labelFocused.emit((e=this.pin)===null||e===void 0?void 0:e.id)}}this.relativePointerDownPosition=undefined;this.pinPointerDownPosition=undefined;window.removeEventListener("pointermove",this.handlePointerMove);window.removeEventListener("pointerup",this.handlePointerUp)};this.handleTextBlur=()=>{this.submit()};this.handleTextInput=i=>{const t=i.target;this.value=t.value}}async setFocus(){var i,t,e;if(typeof((i=this.inputEl)===null||i===void 0?void 0:i.focus)==="function"){this.focused=true;this.labelFocused.emit((t=this.pin)===null||t===void 0?void 0:t.id);(e=this.inputEl)===null||e===void 0?void 0:e.focus()}}async submit(){var i,t;this.focused=false;this.labelBlurred.emit((i=this.pin)===null||i===void 0?void 0:i.id);if(this.pin!=null){(t=this.pinController)===null||t===void 0?void 0:t.updatePin({...this.pin,label:{point:this.pin.label.point,text:this.value}})}}watchFocusChange(){var i,t;this.labelChanged.emit();if(this.focused){(i=this.pinController)===null||i===void 0?void 0:i.setSelectedPinId((t=this.pin)===null||t===void 0?void 0:t.id)}}watchPinChange(){var i,t;this.value=(t=(i=this.pin)===null||i===void 0?void 0:i.label.text)!==null&&t!==void 0?t:"";this.computeScreenPosition()}watchElementBoundsChange(){this.computeScreenPosition()}componentWillLoad(){var i,t;this.value=(t=(i=this.pin)===null||i===void 0?void 0:i.label.text)!==null&&t!==void 0?t:"";this.computeScreenPosition();if(this.pinController==null){this.pinController=new b(new d)}}componentDidLoad(){this.resizeObserver=new ResizeObserver((()=>{this.labelChanged.emit()}));this.contentResizeObserver=new ResizeObserver(this.computeContentSize);if(this.hostEl!=null){this.resizeObserver.observe(this.hostEl)}if(this.contentEl!=null){this.contentResizeObserver.observe(this.contentEl)}}disconnectedCallback(){var i,t;(i=this.resizeObserver)===null||i===void 0?void 0:i.disconnect();(t=this.contentResizeObserver)===null||t===void 0?void 0:t.disconnect()}componentDidRender(){if(this.focused&&this.inputEl!=null){this.setFocus()}}render(){var i,t,e;const{primaryColor:n,accentColor:a}=p(this.pin);return o(s,{key:"2eeca89781ad06fce5403bee5d967496c4886201"},o("div",{key:"9f6ca00bfadf8b6090db219ce05ec2eae28f341f",class:l("pin-label-input-wrapper",{focused:this.focused}),onPointerDown:this.handlePointerDown,style:{top:`${((i=this.computedScreenPosition)===null||i===void 0?void 0:i.y.toString())||0}px`,left:`${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.x.toString())||0}px`,minWidth:this.computeMinWidth(),maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight(),borderColor:n,background:a}},o("textarea",{key:"faee5e02d2f9bd18dd2e367e4e52b4325ac3c782",id:`pin-label-input-${(e=this.pin)===null||e===void 0?void 0:e.id}`,class:l("pin-label-input","pin-label-text",{["readonly"]:!this.focused}),disabled:!this.focused,ref:i=>this.inputEl=i,value:this.value,rows:this.textareaRows,onKeyDown:this.handleInputKeyDown,onInput:this.handleTextInput,onBlur:this.handleTextBlur}),!this.focused&&o("div",{key:"2851d39b6cf87c64ef585a9f1967c689f01d030e",class:"pin-input-drag-target",onPointerDown:this.handlePointerDown})),o("div",{key:"a7c2e114227e9fe744b0ef4e42c3fd5abd5c626e",ref:i=>this.contentEl=i,class:l("pin-label-text","pin-label-hidden"),style:{maxWidth:this.computeMaxWidth(),maxHeight:this.computeMaxHeight()}},this.hiddenContent()))}hiddenContent(){return this.value.includes("\n")?this.value.split("\n").reduce(((i,t)=>[...i,t,o("br",null)]),[]):[this.value]}computeMinWidth(){if(this.contentElBounds!=null){const i=`${this.contentElBounds.width+8}px`;return`min(${i}, ${this.computeMaxWidth()})`}else{return`var(--viewer-annotations-pin-label-min-width)`}}computeMaxWidth(){const i=`var(--viewer-annotations-pin-label-max-width)`;return`min(${i}, ${this.computeRemainingWidth()})`}computeMaxHeight(){const i=`var(--viewer-annotations-pin-label-max-height)`;return`min(${i}, ${this.computeRemainingHeight()})`}computeRemainingWidth(){var i,t;return`calc(${((i=this.elementBounds)===null||i===void 0?void 0:i.width.toString())||0}px - ${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.x.toString())||0}px)`}computeRemainingHeight(){var i,t;return`calc(${((i=this.elementBounds)===null||i===void 0?void 0:i.height.toString())||0}px - ${((t=this.computedScreenPosition)===null||t===void 0?void 0:t.y.toString())||0}px)`}computeScreenPosition(){this.computedScreenPosition=c(this.pin)&&this.elementBounds!=null&&this.pin.label.point!=null?m(this.pin.label.point,this.elementBounds):undefined}get hostEl(){return this}static get watchers(){return{focused:[{watchFocusChange:0}],pin:[{watchPinChange:0}],elementBounds:[{watchElementBoundsChange:0}]}}static get style(){return x()}},[0,"vertex-viewer-pin-label",{pin:[16],elementBounds:[16],value:[1025],pinController:[1040],focused:[32],computedScreenPosition:[32],textareaRows:[32],contentElBounds:[32],setFocus:[64],submit:[64]},undefined,{focused:[{watchFocusChange:0}],pin:[{watchPinChange:0}],elementBounds:[{watchElementBoundsChange:0}]}]);function C(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-pin-label"];t.forEach((t=>{switch(t){case"vertex-viewer-pin-label":if(!customElements.get(i(t))){customElements.define(i(t),y)}break}}))}C();export{b as P,y as V,f as a,C as d,m as t};
|
|
5
|
+
//# sourceMappingURL=p-DTwJX9HL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["PinController","constructor","model","mode","type","styleAttributes","undefined","this","addPin","pin","clearPins","removePin","setPins","pins","setPin","updatePin","setSelectedPinId","pinId","setSelectedPin","getToolMode","getToolType","setToolMode","setToolType","getDraggable","draggable","setDraggable","setPrimaryColor","color","primaryColor","setAccentColor","accentColor","getStyleAttributes","updateDraggable","worldPosition","partId","getPinById","id","constrainRelativePoint","pt","range","constrainedX","Math","max","start","min","end","x","constrainedY","y","Point","create","translatePointToScreen","canvasDimensions","add","scale","width","height","Dimensions","center","translatePointToRelative","includeOffset","xOffset","yOffset","verticalScaleFactor","horizontalScaleFactor","canvasCenterPoint","point","subtract","offset","centerIsToTheRightInXDirection","xOffsetCalculated","centerIsBelowInYDirection","yOffsetCalculated","offsetPoint","Range","getComputedStyle","el","window","viewerPinLabelCss","VertexPinLabel","__stencil_proxyCustomElement","HTMLElement","registerHost","value","focused","textareaRows","computeContentSize","readDOM","contentEl","contentElBounds","getBoundingClientRect","computedStyles","ceil","Number","parseFloat","getPropertyValue","handleInputKeyDown","event","stopPropagation","key","ctrlKey","metaKey","shiftKey","preventDefault","submit","handlePointerDown","elementBounds","buttons","relativePointerDownPosition","getMouseClientPosition","pinPointerDownPosition","_a","label","addEventListener","handlePointerMove","handlePointerUp","relative","relativeDelta","myUpdatedPin","pinController","computeScreenPosition","pointerDownScreen","distanceBetweenStartAndEndPoint","distance","labelFocused","emit","_b","removeEventListener","handleTextBlur","handleTextInput","input","target","setFocus","inputEl","focus","_c","labelBlurred","text","watchFocusChange","labelChanged","watchPinChange","watchElementBoundsChange","componentWillLoad","PinModel","componentDidLoad","resizeObserver","ResizeObserver","contentResizeObserver","hostEl","observe","disconnectedCallback","disconnect","componentDidRender","render","getPinColors","h","Host","class","classNames","onPointerDown","style","top","computedScreenPosition","toString","left","minWidth","computeMinWidth","maxWidth","computeMaxWidth","maxHeight","computeMaxHeight","borderColor","background","disabled","ref","rows","onKeyDown","onInput","onBlur","hiddenContent","includes","split","reduce","res","str","expected","computeRemainingWidth","computeRemainingHeight","isTextPin"],"sources":["src/lib/pins/controller.ts","src/components/viewer-pin-tool/utils.ts","src/components/viewer-pin-label/utils.ts","src/components/viewer-pin-label/viewer-pin-label.css?tag=vertex-viewer-pin-label","src/components/viewer-pin-label/viewer-pin-label.tsx"],"sourcesContent":["import { Point, Vector3 } from '@vertexvis/geometry';\nimport { Color } from '@vertexvis/utils';\n\nimport {\n Pin,\n PinModel,\n PinStyleAttributes,\n ViewerPinToolMode,\n ViewerPinToolType,\n} from './model';\n\nexport interface Draggable {\n id: string;\n lastPoint?: Point.Point;\n}\n\n/**\n * The `PinController` is responsible for adding pin entities to the viewer canvas\n */\nexport class PinController {\n private draggable?: Draggable;\n\n public constructor(\n private model: PinModel,\n private mode: ViewerPinToolMode = 'view',\n private type: ViewerPinToolType = 'pin-icon',\n private styleAttributes: PinStyleAttributes | undefined = undefined,\n ) {}\n\n /**\n * Registers an entity to place on the canvas and places the pin on the associated part.\n *\n * @param pin The pin entity\n * @returns A void promise\n */\n public addPin(pin: Pin): void {\n this.model.addPin(pin);\n }\n\n /**\n * Clears all entities and returns a promise that resolves with an empty list\n * of pin results.\n */\n public clearPins(): void {\n this.model.clearPins();\n }\n\n /**\n * Deregisters an entity and performs a pin if this entity was\n * removed.\n *\n * @param entity The entity to remove.\n * @returns A promise that resolves with the results after removing this\n * entity.\n */\n public removePin(pin: Pin): void {\n this.model.removePin(pin);\n }\n\n /**\n * Registers a set of entities and adds a pin\n *\n * @param entities The pin entities to draw.\n * @returns A promise that resolves with the results after registering these\n * entities.\n */\n public setPins(pins: Set<Pin>): void {\n this.model.setPins(pins);\n }\n\n /**\n * Sets the set of entities to be placed with the model.\n *\n * @param pin A pin to set\n * @returns `true` if the entity has been added.\n */\n public setPin(pin: Pin): void {\n this.model.setPin(pin);\n }\n\n /**\n * Updates an existing pin\n * @param pin A pin to set\n * @returns `true` if the entity has been updated, false otherwise\n */\n public updatePin(pin: Pin): void {\n this.model.updatePin(pin);\n }\n\n /**\n * Tells the controller which pin is selected in the model\n * @param pinId\n */\n public setSelectedPinId(pinId?: string): void {\n this.model.setSelectedPin(pinId);\n }\n\n public getToolMode(): ViewerPinToolMode {\n return this.mode;\n }\n\n public getToolType(): ViewerPinToolType {\n return this.type;\n }\n\n public setToolMode(mode: ViewerPinToolMode): void {\n this.mode = mode;\n }\n\n public setToolType(type: ViewerPinToolType): void {\n this.type = type;\n }\n\n public getDraggable(): Draggable | undefined {\n return this.draggable;\n }\n\n public setDraggable(draggable: Draggable | undefined): void {\n this.draggable = draggable;\n }\n\n public setPrimaryColor(color?: Color.Color | string): void {\n this.styleAttributes = {\n ...this.styleAttributes,\n primaryColor: color,\n };\n }\n\n public setAccentColor(color?: Color.Color | string): void {\n this.styleAttributes = {\n ...this.styleAttributes,\n accentColor: color,\n };\n }\n\n public getStyleAttributes(): PinStyleAttributes | undefined {\n return this.styleAttributes;\n }\n\n public updateDraggable(\n draggable: Draggable,\n worldPosition: Vector3.Vector3,\n partId?: string,\n ): void {\n if (this.draggable != null) {\n this.draggable = draggable;\n }\n const pin = this.model.getPinById(draggable.id);\n if (pin != null) {\n this.updatePin({\n ...pin,\n worldPosition,\n partId,\n });\n }\n }\n}\n","import { Dimensions, Point } from '@vertexvis/geometry';\nimport { Range } from '@vertexvis/utils';\n\nexport function constrainRelativePoint(\n pt: Point.Point,\n range: Range.Range,\n): Point.Point {\n const constrainedX = Math.max(range.start, Math.min(range.end, pt.x));\n const constrainedY = Math.max(range.start, Math.min(range.end, pt.y));\n\n return Point.create(constrainedX, constrainedY);\n}\n\n/**\n * Translates a point in relative units to a point in screen units.\n */\nexport function translatePointToScreen(\n pt: Point.Point,\n canvasDimensions: Dimensions.Dimensions,\n): Point.Point {\n return Point.add(\n Point.scale(pt, canvasDimensions.width, canvasDimensions.height),\n Dimensions.center(canvasDimensions),\n );\n}\n\n/**\n * Translates a point in screen units to a point in relative units.\n */\nexport function translatePointToRelative(\n pt: Point.Point,\n canvasDimensions: Dimensions.Dimensions,\n includeOffset?: boolean,\n xOffset?: number,\n yOffset?: number,\n): Point.Point {\n const verticalScaleFactor = 1 / canvasDimensions.height;\n const horizontalScaleFactor = 1 / canvasDimensions.width;\n const canvasCenterPoint = Dimensions.center(canvasDimensions);\n\n const point = Point.scale(\n Point.subtract(pt, canvasCenterPoint),\n horizontalScaleFactor,\n verticalScaleFactor,\n );\n\n if (includeOffset) {\n const offset = Point.scale(\n Point.create(xOffset, yOffset),\n horizontalScaleFactor,\n verticalScaleFactor,\n );\n\n // We want to place the label towards the center of the screen.\n // The given point corresponds to the upper left corner of the label, so increase the offset\n // when placing it to the left or above to ensure that part of the label line is visible\n const centerIsToTheRightInXDirection = canvasCenterPoint.x > pt.x;\n const xOffsetCalculated = centerIsToTheRightInXDirection\n ? offset.x\n : -3 * offset.x;\n\n const centerIsBelowInYDirection = canvasCenterPoint.y > pt.y;\n const yOffsetCalculated = centerIsBelowInYDirection\n ? offset.y\n : -3 * offset.y;\n\n const offsetPoint = Point.add(\n point,\n Point.create(xOffsetCalculated, yOffsetCalculated),\n );\n\n return constrainRelativePoint(offsetPoint, Range.create(-0.5, 0.5));\n } else {\n return constrainRelativePoint(point, Range.create(-0.5, 0.5));\n }\n}\n","export function getComputedStyle(el: HTMLElement): CSSStyleDeclaration {\n return window.getComputedStyle(el);\n}\n",":host {\n /**\n * @prop --viewer-annotations-pin-label-background-color: A CSS color that\n * specifies the color of the label background\n */\n --viewer-annotations-pin-label-background-color: var(\n --viewer-annotations-pin-accent-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-border-color: A CSS color that\n * specifies the color of the label's border\n */\n --viewer-annotations-pin-label-border-color: var(\n --viewer-annotations-pin-primary-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-focused-border-color: A CSS color that\n * specifies the color of the label's border when focused. \n */\n --viewer-annotations-pin-label-focused-border-color: var(\n --viewer-annotations-pin-primary-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-color: A CSS color that\n * specifies the color of the label \n */\n --viewer-annotations-pin-label-color: var(--white);\n\n /**\n * @prop --viewer-annotations-pin-label-padding-y: A var that\n * specifies the vertical padding of the label\n */\n --viewer-annotations-pin-label-padding-y: 0.375em;\n\n /**\n * @prop --viewer-annotations-pin-label-padding-x: A var that\n * specifies the horizontal padding of the label\n */\n --viewer-annotations-pin-label-padding-x: 0.5em;\n\n /**\n * @prop --viewer-annotations-pin-label-border-width: A CSS length that\n * specifies the width of the border on this label. Defaults to `2px`.\n */\n --viewer-annotations-pin-label-border-width: 2px;\n\n /**\n * @prop --viewer-annotations-pin-label-border-style: A CSS variable that\n * specifies the style of border on this label. Defaults to `solid`.\n */\n --viewer-annotations-pin-label-border-style: solid;\n\n /**\n * @prop --viewer-annotations-pin-label-border-radius: A var that\n * specifies the border radius of the label\n */\n --viewer-annotations-pin-label-border-radius: 0.25em;\n\n /**\n * @prop --viewer-annotations-pin-label-min-width: A CSS length that\n * specifies the minimum width of the label. Defaults to `2rem`.\n */\n --viewer-annotations-pin-label-min-width: 2rem;\n\n /**\n * @prop --viewer-annotations-pin-label-max-width: A CSS length that\n * specifies the maximum width of the label. Defaults to `25rem`.\n */\n --viewer-annotations-pin-label-max-width: 25rem;\n\n /**\n * @prop --viewer-annotations-pin-label-max-height: A CSS length that\n * specifies the maximum height of the label. Defaults to `50rem`.\n */\n --viewer-annotations-pin-label-max-height: 50rem;\n\n overflow: hidden;\n pointer-events: none;\n}\n\n:host([mode='']) .pin-label {\n color: var(--viewer-annotations-pin-label-color);\n background: var(--viewer-annotations-pin-label-background-color);\n}\n\n.pin-label-text {\n font-family: Arial, Helvetica, sans-serif;\n font-size: 0.875rem;\n line-height: 1rem;\n word-break: break-word;\n white-space: pre-wrap;\n}\n\n.pin-label-input-wrapper {\n display: flex;\n position: absolute;\n pointer-events: auto;\n box-sizing: border-box;\n min-width: var(--viewer-annotations-pin-label-min-width);\n max-width: var(--viewer-annotations-pin-label-max-width);\n max-height: var(--viewer-annotations-pin-label-max-height);\n background: var(--viewer-annotations-pin-label-background-color);\n border-width: var(--viewer-annotations-pin-label-border-width);\n border-style: var(--viewer-annotations-pin-label-border-style);\n border-color: var(--viewer-annotations-pin-label-border-color);\n border-radius: var(--viewer-annotations-pin-label-border-radius);\n}\n\n.pin-label-input-wrapper.focused {\n min-width: var(--viewer-annotations-pin-label-max-width);\n border-color: var(--viewer-annotations-pin-label-focused-border-color);\n}\n\n.pin-input-drag-target {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n}\n\n.pin-label-input {\n resize: none;\n position: relative;\n outline: none;\n border: none;\n word-break: break-word;\n padding: 0 0 0 0;\n background-color: transparent;\n margin: var(--viewer-annotations-pin-label-padding-y)\n var(--viewer-annotations-pin-label-padding-x);\n width: var(--viewer-annotations-pin-label-min-width);\n flex-grow: 1;\n overflow: hidden;\n max-width: calc(\n var(--viewer-annotations-pin-label-max-width) -\n calc(2 * var(--viewer-annotations-pin-label-padding-x))\n );\n}\n\n.pin-label-input.readonly {\n pointer-events: auto;\n color: black;\n cursor: pointer;\n}\n\n.pin-label-hidden {\n position: absolute;\n visibility: hidden;\n pointer-events: none;\n width: auto;\n height: auto;\n box-sizing: border-box;\n border-width: var(--viewer-annotations-pin-label-border-width);\n border-style: var(--viewer-annotations-pin-label-border-style);\n border-color: var(--viewer-annotations-pin-label-border-color);\n margin: var(--viewer-annotations-pin-label-padding-y) 0;\n padding: 0 var(--viewer-annotations-pin-label-padding-x);\n max-width: calc(\n var(--viewer-annotations-pin-label-max-width) -\n calc(2 * var(--viewer-annotations-pin-label-padding-x))\n );\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h,\n Host,\n JSX,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Point } from '@vertexvis/geometry';\nimport classNames from 'classnames';\n\nimport { getMouseClientPosition } from '../../lib/dom';\nimport { PinController } from '../../lib/pins/controller';\nimport {\n getPinColors,\n isTextPin,\n PinModel,\n TextPin,\n} from '../../lib/pins/model';\nimport { readDOM } from '../../lib/stencil';\nimport {\n translatePointToRelative,\n translatePointToScreen,\n} from '../viewer-pin-tool/utils';\nimport { getComputedStyle } from './utils';\n\n@Component({\n tag: 'vertex-viewer-pin-label',\n styleUrl: 'viewer-pin-label.css',\n shadow: false,\n})\nexport class VertexPinLabel {\n /**\n * The pin to draw for the group\n */\n @Prop()\n public pin?: TextPin;\n\n /**\n * The dimensions of the canvas for the pins\n */\n @Prop()\n public elementBounds?: DOMRect;\n\n /**\n * The current text value of the component. Value is updated on user\n * interaction.\n */\n @Prop({ mutable: true })\n public value = '';\n\n /**\n * The controller that drives behavior for pin operations\n */\n @Prop({ mutable: true })\n public pinController?: PinController;\n\n /**\n * @internal\n */\n @Event({ bubbles: true })\n public labelChanged!: EventEmitter<void>;\n\n /**\n * Emitted whenever the label is focused, with the ID of the\n * associated pin (or undefined if no pin is provided).\n */\n @Event({ bubbles: true })\n public labelFocused!: EventEmitter<string | undefined>;\n\n /**\n * Emitted whenever the label is blurred, with the ID of the\n * associated pin (or undefined if no pin is provided).\n */\n @Event({ bubbles: true })\n public labelBlurred!: EventEmitter<string | undefined>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n @State()\n private focused = false;\n\n @State()\n private computedScreenPosition?: Point.Point;\n\n @State()\n private textareaRows = 1;\n\n @State()\n private contentElBounds?: DOMRect;\n\n private relativePointerDownPosition?: Point.Point;\n private pinPointerDownPosition?: Point.Point;\n\n private inputEl?: HTMLTextAreaElement;\n private contentEl?: HTMLDivElement;\n\n private resizeObserver?: ResizeObserver;\n private contentResizeObserver?: ResizeObserver;\n\n /**\n * Gives focus to the component's internal text input.\n */\n @Method()\n public async setFocus(): Promise<void> {\n // HTMLInputElement.focus() doesn't exist in tests.\n if (typeof this.inputEl?.focus === 'function') {\n this.focused = true;\n this.labelFocused.emit(this.pin?.id);\n this.inputEl?.focus();\n }\n }\n\n /**\n * @internal\n * submits the current text, unfocuses the input and emits the blur event to consumers\n */\n @Method()\n public async submit(): Promise<void> {\n this.focused = false;\n this.labelBlurred.emit(this.pin?.id);\n if (this.pin != null) {\n this.pinController?.updatePin({\n ...this.pin,\n label: {\n point: this.pin.label.point,\n text: this.value,\n },\n });\n }\n }\n\n @Watch('focused')\n protected watchFocusChange(): void {\n this.labelChanged.emit();\n\n if (this.focused) {\n this.pinController?.setSelectedPinId(this.pin?.id);\n }\n }\n\n @Watch('pin')\n protected watchPinChange(): void {\n this.value = this.pin?.label.text ?? '';\n this.computeScreenPosition();\n }\n\n @Watch('elementBounds')\n protected watchElementBoundsChange(): void {\n this.computeScreenPosition();\n }\n\n protected componentWillLoad(): void {\n this.value = this.pin?.label.text ?? '';\n this.computeScreenPosition();\n\n if (this.pinController == null) {\n this.pinController = new PinController(new PinModel());\n }\n }\n\n protected componentDidLoad(): void {\n this.resizeObserver = new ResizeObserver(() => {\n this.labelChanged.emit();\n });\n\n this.contentResizeObserver = new ResizeObserver(this.computeContentSize);\n\n if (this.hostEl != null) {\n this.resizeObserver.observe(this.hostEl);\n }\n\n if (this.contentEl != null) {\n this.contentResizeObserver.observe(this.contentEl);\n }\n }\n\n protected disconnectedCallback(): void {\n this.resizeObserver?.disconnect();\n this.contentResizeObserver?.disconnect();\n }\n\n protected componentDidRender(): void {\n if (this.focused && this.inputEl != null) {\n this.setFocus();\n }\n }\n\n protected render(): JSX.Element {\n const { primaryColor, accentColor } = getPinColors(this.pin);\n return (\n <Host>\n <div\n class={classNames('pin-label-input-wrapper', {\n focused: this.focused,\n })}\n onPointerDown={this.handlePointerDown}\n style={{\n top: `${this.computedScreenPosition?.y.toString() || 0}px`,\n left: `${this.computedScreenPosition?.x.toString() || 0}px`,\n minWidth: this.computeMinWidth(),\n maxWidth: this.computeMaxWidth(),\n maxHeight: this.computeMaxHeight(),\n borderColor: primaryColor,\n background: accentColor,\n }}\n >\n <textarea\n id={`pin-label-input-${this.pin?.id}`}\n class={classNames('pin-label-input', 'pin-label-text', {\n ['readonly']: !this.focused,\n })}\n disabled={!this.focused}\n ref={(ref) => (this.inputEl = ref)}\n value={this.value}\n rows={this.textareaRows}\n onKeyDown={this.handleInputKeyDown}\n onInput={this.handleTextInput}\n onBlur={this.handleTextBlur}\n />\n {/* This corrects for a behavior in Firefox where setting the `disabled` attribute to true */}\n {/* prevents any events from propagating. */}\n {!this.focused && (\n <div\n class=\"pin-input-drag-target\"\n onPointerDown={this.handlePointerDown}\n />\n )}\n </div>\n <div\n ref={(el) => (this.contentEl = el)}\n class={classNames('pin-label-text', 'pin-label-hidden')}\n style={{\n maxWidth: this.computeMaxWidth(),\n maxHeight: this.computeMaxHeight(),\n }}\n >\n {this.hiddenContent()}\n </div>\n </Host>\n );\n }\n\n private hiddenContent(): Array<string | HTMLBRElement> {\n // This corrects some inconsistencies in how a newline character\n // is represented in a div. Leveraging `<br>`s results in a more\n // consistent representation of the newlines in a textarea.\n return this.value.includes('\\n')\n ? this.value\n .split('\\n')\n .reduce(\n (res, str) => [...res, str, <br />],\n [] as Array<string | HTMLBRElement>,\n )\n : [this.value];\n }\n\n private computeMinWidth(): string {\n if (this.contentElBounds != null) {\n const expected = `${this.contentElBounds.width + 8}px`;\n\n return `min(${expected}, ${this.computeMaxWidth()})`;\n } else {\n return `var(--viewer-annotations-pin-label-min-width)`;\n }\n }\n\n private computeMaxWidth(): string {\n const expected = `var(--viewer-annotations-pin-label-max-width)`;\n\n return `min(${expected}, ${this.computeRemainingWidth()})`;\n }\n\n private computeMaxHeight(): string {\n const expected = `var(--viewer-annotations-pin-label-max-height)`;\n\n return `min(${expected}, ${this.computeRemainingHeight()})`;\n }\n\n private computeRemainingWidth(): string {\n return `calc(${this.elementBounds?.width.toString() || 0}px - ${\n this.computedScreenPosition?.x.toString() || 0\n }px)`;\n }\n\n private computeRemainingHeight(): string {\n return `calc(${this.elementBounds?.height.toString() || 0}px - ${\n this.computedScreenPosition?.y.toString() || 0\n }px)`;\n }\n\n private computeScreenPosition(): void {\n this.computedScreenPosition =\n isTextPin(this.pin) &&\n this.elementBounds != null &&\n this.pin.label.point != null\n ? translatePointToScreen(this.pin.label.point, this.elementBounds)\n : undefined;\n }\n\n private computeContentSize = (): void => {\n readDOM(() => {\n if (this.contentEl != null) {\n this.contentElBounds = this.contentEl.getBoundingClientRect();\n const computedStyles = getComputedStyle(this.contentEl);\n this.textareaRows = Math.max(\n 1,\n Math.ceil(\n (Number.parseFloat(computedStyles.getPropertyValue('height')) -\n Number.parseFloat(\n computedStyles.getPropertyValue('borderWidth'),\n ) *\n 2) /\n Number.parseFloat(computedStyles.getPropertyValue('lineHeight')),\n ),\n );\n }\n });\n };\n\n private handleInputKeyDown = (event: KeyboardEvent): void => {\n event.stopPropagation();\n if (\n event.key === 'Enter' &&\n (event.ctrlKey || event.metaKey || event.shiftKey)\n ) {\n this.textareaRows += 1;\n this.value += '\\n';\n } else if (event.key === 'Enter') {\n event.preventDefault();\n this.submit();\n }\n };\n\n private handlePointerDown = (event: PointerEvent): void => {\n if (!this.focused) {\n if (this.elementBounds != null) {\n if (event.buttons !== 2) {\n event.preventDefault();\n event.stopPropagation();\n }\n this.relativePointerDownPosition = translatePointToRelative(\n getMouseClientPosition(event, this.elementBounds),\n this.elementBounds,\n );\n this.pinPointerDownPosition = this.pin?.label.point;\n\n window.addEventListener('pointermove', this.handlePointerMove);\n window.addEventListener('pointerup', this.handlePointerUp);\n }\n }\n };\n\n private handlePointerMove = (event: PointerEvent): void => {\n if (\n this.elementBounds != null &&\n this.relativePointerDownPosition &&\n this.pinPointerDownPosition != null\n ) {\n // Prevent selection of any text while interacting with the label\n event.preventDefault();\n event.stopPropagation();\n\n const point = getMouseClientPosition(event, this.elementBounds);\n const relative = translatePointToRelative(point, this.elementBounds);\n\n const relativeDelta = Point.subtract(\n relative,\n this.relativePointerDownPosition,\n );\n\n const myUpdatedPin =\n this.pin != null\n ? {\n ...this.pin,\n label: {\n ...this.pin.label,\n point: Point.add(this.pinPointerDownPosition, relativeDelta),\n },\n }\n : undefined;\n\n if (myUpdatedPin) {\n this.pinController?.updatePin(myUpdatedPin);\n this.computeScreenPosition();\n }\n }\n };\n\n private handlePointerUp = (event: PointerEvent): void => {\n if (\n this.pinController?.getToolMode() === 'edit' &&\n this.relativePointerDownPosition != null &&\n this.elementBounds != null\n ) {\n const pointerDownScreen = translatePointToScreen(\n this.relativePointerDownPosition,\n this.elementBounds,\n );\n const distanceBetweenStartAndEndPoint = Point.distance(\n pointerDownScreen,\n getMouseClientPosition(event, this.elementBounds),\n );\n\n if (distanceBetweenStartAndEndPoint <= 2) {\n this.focused = true;\n this.labelFocused.emit(this.pin?.id);\n }\n }\n\n this.relativePointerDownPosition = undefined;\n this.pinPointerDownPosition = undefined;\n\n window.removeEventListener('pointermove', this.handlePointerMove);\n window.removeEventListener('pointerup', this.handlePointerUp);\n };\n\n private handleTextBlur = (): void => {\n this.submit();\n };\n\n private handleTextInput = (event: Event): void => {\n const input = event.target as HTMLInputElement;\n this.value = input.value;\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{t as e,p as t,H as r,h as s,e as a}from"./p-Bb32XUUS.js";const n=()=>`:host{cursor:pointer}.viewer-button{align-items:center;background:none;border:none;color:inherit;cursor:inherit;display:flex;padding:0}`;const o=t(class e extends r{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.ariaLabel=null}render(){return s(a,{key:"48d5d5322a3a9a0ea1057612fe2a8f1c9bef5171"},s("button",{key:"d0e8582256ea5b9a10e33819991e2d6e76271c43",class:"viewer-button","aria-label":this.ariaLabel},s("slot",{key:"cc647426fc0a227fc0aa0e1f49ff65cdedd73f1d"})))}static get style(){return n()}},[257,"vertex-viewer-button",{ariaLabel:[1,"aria-label"]}]);function i(){if(typeof customElements==="undefined"){return}const t=["vertex-viewer-button"];t.forEach((t=>{switch(t){case"vertex-viewer-button":if(!customElements.get(e(t))){customElements.define(e(t),o)}break}}))}i();export{o as V,i as d};
|
|
5
|
+
//# sourceMappingURL=p-DUo-H-nW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["viewerButtonCss","ViewerButton","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","ariaLabel","render","h","Host","key","class"],"sources":["src/components/viewer-button/viewer-button.css?tag=vertex-viewer-button&encapsulation=shadow","src/components/viewer-button/viewer-button.tsx"],"sourcesContent":[":host {\n cursor: pointer;\n}\n\n.viewer-button {\n align-items: center;\n background: none;\n border: none;\n color: inherit;\n cursor: inherit;\n display: flex;\n padding: 0;\n}\n","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"],"mappings":";;;gEAAA,MAAMA,EAAkB,IAAM,0I,MCOjBC,EAAYC,EAAA,MAAAD,UAAAE,EALzB,WAAAC,CAAAC,G,kEAWSC,KAAAC,UAA2B,IAWnC,CATQ,MAAAC,GACL,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,UAAAE,IAAA,2CAAQC,MAAM,gBAAe,aAAaN,KAAKC,WAC7CE,EAAA,QAAAE,IAAA,8C","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{h as e,t as r,p as t,H as n,d as i,e as o}from"./p-Bb32XUUS.js";import{g as s,a}from"./p-BqeEZXPn.js";import{w as h}from"./p-Cd7kap5W.js";import{g as d}from"./p-Bg-uS9BH.js";import{M as l,t as c,c as u,R as w,d as p,p as v,e as g,f,g as b,h as m,j as k,k as C,S as x}from"./p-taOlygmc.js";import{p as S,a as y}from"./p-CZZALKHT.js";import{c as A}from"./p-C6gMOKYg.js";class B extends l{constructor(e,r,t,n){super(n);this.markupEl=e;this.interactionBegin=r;this.interactionEnd=t;this.anchor="end"}editAnchor(e,r){if(this.markupEl.mode==="edit"){this.anchor=e;this.startInteraction(r)}}startInteraction(e){this.handleInteractionAttempt(e)}computeBoundingRect(){return d(this.markupEl)}handleInteractionAttempt(e){var r;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){this.pointerId=e.pointerId;this.markupEl.start=(r=this.markupEl.start)!==null&&r!==void 0?r:c(s(e,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(e){if(this.elementBounds!=null&&this.pointerId===e.pointerId){const r=c(s(e,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);if(this.anchor==="start"){this.markupEl.start=r}else if(this.anchor==="end"){this.markupEl.end=r}else if(this.markupEl.start!=null&&this.markupEl.end!=null){const e=S.create((this.markupEl.start.x+this.markupEl.end.x)/2,(this.markupEl.start.y+this.markupEl.end.y)/2);const t=e.x-r.x;const n=e.y-r.y;this.markupEl.start=S.create(this.markupEl.start.x-t,this.markupEl.start.y-n);this.markupEl.end=S.create(this.markupEl.end.x-t,this.markupEl.end.y-n)}}}handleInteractionEnd(e){if(this.pointerId===e.pointerId){const e=this.markupEl.start!=null&&this.elementBounds!=null?u(this.markupEl.start,this.elementBounds):undefined;const r=this.markupEl.end!=null&&this.elementBounds!=null?u(this.markupEl.end,this.elementBounds):undefined;if(this.markupEl.mode!==""&&e!=null&&r!=null&&S.distance(e,r)>=2){const e=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:e})}else{this.markupEl.start=undefined;this.markupEl.end=undefined}this.pointerId=undefined}}}const E=({start:r,end:t,offset:n,onStartAnchorPointerDown:i,onCenterAnchorPointerDown:o,onEndAnchorPointerDown:s})=>{const a=y.normalize(y.toDegrees(y.fromPoints(r,t))-270);const h=S.create((r.x+t.x)/2,(r.y+t.y)/2);const d=n!=null?`translate(${n.x}px, ${n.y}px)`:undefined;return e("div",{class:"bounds-container"},e(w,{transform:d,id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:a,point:r,onPointerDown:i},e("div",{class:A("bounds-default-anchor","bounds-cap-anchor")})),e(w,{transform:d,id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:a,point:t,onPointerDown:s},e("div",{class:A("bounds-default-anchor","bounds-cap-anchor")})),e(w,{transform:d,id:"bounding-box-1d-center-anchor",name:"center-anchor",point:h,onPointerDown:o},e("div",{class:A("bounds-default-anchor","bounds-center-anchor")})))};const P=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-arrow-line-stroke-color:var(--red-800);--viewer-markup-arrow-line-stroke-width:4px;--viewer-markup-arrow-head-stroke-color:var(--red-800);--viewer-markup-arrow-head-stroke-width:4px;--viewer-markup-arrow-head-fill-color:var(--red-800);--viewer-markup-arrow-head-fill-opacity:1;--viewer-markup-arrow-bounds-cap-border-color:var(--blue-400);--viewer-markup-arrow-bounds-cap-border-width:1px;--viewer-markup-arrow-bounds-cap-background-color:white;--viewer-markup-arrow-bounds-center-anchor-border-color:white;--viewer-markup-arrow-bounds-center-anchor-border-width:1px;--viewer-markup-arrow-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-arrow-bounds-outline-width:1px;--viewer-markup-arrow-bounds-outline-color:var(--blue-400);--viewer-markup-arrow-bounds-anchor-width:9px;--viewer-markup-arrow-bounds-anchor-height:9px;--viewer-markup-arrow-scale:1}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.line{pointer-events:auto;stroke:var(--viewer-markup-arrow-line-stroke-color);stroke-width:calc( var(--viewer-markup-arrow-line-stroke-width) * var(--viewer-markup-arrow-scale) );cursor:default}.head{pointer-events:auto;stroke:var(--viewer-markup-arrow-head-stroke-color);stroke-width:calc( var(--viewer-markup-arrow-head-stroke-width) * var(--viewer-markup-arrow-scale) );fill:var(--viewer-markup-arrow-head-fill-color);fill-opacity:var(--viewer-markup-arrow-head-fill-opacity);cursor:default}.bounds-line{pointer-events:auto;stroke:var(--viewer-markup-arrow-bounds-outline-color);stroke-width:var(--viewer-markup-arrow-bounds-outline-width)}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-arrow-bounds-anchor-width);height:var(--viewer-markup-arrow-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-arrow-bounds-center-anchor-border-width);border-color:var(--viewer-markup-arrow-bounds-center-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-arrow-bounds-center-anchor-background-color )}.bounds-cap-anchor{border-width:var(--viewer-markup-arrow-bounds-cap-border-width);border-color:var(--viewer-markup-arrow-bounds-cap-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-cap-background-color)}`;const D=t(class r extends n{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.interactionBegin=i(this,"interactionBegin");this.interactionEnd=i(this,"interactionEnd");this.centeringBehavior="none";this.scale=1;this.startLineAnchorStyle="none";this.endLineAnchorStyle="arrow-triangle";this.mode="";this.interactionHandler=new B(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=e=>{if(p(e)){this.interactionHandler.startInteraction(e)}};this.handleTouchStart=e=>{e.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps();const e=new ResizeObserver((()=>this.updateViewport()));e.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var e;(e=this.registeredInteraction)===null||e===void 0?void 0:e.dispose();this.registeredInteraction=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(e){var r;(r=this.registeredInteraction)===null||r===void 0?void 0:r.dispose();this.registeredInteraction=undefined;if(e!=null){this.registeredInteraction=await e.registerBasicInteractionHandler(this.interactionHandler)}}handleStartJsonChange(){this.updatePointsFromProps()}handleEndJsonChange(){this.updatePointsFromProps()}handleModeChange(){if(this.mode!=="create"){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}}handleScalingConfigurationChange(){this.interactionHandler.updateScalingOptions({scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior})}handleScaleChange(){h((()=>{var e,r;this.hostEl.style.setProperty("--viewer-markup-arrow-scale",(r=(e=this.scale)===null||e===void 0?void 0:e.toString())!==null&&r!==void 0?r:"1")}))}updateViewport(){const e=d(this.hostEl);this.elementBounds=e}updatePointsFromProps(){this.start=this.start||v(this.startJson);this.end=this.end||v(this.endJson)}renderLineAnchorStyle(r,t){if(r==="arrow-triangle"){return e("polygon",{id:"line-anchor-arrow-triangle",class:"head",points:g(t,this.scale)})}else if(r==="arrow-line"){return e("path",{id:"line-anchor-arrow-line",class:"head",d:f(t,this.scale)})}else if(r==="hash"){const r=b(t,this.scale);return e("line",{id:"line-anchor-hash",class:"head",...r})}else if(r==="dot"){const r=m(t,this.scale);return e("circle",{id:"line-anchor-circle",class:"head",...r})}else{return e("div",null)}}render(){var r,t,n,i;if(this.start!=null&&this.end!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const s=this.elementBounds;const h=((t=(r=this.offset)===null||r===void 0?void 0:r.x)!==null&&t!==void 0?t:0)/a();const d=((i=(n=this.offset)===null||n===void 0?void 0:n.y)!==null&&i!==void 0?i:0)/a();const l=u(this.start,s,this.originatingViewport,this.centeringBehavior,this.scale);const c=u(this.end,s,this.originatingViewport,this.centeringBehavior,this.scale);if(k(l,c)){const r=C(c,l);const t=C(l,c);return e(o,null,e("svg",{class:"svg",onTouchStart:this.handleTouchStart},e("defs",null,e(x,{id:"arrow-shadow",scale:this.scale})),e("g",{transform:`translate(${h} ${d})`,filter:"url(#arrow-shadow)"},this.renderLineAnchorStyle(this.startLineAnchorStyle,r),e("line",{id:"arrow-line",class:"line",x1:t.tip.x,y1:t.tip.y,x2:r.tip.x,y2:r.tip.y}),this.renderLineAnchorStyle(this.endLineAnchorStyle,t)),this.mode==="edit"&&e("g",{transform:`translate(${h} ${d})`},e("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:l.x,y1:l.y,x2:c.x,y2:c.y}))),this.mode==="edit"&&e(E,{start:l,end:c,offset:{x:h,y:d},onStartAnchorPointerDown:e=>this.interactionHandler.editAnchor("start",e),onCenterAnchorPointerDown:e=>this.interactionHandler.editAnchor("center",e),onEndAnchorPointerDown:e=>this.interactionHandler.editAnchor("end",e)}),this.mode==="create"&&e("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return e(o,null)}}else{return e(o,null,e("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],start:[{handleStartJsonChange:0}],end:[{handleEndJsonChange:0}],mode:[{handleModeChange:0}],offset:[{handleScalingConfigurationChange:0}],originatingViewport:[{handleScalingConfigurationChange:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],scale:[{handleScalingConfigurationChange:0},{handleScaleChange:0}]}}static get style(){return P()}},[1,"vertex-viewer-markup-arrow",{start:[1040],startJson:[1,"start"],end:[1040],endJson:[1,"end"],originatingViewport:[16],centeringBehavior:[1,"centering-behavior"],offset:[16],scale:[2],startLineAnchorStyle:[1025,"start-line-anchor-style"],endLineAnchorStyle:[1025,"end-line-anchor-style"],mode:[513],viewer:[16],elementBounds:[32],dispose:[64]},undefined,{viewer:[{handleViewerChanged:0}],start:[{handleStartJsonChange:0}],end:[{handleEndJsonChange:0}],mode:[{handleModeChange:0}],offset:[{handleScalingConfigurationChange:0}],originatingViewport:[{handleScalingConfigurationChange:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],scale:[{handleScalingConfigurationChange:0},{handleScaleChange:0}]}]);function V(){if(typeof customElements==="undefined"){return}const e=["vertex-viewer-markup-arrow"];e.forEach((e=>{switch(e){case"vertex-viewer-markup-arrow":if(!customElements.get(r(e))){customElements.define(r(e),D)}break}}))}V();export{D as V,V as d};
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{h as e,t as r,p as t,H as n,d as i,e as o}from"./p-Bb32XUUS.js";import{g as s,a}from"./p-CPROw2BU.js";import{w as h}from"./p-Cd7kap5W.js";import{g as d}from"./p-Bg-uS9BH.js";import{M as l,t as c,c as u,R as w,d as p,p as v,e as g,f,g as b,h as m,j as k,k as C,S as x}from"./p-Cs2aiMUK.js";import{p as S,a as y}from"./p-2UsvOTHJ.js";import{c as B}from"./p-C6gMOKYg.js";class P extends l{constructor(e,r,t,n){super(n);this.markupEl=e;this.interactionBegin=r;this.interactionEnd=t;this.anchor="end"}editAnchor(e,r){if(this.markupEl.mode==="edit"){this.anchor=e;this.startInteraction(r)}}startInteraction(e){this.handleInteractionAttempt(e)}computeBoundingRect(){return d(this.markupEl)}handleInteractionAttempt(e){var r;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){this.pointerId=e.pointerId;this.markupEl.start=(r=this.markupEl.start)!==null&&r!==void 0?r:c(s(e,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(e){if(this.elementBounds!=null&&this.pointerId===e.pointerId){const r=c(s(e,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);if(this.anchor==="start"){this.markupEl.start=r}else if(this.anchor==="end"){this.markupEl.end=r}else if(this.markupEl.start!=null&&this.markupEl.end!=null){const e=S.create((this.markupEl.start.x+this.markupEl.end.x)/2,(this.markupEl.start.y+this.markupEl.end.y)/2);const t=e.x-r.x;const n=e.y-r.y;this.markupEl.start=S.create(this.markupEl.start.x-t,this.markupEl.start.y-n);this.markupEl.end=S.create(this.markupEl.end.x-t,this.markupEl.end.y-n)}}}handleInteractionEnd(e){if(this.pointerId===e.pointerId){const e=this.markupEl.start!=null&&this.elementBounds!=null?u(this.markupEl.start,this.elementBounds):undefined;const r=this.markupEl.end!=null&&this.elementBounds!=null?u(this.markupEl.end,this.elementBounds):undefined;if(this.markupEl.mode!==""&&e!=null&&r!=null&&S.distance(e,r)>=2){const e=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:e})}else{this.markupEl.start=undefined;this.markupEl.end=undefined}this.pointerId=undefined}}}const A=({start:r,end:t,offset:n,onStartAnchorPointerDown:i,onCenterAnchorPointerDown:o,onEndAnchorPointerDown:s})=>{const a=y.normalize(y.toDegrees(y.fromPoints(r,t))-270);const h=S.create((r.x+t.x)/2,(r.y+t.y)/2);const d=n!=null?`translate(${n.x}px, ${n.y}px)`:undefined;return e("div",{class:"bounds-container"},e(w,{transform:d,id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:a,point:r,onPointerDown:i},e("div",{class:B("bounds-default-anchor","bounds-cap-anchor")})),e(w,{transform:d,id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:a,point:t,onPointerDown:s},e("div",{class:B("bounds-default-anchor","bounds-cap-anchor")})),e(w,{transform:d,id:"bounding-box-1d-center-anchor",name:"center-anchor",point:h,onPointerDown:o},e("div",{class:B("bounds-default-anchor","bounds-center-anchor")})))};const E=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-arrow-line-stroke-color:var(--red-800);--viewer-markup-arrow-line-stroke-width:4px;--viewer-markup-arrow-head-stroke-color:var(--red-800);--viewer-markup-arrow-head-stroke-width:4px;--viewer-markup-arrow-head-fill-color:var(--red-800);--viewer-markup-arrow-head-fill-opacity:1;--viewer-markup-arrow-bounds-cap-border-color:var(--blue-400);--viewer-markup-arrow-bounds-cap-border-width:1px;--viewer-markup-arrow-bounds-cap-background-color:white;--viewer-markup-arrow-bounds-center-anchor-border-color:white;--viewer-markup-arrow-bounds-center-anchor-border-width:1px;--viewer-markup-arrow-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-arrow-bounds-outline-width:1px;--viewer-markup-arrow-bounds-outline-color:var(--blue-400);--viewer-markup-arrow-bounds-anchor-width:9px;--viewer-markup-arrow-bounds-anchor-height:9px;--viewer-markup-arrow-scale:1}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.line{pointer-events:auto;stroke:var(--viewer-markup-arrow-line-stroke-color);stroke-width:calc( var(--viewer-markup-arrow-line-stroke-width) * var(--viewer-markup-arrow-scale) );cursor:default}.head{pointer-events:auto;stroke:var(--viewer-markup-arrow-head-stroke-color);stroke-width:calc( var(--viewer-markup-arrow-head-stroke-width) * var(--viewer-markup-arrow-scale) );fill:var(--viewer-markup-arrow-head-fill-color);fill-opacity:var(--viewer-markup-arrow-head-fill-opacity);cursor:default}.bounds-line{pointer-events:auto;stroke:var(--viewer-markup-arrow-bounds-outline-color);stroke-width:var(--viewer-markup-arrow-bounds-outline-width)}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-arrow-bounds-anchor-width);height:var(--viewer-markup-arrow-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-arrow-bounds-center-anchor-border-width);border-color:var(--viewer-markup-arrow-bounds-center-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-arrow-bounds-center-anchor-background-color )}.bounds-cap-anchor{border-width:var(--viewer-markup-arrow-bounds-cap-border-width);border-color:var(--viewer-markup-arrow-bounds-cap-border-color);border-style:solid;background-color:var(--viewer-markup-arrow-bounds-cap-background-color)}`;const D=t(class r extends n{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.interactionBegin=i(this,"interactionBegin");this.interactionEnd=i(this,"interactionEnd");this.centeringBehavior="none";this.scale=1;this.startLineAnchorStyle="none";this.endLineAnchorStyle="arrow-triangle";this.mode="";this.interactionHandler=new P(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=e=>{if(p(e)){this.interactionHandler.startInteraction(e)}};this.handleTouchStart=e=>{e.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps();const e=new ResizeObserver((()=>this.updateViewport()));e.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var e;(e=this.registeredInteraction)===null||e===void 0?void 0:e.dispose();this.registeredInteraction=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(e){var r;(r=this.registeredInteraction)===null||r===void 0?void 0:r.dispose();this.registeredInteraction=undefined;if(e!=null){this.registeredInteraction=await e.registerBasicInteractionHandler(this.interactionHandler)}}handleStartJsonChange(){this.updatePointsFromProps()}handleEndJsonChange(){this.updatePointsFromProps()}handleModeChange(){if(this.mode!=="create"){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}}handleScalingConfigurationChange(){this.interactionHandler.updateScalingOptions({scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior})}handleScaleChange(){h((()=>{var e,r;this.hostEl.style.setProperty("--viewer-markup-arrow-scale",(r=(e=this.scale)===null||e===void 0?void 0:e.toString())!==null&&r!==void 0?r:"1")}))}updateViewport(){const e=d(this.hostEl);this.elementBounds=e}updatePointsFromProps(){this.start=this.start||v(this.startJson);this.end=this.end||v(this.endJson)}renderLineAnchorStyle(r,t){if(r==="arrow-triangle"){return e("polygon",{id:"line-anchor-arrow-triangle",class:"head",points:g(t,this.scale)})}else if(r==="arrow-line"){return e("path",{id:"line-anchor-arrow-line",class:"head",d:f(t,this.scale)})}else if(r==="hash"){const r=b(t,this.scale);return e("line",{id:"line-anchor-hash",class:"head",...r})}else if(r==="dot"){const r=m(t,this.scale);return e("circle",{id:"line-anchor-circle",class:"head",...r})}else{return e("div",null)}}render(){var r,t,n,i;if(this.start!=null&&this.end!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const s=this.elementBounds;const h=((t=(r=this.offset)===null||r===void 0?void 0:r.x)!==null&&t!==void 0?t:0)/a();const d=((i=(n=this.offset)===null||n===void 0?void 0:n.y)!==null&&i!==void 0?i:0)/a();const l=u(this.start,s,this.originatingViewport,this.centeringBehavior,this.scale);const c=u(this.end,s,this.originatingViewport,this.centeringBehavior,this.scale);if(k(l,c)){const r=C(c,l);const t=C(l,c);return e(o,null,e("svg",{class:"svg",onTouchStart:this.handleTouchStart},e("defs",null,e(x,{id:"arrow-shadow",scale:this.scale})),e("g",{transform:`translate(${h} ${d})`,filter:"url(#arrow-shadow)"},this.renderLineAnchorStyle(this.startLineAnchorStyle,r),e("line",{id:"arrow-line",class:"line",x1:t.tip.x,y1:t.tip.y,x2:r.tip.x,y2:r.tip.y}),this.renderLineAnchorStyle(this.endLineAnchorStyle,t)),this.mode==="edit"&&e("g",{transform:`translate(${h} ${d})`},e("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:l.x,y1:l.y,x2:c.x,y2:c.y}))),this.mode==="edit"&&e(A,{start:l,end:c,offset:{x:h,y:d},onStartAnchorPointerDown:e=>this.interactionHandler.editAnchor("start",e),onCenterAnchorPointerDown:e=>this.interactionHandler.editAnchor("center",e),onEndAnchorPointerDown:e=>this.interactionHandler.editAnchor("end",e)}),this.mode==="create"&&e("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return e(o,null)}}else{return e(o,null,e("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],start:[{handleStartJsonChange:0}],end:[{handleEndJsonChange:0}],mode:[{handleModeChange:0}],offset:[{handleScalingConfigurationChange:0}],originatingViewport:[{handleScalingConfigurationChange:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],scale:[{handleScalingConfigurationChange:0},{handleScaleChange:0}]}}static get style(){return E()}},[1,"vertex-viewer-markup-arrow",{start:[1040],startJson:[1,"start"],end:[1040],endJson:[1,"end"],originatingViewport:[16],centeringBehavior:[1,"centering-behavior"],offset:[16],scale:[2],startLineAnchorStyle:[1025,"start-line-anchor-style"],endLineAnchorStyle:[1025,"end-line-anchor-style"],mode:[513],viewer:[16],elementBounds:[32],dispose:[64]},undefined,{viewer:[{handleViewerChanged:0}],start:[{handleStartJsonChange:0}],end:[{handleEndJsonChange:0}],mode:[{handleModeChange:0}],offset:[{handleScalingConfigurationChange:0}],originatingViewport:[{handleScalingConfigurationChange:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],scale:[{handleScalingConfigurationChange:0},{handleScaleChange:0}]}]);function V(){if(typeof customElements==="undefined"){return}const e=["vertex-viewer-markup-arrow"];e.forEach((e=>{switch(e){case"vertex-viewer-markup-arrow":if(!customElements.get(r(e))){customElements.define(r(e),D)}break}}))}V();export{D as V,V as d};
|
|
5
|
+
//# sourceMappingURL=p-DjQ6RXWP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["viewerSpinnerCss","ViewerSpinner","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","size","render","h","key","class","classNames"],"sources":["src/components/viewer-spinner/viewer-spinner.css?tag=vertex-viewer-spinner&encapsulation=shadow","src/components/viewer-spinner/viewer-spinner.tsx"],"sourcesContent":[".spinner {\n position: relative;\n height: 16px;\n width: 16px;\n}\n\n.spinner div {\n position: absolute;\n display: block;\n animation: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-radius: 50%;\n border-style: solid;\n box-sizing: border-box;\n border-color: var(--neutral-800) transparent transparent transparent;\n border-width: 1px;\n\n margin: 0;\n}\n\n.spinner div:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.spinner div:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.spinner div:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n/* xs */\n.spinner.xs {\n height: 16px;\n width: 16px;\n}\n\n.spinner.xs div {\n border-width: 1px;\n height: 16px;\n width: 16px;\n margin: 0;\n}\n\n/* sm */\n.spinner.sm {\n height: 24px;\n width: 24px;\n}\n\n.spinner.sm div {\n border-width: 3px;\n height: 18px;\n width: 18px;\n margin: 2px;\n}\n\n/* md */\n.spinner.md {\n height: 32px;\n width: 32px;\n}\n\n.spinner.md div {\n border-width:
|
|
1
|
+
{"version":3,"names":["viewerSpinnerCss","ViewerSpinner","__stencil_proxyCustomElement","HTMLElement","constructor","registerHost","this","size","render","h","key","class","classNames"],"sources":["src/components/viewer-spinner/viewer-spinner.css?tag=vertex-viewer-spinner&encapsulation=shadow","src/components/viewer-spinner/viewer-spinner.tsx"],"sourcesContent":[".spinner {\n position: relative;\n height: 16px;\n width: 16px;\n}\n\n.spinner div {\n position: absolute;\n display: block;\n animation: spinner 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;\n border-radius: 50%;\n border-style: solid;\n box-sizing: border-box;\n border-color: var(--neutral-800) transparent transparent transparent;\n border-width: 1px;\n\n margin: 0;\n}\n\n.spinner div:nth-child(1) {\n animation-delay: -0.45s;\n}\n\n.spinner div:nth-child(2) {\n animation-delay: -0.3s;\n}\n\n.spinner div:nth-child(3) {\n animation-delay: -0.15s;\n}\n\n/* xs */\n.spinner.xs {\n height: 16px;\n width: 16px;\n}\n\n.spinner.xs div {\n border-width: 1px;\n height: 16px;\n width: 16px;\n margin: 0;\n}\n\n/* sm */\n.spinner.sm {\n height: 24px;\n width: 24px;\n}\n\n.spinner.sm div {\n border-width: 3px;\n height: 18px;\n width: 18px;\n margin: 2px;\n}\n\n/* md */\n.spinner.md {\n height: 32px;\n width: 32px;\n}\n\n.spinner.md div {\n border-width: 3px;\n height: 32px;\n width: 32px;\n margin: 2px;\n}\n\n/* lg */\n.spinner.lg {\n height: 64px;\n width: 64px;\n}\n\n.spinner.lg div {\n border-width: 6px;\n height: 52px;\n width: 52px;\n margin: 6px;\n}\n\n@keyframes spinner {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n","import { Component, h, Prop } from '@stencil/core';\nimport classNames from 'classnames';\n\n/**\n * The predefined sizes for the spinner.\n */\nexport type SpinnerSize = 'xs' | 'sm' | 'md' | 'lg' | undefined;\n\n@Component({\n tag: 'vertex-viewer-spinner',\n styleUrl: 'viewer-spinner.css',\n shadow: true,\n})\nexport class ViewerSpinner {\n /**\n * The size of the spinner. Can be `'xs' | 'sm' | 'md' | 'lg' | undefined`. Predefined\n * sizes are set to:\n *\n * * `xm`: 16px\n * * `sm`: 24px\n * * `md`: 32px\n * * `lg`: 64px\n */\n @Prop()\n public size?: SpinnerSize = 'md';\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <div\n class={classNames('spinner', {\n ['xs']: this.size === 'xs',\n ['sm']: this.size === 'sm',\n ['md']: this.size === 'md',\n ['lg']: this.size === 'lg',\n })}\n >\n <div />\n <div />\n <div />\n <div />\n </div>\n );\n }\n}\n"],"mappings":";;;6FAAA,MAAMA,EAAmB,IAAM,46B,MCalBC,EAAaC,EAAA,MAAAD,UAAAE,EAL1B,WAAAC,CAAAC,G,kEAgBSC,KAAAC,KAAqB,IAmB7B,CAjBQ,MAAAC,GACL,OACEC,EAAA,OAAAC,IAAA,2CACEC,MAAOC,EAAW,UAAW,CAC3B,CAAC,MAAON,KAAKC,OAAS,KACtB,CAAC,MAAOD,KAAKC,OAAS,KACtB,CAAC,MAAOD,KAAKC,OAAS,KACtB,CAAC,MAAOD,KAAKC,OAAS,QAGxBE,EAAA,OAAAC,IAAA,6CACAD,EAAA,OAAAC,IAAA,6CACAD,EAAA,OAAAC,IAAA,6CACAD,EAAA,OAAAC,IAAA,6C","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{v as t}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{v as t}from"./p-2UsvOTHJ.js";import{E as s,b as e}from"./p-CDM7zNn0.js";class r{constructor(){this.overlays=new Map;this.overlaysChanged=new s}addLineFromResult(t){return this.addLine(t.point1,t.point2)}addLine(t,s){const r=e.create();const n={type:"line",id:r,start:t,end:s,dispose:()=>this.remove(r)};this.addOverlay(n);return n}addDistanceVectorFromResult(t){return this.addDistanceVector(t.point1,t.point2)}addDistanceVector(s,r){const n=e.create();const i=t.subtract(s,r);const o=t.add(s,t.create(0,-i.y,0));const a={start:s,end:o};const c=t.add(o,t.create(0,0,-i.z));const d={start:o,end:c};const h=t.add(c,t.create(-i.x,0,0));const u={start:c,end:h};const p={type:"distance-vector",id:n,x:u,y:a,z:d,dispose:()=>this.remove(n)};this.addOverlay(p);return p}addOverlay(t){if(!this.overlays.has(t.id)){this.overlays.set(t.id,t);this.overlaysChanged.emit(this.getOverlays())}}getOverlays(){return Array.from(this.overlays.values())}remove(t){if(this.overlays.has(t)){this.overlays.delete(t);this.overlaysChanged.emit(this.getOverlays());return true}else{return false}}onOverlaysChanged(t){return this.overlaysChanged.on(t)}}export{r as M};
|
|
5
|
+
//# sourceMappingURL=p-DyL2wWm6.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{p as s,g as l}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{p as s,g as l}from"./p-2UsvOTHJ.js";import{b as o}from"./p-CDM7zNn0.js";class r{constructor(l){var r,i,t,a,n;this.start=(r=l.start)!==null&&r!==void 0?r:s.create();this.end=(i=l.end)!==null&&i!==void 0?i:s.create();this.id=(t=l.id)!==null&&t!==void 0?t:`arrow-markup--${o.create()}`;this.startLineAnchorStyle=(a=l.startLineAnchorStyle)!==null&&a!==void 0?a:"none";this.endLineAnchorStyle=(n=l.endLineAnchorStyle)!==null&&n!==void 0?n:"arrow-triangle"}}class i{constructor(s){var r,i;this.bounds=(r=s.bounds)!==null&&r!==void 0?r:l.create(0,0,0,0);this.id=(i=s.id)!==null&&i!==void 0?i:`circle-markup--${o.create()}`}}class t{constructor(s){var r,i,t;this.bounds=(r=s.bounds)!==null&&r!==void 0?r:l.create(0,0,0,0);this.points=(i=s.points)!==null&&i!==void 0?i:[];this.id=(t=s.id)!==null&&t!==void 0?t:`freeform-markup--${o.create()}`}}export{r as A,i as C,t as F};
|
|
5
|
+
//# sourceMappingURL=p-JvS9LLoO.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{E as i,b as t}from"./p-CDM7zNn0.js";import{p as s}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{E as i,b as t}from"./p-CDM7zNn0.js";import{p as s}from"./p-2UsvOTHJ.js";import{g as h}from"./p-CPROw2BU.js";const e=16;const n=1.2;class o{constructor(t,s,h,e,n,o,l,r,a,d){this.downEvent=t;this.upEvent=s;this.moveEvent=h;this.rotateInteraction=e;this.rotatePointInteraction=n;this.zoomInteraction=o;this.panInteraction=l;this.twistInteraction=r;this.pivotInteraction=a;this.getConfig=d;this.isDragging=false;this.keyboardControls=false;this.disableIndividualInteractions=false;this.primaryInteractionTypeChange=new i;this.primaryInteraction=e;this.handleDownEvent=this.handleDownEvent.bind(this);this.handleMouseWheel=this.handleMouseWheel.bind(this);this.handleWindowMove=this.handleWindowMove.bind(this);this.handleWindowUp=this.handleWindowUp.bind(this);this.handleDoubleClick=this.handleDoubleClick.bind(this)}initialize(i,t){this.element=i;this.interactionApi=t;i.addEventListener(this.downEvent,this.handleDownEvent);i.addEventListener("mousedown",this.handleDoubleClick);i.addEventListener("wheel",this.handleMouseWheel,{passive:false})}dispose(){var i,t,s;(i=this.element)===null||i===void 0?void 0:i.removeEventListener(this.downEvent,this.handleDownEvent);(t=this.element)===null||t===void 0?void 0:t.removeEventListener("mousedown",this.handleDoubleClick);(s=this.element)===null||s===void 0?void 0:s.removeEventListener("wheel",this.handleMouseWheel);this.element=undefined}onPrimaryInteractionTypeChange(i){return this.primaryInteractionTypeChange.on(i)}setCurrentInteractionType(i){var t;switch(i){case"rotate":this.currentInteraction=this.rotateInteraction;break;case"zoom":this.currentInteraction=this.zoomInteraction;break;case"pan":this.currentInteraction=this.panInteraction;break;case"twist":this.currentInteraction=this.twistInteraction;break;case"rotate-point":this.currentInteraction=this.rotatePointInteraction;break;case"pivot":this.currentInteraction=this.pivotInteraction;break;default:this.currentInteraction=undefined}if(this.draggingInteraction){const i=this.draggingInteraction.getPosition();this.draggingInteraction=this.currentInteraction||this.primaryInteraction;(t=this.interactionApi)===null||t===void 0?void 0:t.resetLastAngle();this.draggingInteraction.setPosition(i)}}getPrimaryInteractionType(){return this.primaryInteraction.getType()}getCurrentInteractionType(){return(this.currentInteraction||this.primaryInteraction).getType()}setPrimaryInteractionType(i){switch(i){case"rotate":this.primaryInteraction=this.rotateInteraction;this.lastPrimaryRotateInteraction=this.rotateInteraction;break;case"rotate-point":this.primaryInteraction=this.rotatePointInteraction;this.lastPrimaryRotateInteraction=this.rotatePointInteraction;break;case"zoom":this.primaryInteraction=this.zoomInteraction;break;case"pan":this.primaryInteraction=this.panInteraction;break;case"pivot":this.primaryInteraction=this.pivotInteraction;break}this.primaryInteractionTypeChange.emit()}setDefaultKeyboardControls(i){this.keyboardControls=i}handleDownEvent(i){i.preventDefault();this.interactionTimer=window.setTimeout((()=>{this.downPosition=s.create(i.screenX,i.screenY);this.downPositionCanvas=this.getCanvasPosition(i);this.interactionTimer=undefined;if(this.lastMoveEvent!=null){this.handleWindowMove(this.lastMoveEvent)}}),this.getConfig().interactions.interactionDelay);window.addEventListener(this.moveEvent,this.handleWindowMove);window.addEventListener(this.upEvent,this.handleWindowUp)}handleWindowMove(i){if(this.interactionTimer==null){if(this.disableIndividualInteractions){return}const t=s.create(i.screenX,i.screenY);const h=this.interactionApi!=null?this.interactionApi.pixelThreshold(this.isTouch(i)):2;if(this.downPosition!=null&&s.distance(t,this.downPosition)>=h&&!this.isDragging){this.beginDrag(i);this.isDragging=true}if(this.isDragging){this.drag(i)}}this.lastMoveEvent=i}async handleWindowUp(i){if(this.isDragging){this.endDrag(i);this.isDragging=false}if(this.interactionTimer!=null){window.clearTimeout(this.interactionTimer);this.interactionTimer=undefined}window.removeEventListener(this.moveEvent,this.handleWindowMove);window.removeEventListener(this.upEvent,this.handleWindowUp);this.lastMoveEvent=undefined}async handleDoubleClick(i){if(i.detail===2&&i.buttons===4&&this.interactionApi!=null){await this.interactionApi.viewAll()}}beginDrag(i){var t;if(this.keyboardControls&&i.metaKey&&i.shiftKey){this.currentInteraction=this.rotatePointInteraction}else if(this.keyboardControls&&i.shiftKey&&i.altKey){this.currentInteraction=this.twistInteraction}else if(this.keyboardControls&&i.shiftKey){this.currentInteraction=this.zoomInteraction}else if(this.keyboardControls&&(i.metaKey||i.ctrlKey)){this.currentInteraction=this.panInteraction}else if(this.keyboardControls&&i.altKey){this.currentInteraction=this.rotateInteraction}if(i.buttons===1){this.draggingInteraction=this.currentInteraction||this.primaryInteraction}else if(i.buttons===2){this.draggingInteraction=this.panInteraction}else if(i.buttons===4){this.draggingInteraction=(t=this.lastPrimaryRotateInteraction)!==null&&t!==void 0?t:this.rotateInteraction}if(this.draggingInteraction!=null&&this.interactionApi!=null&&this.element!=null){this.zoomInteraction.endDrag(i,this.interactionApi);this.draggingInteraction.beginDrag(i,this.downPositionCanvas||s.create(i.clientX,i.clientY),this.interactionApi,this.element)}}drag(i){if(this.keyboardControls&&i.altKey&&i.shiftKey){this.currentInteraction=this.twistInteraction}else{this.currentInteraction=undefined}this.draggingInteraction=this.currentInteraction||this.draggingInteraction||this.primaryInteraction;if(this.draggingInteraction!=null&&this.interactionApi!=null){this.draggingInteraction.drag(i,this.interactionApi)}}endDrag(i){if(this.keyboardControls&&this.currentInteraction===this.twistInteraction){this.currentInteraction=undefined}if(this.draggingInteraction!=null&&this.interactionApi!=null){this.draggingInteraction.endDrag(i,this.interactionApi);this.draggingInteraction=undefined}}handleMouseWheel(i){i.preventDefault();if(this.element!=null&&this.interactionApi!=null&&i.buttons!==4){const t=-this.wheelDeltaToPixels(i.deltaY,i.deltaMode)/10;const s=this.element.getBoundingClientRect();const e=h(i,s);const n=Math.abs(i.deltaY);if(n<12){void this.zoomInteraction.zoomToPoint(e,t,this.interactionApi)}else{const i=Math.min(10,Math.ceil(n/12));const s=t/i;for(let t=1;t<=i;t++){const i=t*5;window.setTimeout((()=>{if(this.interactionApi!=null){this.zoomInteraction.zoomToPoint(e,s,this.interactionApi,i)}}),i)}}}}wheelDeltaToPixels(i,t){if(this.bodyStyleCache==null){const i=window.getComputedStyle(document.body);const t=Number.parseFloat(i.getPropertyValue("fontSize"))||e;const s=Number.parseFloat(i.getPropertyValue("lineHeight"));this.bodyStyleCache={lineHeightPixels:Number.isFinite(s)?s:t*n,height:Number.parseFloat(i.getPropertyValue("height"))||window.innerHeight};window.setTimeout((()=>{this.bodyStyleCache=undefined}),4800)}if(t===1){return i*this.bodyStyleCache.lineHeightPixels}else if(t===2){return i*this.bodyStyleCache.height}return i}getCanvasPosition(i){var t;const h=(t=this.element)===null||t===void 0?void 0:t.getBoundingClientRect();const e=h!=null?s.create(h.left,h.top):undefined;return e!=null?s.subtract(s.create(i.clientX,i.clientY),e):undefined}isTouch(i){return window.PointerEvent!=null&&i instanceof PointerEvent?i.pointerType==="touch":false}}class l extends o{constructor(){super(...arguments);this.registeredExternalElements={}}registerAdditionalElement(i){const s=t.create();const h=this.addEventListenersToElement(i);this.registeredExternalElements[s]=h;return h}deregisterAdditionalElementById(i){const t=this.registeredExternalElements[i];t.dispose();this.registeredExternalElements=Object.fromEntries(Object.entries(this.registeredExternalElements).filter((([t])=>t!==i)))}deregisterAllListeners(){Object.keys(this.registeredExternalElements).forEach((i=>this.deregisterAdditionalElementById(i)))}}export{o as B,l as M};
|
|
5
|
+
//# sourceMappingURL=p-Ng27jBsS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_FONT_SIZE","DEFAULT_FONT_TO_LINE_HEIGHT_MULTIPLIER","BaseInteractionHandler","constructor","downEvent","upEvent","moveEvent","rotateInteraction","rotatePointInteraction","zoomInteraction","panInteraction","twistInteraction","pivotInteraction","getConfig","this","isDragging","keyboardControls","disableIndividualInteractions","primaryInteractionTypeChange","EventDispatcher","primaryInteraction","handleDownEvent","bind","handleMouseWheel","handleWindowMove","handleWindowUp","handleDoubleClick","initialize","element","api","interactionApi","addEventListener","passive","dispose","_a","removeEventListener","_b","_c","undefined","onPrimaryInteractionTypeChange","listener","on","setCurrentInteractionType","type","currentInteraction","draggingInteraction","point","getPosition","resetLastAngle","setPosition","getPrimaryInteractionType","getType","getCurrentInteractionType","setPrimaryInteractionType","lastPrimaryRotateInteraction","emit","setDefaultKeyboardControls","event","preventDefault","interactionTimer","window","setTimeout","downPosition","Point","create","screenX","screenY","downPositionCanvas","getCanvasPosition","lastMoveEvent","interactions","interactionDelay","position","pixelThreshold","isTouch","distance","beginDrag","drag","endDrag","clearTimeout","detail","buttons","viewAll","metaKey","shiftKey","altKey","ctrlKey","clientX","clientY","delta","wheelDeltaToPixels","deltaY","deltaMode","rect","getBoundingClientRect","getMouseClientPosition","scrollSize","Math","abs","zoomToPoint","divisions","min","ceil","zoomDelta","i","delayMs","bodyStyleCache","bodyStyle","getComputedStyle","document","body","fontSize","Number","parseFloat","getPropertyValue","lineHeight","lineHeightPixels","isFinite","height","innerHeight","canvasBounds","canvasOffset","left","top","subtract","PointerEvent","pointerType","MultiElementInteractionHandler","registeredExternalElements","registerAdditionalElement","external","id","UUID","disposable","addEventListenersToElement","deregisterAdditionalElementById","externalElement","Object","fromEntries","entries","filter","key","deregisterAllListeners","keys","forEach"],"sources":["src/lib/interactions/baseInteractionHandler.ts","src/lib/interactions/multiElementInteractionHandler.ts"],"sourcesContent":["import { Point } from '@vertexvis/geometry';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport { ConfigProvider } from '../config';\nimport { getMouseClientPosition } from '../dom';\nimport { InteractionApi } from './interactionApi';\nimport { BaseEvent } from './interactionEvent';\nimport { InteractionHandler } from './interactionHandler';\nimport {\n MouseInteraction,\n PanInteraction,\n PivotInteraction,\n RotateInteraction,\n RotatePointInteraction,\n TwistInteraction,\n ZoomInteraction,\n} from './mouseInteractions';\n\nexport type InteractionType =\n 'rotate' | 'zoom' | 'pan' | 'twist' | 'rotate-point' | 'pivot';\n\nconst DEFAULT_FONT_SIZE = 16;\nconst DEFAULT_FONT_TO_LINE_HEIGHT_MULTIPLIER = 1.2;\n\nexport abstract class BaseInteractionHandler implements InteractionHandler {\n protected interactionApi?: InteractionApi;\n protected element?: HTMLElement;\n protected downPosition?: Point.Point;\n private downPositionCanvas?: Point.Point;\n private primaryInteraction: MouseInteraction;\n private currentInteraction?: MouseInteraction;\n private draggingInteraction: MouseInteraction | undefined;\n private lastPrimaryRotateInteraction?: MouseInteraction;\n private isDragging = false;\n private lastMoveEvent?: BaseEvent;\n private interactionTimer?: number;\n private keyboardControls = false;\n\n protected disableIndividualInteractions = false;\n\n private bodyStyleCache?: {\n lineHeightPixels: number;\n height: number;\n };\n\n private primaryInteractionTypeChange = new EventDispatcher<void>();\n\n public constructor(\n protected downEvent: 'mousedown' | 'pointerdown',\n protected upEvent: 'mouseup' | 'pointerup',\n protected moveEvent: 'mousemove' | 'pointermove',\n private rotateInteraction: RotateInteraction,\n private rotatePointInteraction: RotatePointInteraction,\n private zoomInteraction: ZoomInteraction,\n private panInteraction: PanInteraction,\n private twistInteraction: TwistInteraction,\n private pivotInteraction: PivotInteraction,\n private getConfig: ConfigProvider,\n ) {\n this.primaryInteraction = rotateInteraction;\n this.handleDownEvent = this.handleDownEvent.bind(this);\n this.handleMouseWheel = this.handleMouseWheel.bind(this);\n this.handleWindowMove = this.handleWindowMove.bind(this);\n this.handleWindowUp = this.handleWindowUp.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n }\n\n public initialize(element: HTMLElement, api: InteractionApi): void {\n this.element = element;\n this.interactionApi = api;\n element.addEventListener(this.downEvent, this.handleDownEvent);\n element.addEventListener('mousedown', this.handleDoubleClick);\n element.addEventListener('wheel', this.handleMouseWheel, {\n passive: false,\n });\n }\n\n public dispose(): void {\n this.element?.removeEventListener(this.downEvent, this.handleDownEvent);\n this.element?.removeEventListener('mousedown', this.handleDoubleClick);\n this.element?.removeEventListener('wheel', this.handleMouseWheel);\n this.element = undefined;\n }\n\n public onPrimaryInteractionTypeChange(listener: Listener<void>): Disposable {\n return this.primaryInteractionTypeChange.on(listener);\n }\n\n public setCurrentInteractionType(type?: InteractionType): void {\n switch (type) {\n case 'rotate':\n this.currentInteraction = this.rotateInteraction;\n break;\n case 'zoom':\n this.currentInteraction = this.zoomInteraction;\n break;\n case 'pan':\n this.currentInteraction = this.panInteraction;\n break;\n case 'twist':\n this.currentInteraction = this.twistInteraction;\n break;\n case 'rotate-point':\n this.currentInteraction = this.rotatePointInteraction;\n break;\n case 'pivot':\n this.currentInteraction = this.pivotInteraction;\n break;\n default:\n this.currentInteraction = undefined;\n }\n\n if (this.draggingInteraction) {\n const point = this.draggingInteraction.getPosition();\n this.draggingInteraction =\n this.currentInteraction || this.primaryInteraction;\n this.interactionApi?.resetLastAngle();\n this.draggingInteraction.setPosition(point);\n }\n }\n\n public getPrimaryInteractionType(): InteractionType {\n return this.primaryInteraction.getType();\n }\n\n public getCurrentInteractionType(): InteractionType {\n return (this.currentInteraction || this.primaryInteraction).getType();\n }\n\n public setPrimaryInteractionType(type: InteractionType): void {\n switch (type) {\n case 'rotate':\n this.primaryInteraction = this.rotateInteraction;\n this.lastPrimaryRotateInteraction = this.rotateInteraction;\n break;\n case 'rotate-point':\n this.primaryInteraction = this.rotatePointInteraction;\n this.lastPrimaryRotateInteraction = this.rotatePointInteraction;\n break;\n case 'zoom':\n this.primaryInteraction = this.zoomInteraction;\n break;\n case 'pan':\n this.primaryInteraction = this.panInteraction;\n break;\n case 'pivot':\n this.primaryInteraction = this.pivotInteraction;\n break;\n }\n this.primaryInteractionTypeChange.emit();\n }\n\n public setDefaultKeyboardControls(keyboardControls: boolean): void {\n this.keyboardControls = keyboardControls;\n }\n\n protected handleDownEvent(event: BaseEvent): void {\n // Prevent selection of any text while interacting with the model.\n event.preventDefault();\n\n this.interactionTimer = window.setTimeout(() => {\n this.downPosition = Point.create(event.screenX, event.screenY);\n this.downPositionCanvas = this.getCanvasPosition(event);\n this.interactionTimer = undefined;\n\n // Perform the current movement in the case that the interaction timer elapses\n if (this.lastMoveEvent != null) {\n this.handleWindowMove(this.lastMoveEvent);\n }\n }, this.getConfig().interactions.interactionDelay);\n\n window.addEventListener(this.moveEvent, this.handleWindowMove);\n window.addEventListener(this.upEvent, this.handleWindowUp);\n }\n\n protected handleWindowMove(event: BaseEvent): void {\n if (this.interactionTimer == null) {\n if (this.disableIndividualInteractions) {\n return;\n }\n\n const position = Point.create(event.screenX, event.screenY);\n const pixelThreshold =\n this.interactionApi != null\n ? this.interactionApi.pixelThreshold(this.isTouch(event))\n : 2;\n if (\n this.downPosition != null &&\n Point.distance(position, this.downPosition) >= pixelThreshold &&\n !this.isDragging\n ) {\n this.beginDrag(event);\n this.isDragging = true;\n }\n\n if (this.isDragging) {\n this.drag(event);\n }\n }\n\n this.lastMoveEvent = event;\n }\n\n protected async handleWindowUp(event: BaseEvent): Promise<void> {\n if (this.isDragging) {\n this.endDrag(event);\n this.isDragging = false;\n }\n\n if (this.interactionTimer != null) {\n window.clearTimeout(this.interactionTimer);\n this.interactionTimer = undefined;\n }\n\n window.removeEventListener(this.moveEvent, this.handleWindowMove);\n window.removeEventListener(this.upEvent, this.handleWindowUp);\n this.lastMoveEvent = undefined;\n }\n\n protected async handleDoubleClick(event: BaseEvent): Promise<void> {\n // event.detail is the number of clicks that have happened recently. If the number is 2, then the user double clicked.\n if (\n event.detail === 2 &&\n event.buttons === 4 &&\n this.interactionApi != null\n ) {\n await this.interactionApi.viewAll();\n }\n }\n\n protected beginDrag(event: BaseEvent): void {\n if (this.keyboardControls && event.metaKey && event.shiftKey) {\n this.currentInteraction = this.rotatePointInteraction;\n } else if (this.keyboardControls && event.shiftKey && event.altKey) {\n this.currentInteraction = this.twistInteraction;\n } else if (this.keyboardControls && event.shiftKey) {\n this.currentInteraction = this.zoomInteraction;\n } else if (this.keyboardControls && (event.metaKey || event.ctrlKey)) {\n this.currentInteraction = this.panInteraction;\n } else if (this.keyboardControls && event.altKey) {\n this.currentInteraction = this.rotateInteraction;\n }\n\n if (event.buttons === 1) {\n this.draggingInteraction =\n this.currentInteraction || this.primaryInteraction;\n } else if (event.buttons === 2) {\n this.draggingInteraction = this.panInteraction;\n } else if (event.buttons === 4) {\n this.draggingInteraction =\n this.lastPrimaryRotateInteraction ?? this.rotateInteraction;\n }\n\n if (\n this.draggingInteraction != null &&\n this.interactionApi != null &&\n this.element != null\n ) {\n // Ensure any scroll wheel interactions have been ended prior to beginning\n // another interaction to prevent the interaction from being ended early.\n this.zoomInteraction.endDrag(event, this.interactionApi);\n\n this.draggingInteraction.beginDrag(\n event,\n this.downPositionCanvas || Point.create(event.clientX, event.clientY),\n this.interactionApi,\n this.element,\n );\n }\n }\n\n protected drag(event: BaseEvent): void {\n if (this.keyboardControls && event.altKey && event.shiftKey) {\n this.currentInteraction = this.twistInteraction;\n } else {\n this.currentInteraction = undefined;\n }\n this.draggingInteraction =\n this.currentInteraction ||\n this.draggingInteraction ||\n this.primaryInteraction;\n if (this.draggingInteraction != null && this.interactionApi != null) {\n this.draggingInteraction.drag(event, this.interactionApi);\n }\n }\n\n protected endDrag(event: BaseEvent): void {\n if (\n this.keyboardControls &&\n this.currentInteraction === this.twistInteraction\n ) {\n this.currentInteraction = undefined;\n }\n\n if (this.draggingInteraction != null && this.interactionApi != null) {\n this.draggingInteraction.endDrag(event, this.interactionApi);\n this.draggingInteraction = undefined;\n }\n }\n\n protected handleMouseWheel(event: WheelEvent): void {\n event.preventDefault();\n\n if (\n this.element != null &&\n this.interactionApi != null &&\n event.buttons !== 4\n ) {\n const delta =\n -this.wheelDeltaToPixels(event.deltaY, event.deltaMode) / 10;\n const rect = this.element.getBoundingClientRect();\n const point = getMouseClientPosition(event, rect);\n const scrollSize = Math.abs(event.deltaY);\n\n if (scrollSize < 12) {\n // For small wheel movements, send a single zoom event.\n void this.zoomInteraction.zoomToPoint(\n point,\n delta,\n this.interactionApi,\n );\n } else {\n const divisions = Math.min(10, Math.ceil(scrollSize / 12));\n const zoomDelta = delta / divisions;\n // For larger wheel movements, divide the delta into multiple zoom events with increasing delay\n // which approximates a smooth zoom deceleration curve for the end user.\n for (let i = 1; i <= divisions; i++) {\n const delayMs = i * 5;\n window.setTimeout(() => {\n if (this.interactionApi != null) {\n this.zoomInteraction.zoomToPoint(\n point,\n zoomDelta,\n this.interactionApi,\n delayMs,\n );\n }\n }, delayMs);\n }\n }\n }\n }\n\n protected wheelDeltaToPixels(deltaY: number, deltaMode: number): number {\n // Cached values are an optimization we can use given mouseWheel\n // events can happen dozen or hundreds of times per scroll, but body style\n // is very unlikely to change frequently or while doing wheel movements.\n if (this.bodyStyleCache == null) {\n const bodyStyle = window.getComputedStyle(document.body);\n const fontSize =\n Number.parseFloat(bodyStyle.getPropertyValue('fontSize')) ||\n DEFAULT_FONT_SIZE;\n const lineHeight = Number.parseFloat(\n bodyStyle.getPropertyValue('lineHeight'),\n );\n this.bodyStyleCache = {\n lineHeightPixels: Number.isFinite(lineHeight)\n ? lineHeight\n : fontSize * DEFAULT_FONT_TO_LINE_HEIGHT_MULTIPLIER,\n height:\n Number.parseFloat(bodyStyle.getPropertyValue('height')) ||\n window.innerHeight,\n };\n window.setTimeout(() => {\n this.bodyStyleCache = undefined;\n }, 4800); // For now hardcoded. Could be derived. eg mouseWheelInteractionEndDebounce * 12\n }\n\n if (deltaMode === 1) {\n // deltaMode 1 corresponds to DOM_DELTA_LINE, which computes deltas in lines\n return deltaY * this.bodyStyleCache.lineHeightPixels;\n } else if (deltaMode === 2) {\n // deltaMode 2 corresponds to DOM_DELTA_PAGE, which computes deltas in pages\n return deltaY * this.bodyStyleCache.height;\n }\n // deltaMode 0 corresponds to DOM_DELTA_PIXEL, which computes deltas in pixels\n return deltaY;\n }\n\n protected getCanvasPosition(event: BaseEvent): Point.Point | undefined {\n const canvasBounds = this.element?.getBoundingClientRect();\n const canvasOffset =\n canvasBounds != null\n ? Point.create(canvasBounds.left, canvasBounds.top)\n : undefined;\n\n return canvasOffset != null\n ? Point.subtract(Point.create(event.clientX, event.clientY), canvasOffset)\n : undefined;\n }\n\n protected isTouch(event: BaseEvent): boolean {\n return window.PointerEvent != null && event instanceof PointerEvent\n ? event.pointerType === 'touch'\n : false;\n }\n}\n","import { Disposable, UUID } from '@vertexvis/utils';\n\nimport { BaseInteractionHandler } from './baseInteractionHandler';\n\nexport abstract class MultiElementInteractionHandler extends BaseInteractionHandler {\n protected registeredExternalElements: Record<UUID.UUID, Disposable> = {};\n\n public registerAdditionalElement(external: HTMLElement): Disposable {\n const id = UUID.create();\n const disposable = this.addEventListenersToElement(external);\n\n this.registeredExternalElements[id] = disposable;\n return disposable;\n }\n\n public deregisterAdditionalElementById(id: UUID.UUID): void {\n const externalElement = this.registeredExternalElements[id];\n\n externalElement.dispose();\n\n this.registeredExternalElements = Object.fromEntries(\n Object.entries(this.registeredExternalElements).filter(\n ([key]) => key !== id,\n ),\n );\n }\n\n protected deregisterAllListeners(): void {\n Object.keys(this.registeredExternalElements).forEach((id) =>\n this.deregisterAdditionalElementById(id),\n );\n }\n\n public abstract addEventListenersToElement(element?: HTMLElement): Disposable;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{t as e,p as i,H as t,d as r,h as o,e as n}from"./p-Bb32XUUS.js";import{g as s}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{t as e,p as i,H as t,d as r,h as o,e as n}from"./p-Bb32XUUS.js";import{g as s}from"./p-2UsvOTHJ.js";import{g as h,a}from"./p-CPROw2BU.js";import{w as l}from"./p-Cd7kap5W.js";import{g as c}from"./p-Bg-uS9BH.js";import{M as d,t as u,l as p,d as v,m as g,n as w,S as b}from"./p-Cs2aiMUK.js";import{B as f}from"./p-Clyxptbp.js";class m extends d{constructor(e,i,t,r){super(r);this.markupEl=e;this.interactionBegin=i;this.interactionEnd=t;this.anchor="bottom-right"}editAnchor(e,i){if(this.markupEl.mode==="edit"){this.anchor=e;this.resizeBounds=this.markupEl.bounds;this.startInteraction(i)}}startInteraction(e){this.handleInteractionAttempt(e)}computeBoundingRect(){return c(this.markupEl)}handleInteractionAttempt(e){var i;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){const t=u(h(e,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.pointerId=e.pointerId;this.startPosition=t;this.markupEl.bounds=(i=this.markupEl.bounds)!==null&&i!==void 0?i:s.create(t.x,t.y,0,0);this.resizeBounds=this.markupEl.bounds;this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(e){var i;if(this.markupEl.bounds!=null&&this.startPosition!=null&&this.elementBounds!=null&&this.pointerId===e.pointerId){const t=u(h(e,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.markupEl.bounds=p((i=this.resizeBounds)!==null&&i!==void 0?i:this.markupEl.bounds,this.startPosition,t,this.anchor,e.shiftKey)}}handleInteractionEnd(e){var i,t;if(this.pointerId===e.pointerId){if(this.markupEl.mode!==""&&this.markupEl.bounds!=null&&((i=this.markupEl.bounds)===null||i===void 0?void 0:i.width)>0&&((t=this.markupEl.bounds)===null||t===void 0?void 0:t.height)>0){this.anchor="bottom-right";const e=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:e})}else{this.markupEl.bounds=undefined}this.pointerId=undefined}}}const k=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-circle-ellipse-stroke-color:var(--red-700);--viewer-markup-circle-ellipse-stroke-width:4px;--viewer-markup-circle-ellipse-fill-color:none;--viewer-markup-circle-ellipse-fill-opacity:0;--viewer-markup-circle-bounds-outline-border-color:var(--blue-400);--viewer-markup-circle-bounds-outline-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-circle-bounds-edge-anchor-border-width:1px;--viewer-markup-circle-bounds-edge-anchor-background-color:white;--viewer-markup-circle-bounds-center-anchor-border-color:white;--viewer-markup-circle-bounds-center-anchor-border-width:1px;--viewer-markup-circle-bounds-center-anchor-background-color:var(--blue-400);--viewer-markup-circle-bounds-anchor-width:9px;--viewer-markup-circle-bounds-anchor-height:9px;--viewer-markup-circle-scale:1}.svg{pointer-events:none;width:100%;height:100%}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.ellipse{pointer-events:auto;stroke:var(--viewer-markup-circle-ellipse-stroke-color);stroke-width:calc( var(--viewer-markup-circle-ellipse-stroke-width) * var(--viewer-markup-circle-scale) );fill:var(--viewer-markup-circle-ellipse-fill-color);fill-opacity:var(--viewer-markup-circle-ellipse-fill-opacity);cursor:default}.bounds-container{pointer-events:none;position:absolute;width:100%;height:100%;top:0;left:0;overflow:hidden}.bounds-outline{position:absolute;border-width:var(--viewer-markup-circle-bounds-outline-border-width);border-color:var(--viewer-markup-circle-bounds-outline-border-color);border-style:solid;box-shadow:0 0 3px rgba(0, 0, 0, 0.3)}.bounds-anchor-position{position:absolute;transform:translate(-50%, -50%)}.bounds-anchor{pointer-events:auto;cursor:default;user-select:none}.bounds-default-anchor{width:var(--viewer-markup-circle-bounds-anchor-width);height:var(--viewer-markup-circle-bounds-anchor-height);box-sizing:border-box;box-shadow:0 0 2px rgba(0, 0, 0, 0.3)}.bounds-center-anchor{border-radius:100%;border-width:var(--viewer-markup-circle-bounds-center-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-center-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-circle-bounds-center-anchor-background-color )}.bounds-edge-anchor{border-width:var(--viewer-markup-circle-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-circle-bounds-edge-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-circle-bounds-edge-anchor-background-color )}`;const C=i(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}this.__attachShadow();this.interactionBegin=r(this,"interactionBegin");this.interactionEnd=r(this,"interactionEnd");this.mode="";this.centeringBehavior="none";this.scale=1;this.interactionHandler=new m(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=e=>{if(v(e)){this.interactionHandler.startInteraction(e)}};this.handleTouchStart=e=>{e.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps();const e=new ResizeObserver((()=>this.updateViewport()));e.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var e;(e=this.registeredHandler)===null||e===void 0?void 0:e.dispose();this.registeredHandler=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(e){var i;(i=this.registeredHandler)===null||i===void 0?void 0:i.dispose();this.registeredHandler=undefined;if(e!=null){this.registeredHandler=await e.registerBasicInteractionHandler(this.interactionHandler)}}handleBoundsJsonChange(){this.updateBoundsFromProps()}handleModeChange(){if(this.mode!=="create"){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}}handleScalingConfigurationChange(){this.interactionHandler.updateScalingOptions({scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior})}handleScaleChange(){l((()=>{this.hostEl.style.setProperty("--viewer-markup-circle-scale",this.scale.toString())}))}updateViewport(){const e=c(this.hostEl);this.elementBounds=e}updateBoundsFromProps(){var e;this.bounds=(e=this.bounds)!==null&&e!==void 0?e:g(this.boundsJson)}render(){var e,i,t,r;if(this.bounds!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=w(this.bounds,this.elementBounds,this.originatingViewport,this.centeringBehavior,this.scale);const l=s.center(h);const c=((i=(e=this.offset)===null||e===void 0?void 0:e.x)!==null&&i!==void 0?i:0)/a();const d=((r=(t=this.offset)===null||t===void 0?void 0:t.y)!==null&&r!==void 0?r:0)/a();return o(n,null,o("svg",{class:"svg",onTouchStart:this.handleTouchStart},o("defs",null,o(b,{id:"circle-shadow",scale:this.scale})),o("g",{transform:`translate(${c} ${d})`,filter:"url(#circle-shadow)"},o("ellipse",{class:"ellipse",cx:l.x,cy:l.y,rx:h.width/2,ry:h.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),this.mode==="edit"&&o(f,{bounds:h,offset:{x:c,y:d},onTopLeftAnchorPointerDown:e=>this.interactionHandler.editAnchor("top-left",e),onTopRightAnchorPointerDown:e=>this.interactionHandler.editAnchor("top-right",e),onTopAnchorPointerDown:e=>this.interactionHandler.editAnchor("top",e),onBottomLeftAnchorPointerDown:e=>this.interactionHandler.editAnchor("bottom-left",e),onBottomRightAnchorPointerDown:e=>this.interactionHandler.editAnchor("bottom-right",e),onBottomAnchorPointerDown:e=>this.interactionHandler.editAnchor("bottom",e),onLeftAnchorPointerDown:e=>this.interactionHandler.editAnchor("left",e),onRightAnchorPointerDown:e=>this.interactionHandler.editAnchor("right",e),onCenterAnchorPointerDown:e=>this.interactionHandler.editAnchor("center",e)}),this.mode==="create"&&o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return o(n,null,o("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return this}static get watchers(){return{viewer:[{handleViewerChanged:0}],bounds:[{handleBoundsJsonChange:0}],mode:[{handleModeChange:0}],offset:[{handleScalingConfigurationChange:0}],originatingViewport:[{handleScalingConfigurationChange:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],scale:[{handleScalingConfigurationChange:0},{handleScaleChange:0}]}}static get style(){return k()}},[1,"vertex-viewer-markup-circle",{bounds:[1040],boundsJson:[1,"bounds"],mode:[513],viewer:[16],originatingViewport:[16],centeringBehavior:[1,"centering-behavior"],offset:[16],scale:[2],elementBounds:[32],dispose:[64]},undefined,{viewer:[{handleViewerChanged:0}],bounds:[{handleBoundsJsonChange:0}],mode:[{handleModeChange:0}],offset:[{handleScalingConfigurationChange:0}],originatingViewport:[{handleScalingConfigurationChange:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],scale:[{handleScalingConfigurationChange:0},{handleScaleChange:0}]}]);function x(){if(typeof customElements==="undefined"){return}const i=["vertex-viewer-markup-circle"];i.forEach((i=>{switch(i){case"vertex-viewer-markup-circle":if(!customElements.get(e(i))){customElements.define(e(i),C)}break}}))}x();export{C as V,x as d};
|
|
5
|
+
//# sourceMappingURL=p-UJR-ixsy.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{t,p as i,H as e,d as s,h as n,e as o}from"./p-Bb32XUUS.js";import{p as h,v as a,c as l,b as r,r as d}from"./p-CZZALKHT.js";import{g as u}from"./p-BqeEZXPn.js";import{E as c}from"./p-CFus3r7d.js";import{E as v}from"./p-CDM7zNn0.js";class g{constructor(t,i){this.model=t;this.animationConfiguration=i;this.rectObserver=new c;this.handlePointerDown=this.handlePointerDown.bind(this);this.handlePointerUp=this.handlePointerUp.bind(this);this.handleEnabledChange=this.handleEnabledChange.bind(this);this.handleTeleportModeChange=this.handleTeleportModeChange.bind(this);this.enabledChangeDisposable=this.model.onEnabledChange(this.handleEnabledChange)}dispose(){var t;this.disable();(t=this.enabledChangeDisposable)===null||t===void 0?void 0:t.dispose();this.element=undefined;this.api=undefined;this.rectObserver.disconnect()}initialize(t,i){this.element=t;this.api=i;this.rectObserver.observe(t);this.handleEnabledChange(this.model.getEnabled())}setAnimations(t){this.animationConfiguration=t}enable(){var t;this.disable();this.teleportModeChangeDisposable=this.model.onTeleportModeChange(this.handleTeleportModeChange);(t=this.element)===null||t===void 0?void 0:t.addEventListener("pointerdown",this.handlePointerDown);this.handleTeleportModeChange(this.model.getTeleportMode())}disable(){var t,i,e;(t=this.teleportModeChangeDisposable)===null||t===void 0?void 0:t.dispose();(i=this.cursorDisposable)===null||i===void 0?void 0:i.dispose();(e=this.element)===null||e===void 0?void 0:e.removeEventListener("pointerdown",this.handlePointerDown)}async handlePointerDown(t){this.downPosition=u(t,this.rectObserver.rect);this.downButtons=t.buttons;window.addEventListener("pointerup",this.handlePointerUp)}async handlePointerUp(t){var i,e;const s=this.model.getTeleportMode();const n=(e=(i=this.api)===null||i===void 0?void 0:i.pixelThreshold())!==null&&e!==void 0?e:2;const o=u(t,this.rectObserver.rect);const a=this.downButtons===2;const l=t.shiftKey||t.altKey||t.metaKey||t.ctrlKey;if(s!=null&&this.downPosition!=null&&h.distance(this.downPosition,o)<=n&&!a&&!l){switch(s){case"teleport":return this.teleportToHit(o);case"teleport-toward":return this.teleportTowardHit(o);case"teleport-and-align":return this.teleportAndAlign(o)}}this.downPosition=undefined;window.removeEventListener("pointerup",this.handlePointerUp)}async beginInteraction(){var t,i;if(!((t=this.api)===null||t===void 0?void 0:t.isInteracting())){await((i=this.api)===null||i===void 0?void 0:i.beginInteraction())}}async endInteraction(){var t;await((t=this.api)===null||t===void 0?void 0:t.endInteraction())}async teleportTowardHit(t){var i,e;const s=await((i=this.api)===null||i===void 0?void 0:i.getWorldPointFromViewport(t));const n=(e=this.api)===null||e===void 0?void 0:e.getRayFromPoint(t);if(n!=null){const{teleportDistancePercentage:t,teleportCollisionDistance:i}=this.model.getConfiguration();const e=t/100;return this.performInteraction((({camera:t,boundingBox:o})=>{const h=Math.max(...a.toArray(l.lengths(o)))*e;const u=r.fromNormalAndCoplanarPoint(t.up,t.position);const c=r.projectPoint(u,s!==null&&s!==void 0?s:t.position);const v=a.distance(t.position,c);if(v<h&&v>i*1.1){const e=d.create({...n,origin:c});const s=r.projectPoint(u,d.at(e,-i));return t.update({position:s,lookAt:a.add(t.lookAt,a.subtract(s,t.position))})}else{const i=r.projectPoint(u,d.at(n,h));return t.update({position:i,lookAt:a.add(t.lookAt,a.subtract(i,t.position))})}}))}}async teleportToHit(t){const i=await this.getWorldPointWithFallback(t);if(i!=null){return this.performInteraction((({camera:t,boundingBox:e})=>{const s=this.shortestLength(e);const n=this.model.getTeleportHeightPercentage()/100;const o=r.fromNormalAndCoplanarPoint(t.up,t.position);const h=r.projectPoint(o,i);const l=d.create({origin:t.position,direction:a.normalize(a.subtract(h,t.position))});const u=a.distance(t.position,h);const c=a.distance(t.position,t.lookAt);const v=d.at(l,u-s*n);const g=d.create({origin:v,direction:a.normalize(t.viewVector)});return t.update({position:v,lookAt:d.at(g,c)})}))}}async teleportAndAlign(t){var i;const e=await((i=this.api)===null||i===void 0?void 0:i.hitItems(t));const s=e!=null?e[0]:undefined;if((s===null||s===void 0?void 0:s.hitNormal)!=null&&(s===null||s===void 0?void 0:s.hitPoint)){await this.performInteraction((({camera:t,boundingBox:i})=>{const e=this.shortestLength(i);const n=this.model.getTeleportHeightPercentage()/100;const o=d.create({origin:s.hitPoint,direction:s.hitNormal});return t.alignTo(d.at(o,e*n),s.hitNormal)}))}}async performInteraction(t){var i;await this.beginInteraction();await((i=this.api)===null||i===void 0?void 0:i.transformCamera(t,this.renderConfiguration()));await this.endInteraction()}async getWorldPointWithFallback(t){var i,e;const s=await((i=this.api)===null||i===void 0?void 0:i.getWorldPointFromViewport(t));if(s==null){const i=await((e=this.api)===null||e===void 0?void 0:e.hitItems(t));const n=i!=null?i[0]:undefined;return(n===null||n===void 0?void 0:n.hitPoint)!=null?n.hitPoint:s}return s}handleEnabledChange(t){if(t){this.enable()}else{this.disable()}}handleTeleportModeChange(t){var i,e;(i=this.cursorDisposable)===null||i===void 0?void 0:i.dispose();if(t!=null){this.cursorDisposable=(e=this.api)===null||e===void 0?void 0:e.addCursor("crosshair")}}shortestLength(t){return Math.min(...a.toArray(l.lengths(t)))}renderConfiguration(){return this.animationConfiguration!=null?{animation:{milliseconds:this.animationConfiguration.durationMs}}:{}}}class p{constructor(...t){this.bindings=t.map((t=>t.toLowerCase()))}matches(t){return this.bindings.length>0&&this.bindings.every((i=>this.bindingMatches(t,i)))}bindingMatches(t,i){const e=i.includes("!");const s=i.replace("!","");return e?!t[s]:t[s]}}class f{constructor(t){this.model=t;this.excludeTagNames=["VERTEX-SCENE-TREE","VERTEX-SCENE-TREE-SEARCH","VERTEX-VIEWER-PIN-TOOL","INPUT","TEXTAREA"];this.excludePredicates=[];this.updateModelExclusions()}updateModel(t){this.model=t}setEnabled(t){this.model.setEnabled(t)}setTeleportMode(t){this.model.setTeleportMode(t)}updateConfiguration(t){const i=this.model.getConfiguration();this.model.setConfiguration({...i,...t})}addKeyBinding(t,...i){this.model.addKeyBinding(t,new p(...i))}replaceKeyBinding(t,...i){this.model.replaceKeyBinding(t,new p(...i))}excludeElement(...t){if(typeof t[0]==="string"){this.excludeTagNames=[...this.excludeTagNames,t[0]];this.updateModelExclusions();return{dispose:()=>{this.excludeTagNames=this.excludeTagNames.filter((i=>i!==t[0]))}}}else{this.excludePredicates=[...this.excludePredicates,t[0]];this.updateModelExclusions();return{dispose:()=>{this.excludePredicates=this.excludePredicates.filter((i=>i!==t[0]))}}}}updateModelExclusions(){this.model.setExcludedPredicate((t=>this.excludeTagNames.some((i=>i===t.tagName))||this.excludePredicates.some((i=>i(t)))))}}var w;(function(t){t["MOVE_DOWN"]="MOVE_DOWN";t["MOVE_UP"]="MOVE_UP";t["PIVOT_DOWN"]="PIVOT_DOWN";t["PIVOT_LEFT"]="PIVOT_LEFT";t["PIVOT_RIGHT"]="PIVOT_RIGHT";t["PIVOT_UP"]="PIVOT_UP";t["WALK_BACKWARD"]="WALK_BACKWARD";t["WALK_FORWARD"]="WALK_FORWARD";t["WALK_LEFT"]="WALK_LEFT";t["WALK_RIGHT"]="WALK_RIGHT"})(w||(w={}));class m{constructor(){this.keyBindings={[w.MOVE_DOWN]:[new p("PageDown","!Shift","!Alt")],[w.MOVE_UP]:[new p("PageUp","!Shift","!Alt")],[w.PIVOT_DOWN]:[new p("ArrowDown","!Shift","!Alt")],[w.PIVOT_LEFT]:[new p("ArrowLeft","!Shift","!Alt")],[w.PIVOT_RIGHT]:[new p("ArrowRight","!Shift","!Alt")],[w.PIVOT_UP]:[new p("ArrowUp","!Shift","!Alt")],[w.WALK_BACKWARD]:[new p("s")],[w.WALK_FORWARD]:[new p("w")],[w.WALK_LEFT]:[new p("a")],[w.WALK_RIGHT]:[new p("d")]};this.configuration={teleportHeightPercentage:11.75,teleportDistancePercentage:2,teleportCollisionDistance:1e3,keyboardWalkSpeed:5,keyboardPivotDegrees:1,keyboardRepeatIntervalMs:25};this.enabled=true;this.enabledChanged=new v;this.teleportModeChanged=new v;this.configurationChanged=new v;this.keyBindingsChanged=new v}setEnabled(t){this.enabled=t;this.enabledChanged.emit(t)}setTeleportMode(t){this.teleportMode=t;this.teleportModeChanged.emit(t)}setConfiguration(t){this.configuration=t;this.configurationChanged.emit(t)}addKeyBinding(t,i){this.keyBindings[t]=[...this.keyBindings[t],i];this.keyBindingsChanged.emit(this.keyBindings)}replaceKeyBinding(t,i){this.keyBindings[t]=[i];this.keyBindingsChanged.emit(this.keyBindings)}setExcludedPredicate(t){this.excludedPredicate=t}getEnabled(){return this.enabled}getTeleportMode(){return this.teleportMode}getTeleportHeightPercentage(){return this.configuration.teleportHeightPercentage}getKeyboardWalkSpeed(){return this.configuration.keyboardWalkSpeed}getKeyboardPivotDegrees(){return this.configuration.keyboardPivotDegrees}getKeyboardRepeatInterval(){return this.configuration.keyboardRepeatIntervalMs}getConfiguration(){return this.configuration}getKeyBindings(){return this.keyBindings}operationMatches(t,i){return this.keyBindings[t].some((t=>t.matches(i)))}isElementExcluded(t){var i;return!!((i=this.excludedPredicate)===null||i===void 0?void 0:i.call(this,t))}onEnabledChange(t){return this.enabledChanged.on(t)}onTeleportModeChange(t){return this.teleportModeChanged.on(t)}onConfigurationChange(t){return this.configurationChanged.on(t)}onKeyBindingsChange(t){return this.keyBindingsChanged.on(t)}}const C=()=>`:host{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}`;const E=i(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.controllerChanged=s(this,"controllerChanged");this.animationsDisabled=false;this.animationMs=500;this.model=new m;this.stateMap={}}componentWillLoad(){this.setupController();this.setupInteractionHandler();this.setDepthBuffers()}connectedCallback(){this.setupInteractionHandler();this.setDepthBuffers()}disconnectedCallback(){this.clearInteractionHandler();this.resetDepthBuffers()}handleModeChange(){var t;(t=this.controller)===null||t===void 0?void 0:t.setTeleportMode(this.mode);if(this.mode!=null){this.setDepthBuffers()}else{this.resetDepthBuffers()}}handleViewerChanged(){this.clearInteractionHandler();this.setupInteractionHandler();this.setDepthBuffers()}handleAnimationMsChanged(){var t;if(this.animationMs!=null){(t=this.interactionHandler)===null||t===void 0?void 0:t.setAnimations({durationMs:this.animationMs})}}handleAnimationsDisabledChanged(){var t,i;if(this.animationsDisabled){(t=this.interactionHandler)===null||t===void 0?void 0:t.setAnimations(undefined)}else if(this.animationMs!=null){(i=this.interactionHandler)===null||i===void 0?void 0:i.setAnimations({durationMs:this.animationMs})}}handleControllerChanged(){this.setupInteractionHandler();this.setupController();this.controllerChanged.emit(this.controller)}handleModelChanged(){this.setupController();this.clearInteractionHandler();this.setupInteractionHandler()}render(){return n(o,{key:"c8a6512176d203d38ae647ccddcfa8adf307f977"})}setupController(){if(this.controller==null){this.controller=new f(this.model);this.controller.setTeleportMode(this.mode);this.controllerChanged.emit(this.controller)}else{this.controller.setTeleportMode(this.mode);this.controller.updateModel(this.model)}}setDepthBuffers(){if(this.mode!=null&&this.viewer!=null&&this.viewer.depthBuffers==null){this.stateMap.shouldClearDepthBuffers=true;this.viewer.depthBuffers="final"}}resetDepthBuffers(){if(this.stateMap.shouldClearDepthBuffers&&this.viewer!=null){this.viewer.depthBuffers=undefined;this.stateMap.shouldClearDepthBuffers=undefined}}clearInteractionHandler(){var t,i;(t=this.interactionHandlerDisposable)===null||t===void 0?void 0:t.dispose();this.interactionHandlerDisposable=undefined;(i=this.interactionHandler)===null||i===void 0?void 0:i.dispose();this.interactionHandler=undefined}async setupInteractionHandler(){var t;if(this.interactionHandler==null){this.interactionHandler=new g(this.model,!this.animationsDisabled&&this.animationMs!=null?{durationMs:this.animationMs}:undefined);this.interactionHandlerDisposable=await((t=this.viewer)===null||t===void 0?void 0:t.registerInteractionHandler(this.interactionHandler))}}static get watchers(){return{mode:[{handleModeChange:0}],viewer:[{handleViewerChanged:0}],animationMs:[{handleAnimationMsChanged:0}],animationsDisabled:[{handleAnimationsDisabledChanged:0}],controller:[{handleControllerChanged:0}],model:[{handleModelChanged:0}]}}static get style(){return C()}},[1,"vertex-viewer-teleport-tool",{viewer:[16],mode:[1025],animationsDisabled:[4,"animations-disabled"],animationMs:[2,"animation-ms"],controller:[1040],model:[1040]},undefined,{mode:[{handleModeChange:0}],viewer:[{handleViewerChanged:0}],animationMs:[{handleAnimationMsChanged:0}],animationsDisabled:[{handleAnimationsDisabledChanged:0}],controller:[{handleControllerChanged:0}],model:[{handleModelChanged:0}]}]);function b(){if(typeof customElements==="undefined"){return}const i=["vertex-viewer-teleport-tool"];i.forEach((i=>{switch(i){case"vertex-viewer-teleport-tool":if(!customElements.get(t(i))){customElements.define(t(i),E)}break}}))}b();export{E as V,m as W,w as a,f as b,b as d};
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{t,p as i,H as e,d as s,h as n,e as o}from"./p-Bb32XUUS.js";import{p as h,v as a,c as l,b as r,r as d}from"./p-2UsvOTHJ.js";import{g as u}from"./p-CPROw2BU.js";import{E as c}from"./p-CFus3r7d.js";import{E as v}from"./p-CDM7zNn0.js";class g{constructor(t,i){this.model=t;this.animationConfiguration=i;this.rectObserver=new c;this.handlePointerDown=this.handlePointerDown.bind(this);this.handlePointerUp=this.handlePointerUp.bind(this);this.handleEnabledChange=this.handleEnabledChange.bind(this);this.handleTeleportModeChange=this.handleTeleportModeChange.bind(this);this.enabledChangeDisposable=this.model.onEnabledChange(this.handleEnabledChange)}dispose(){var t;this.disable();(t=this.enabledChangeDisposable)===null||t===void 0?void 0:t.dispose();this.element=undefined;this.api=undefined;this.rectObserver.disconnect()}initialize(t,i){this.element=t;this.api=i;this.rectObserver.observe(t);this.handleEnabledChange(this.model.getEnabled())}setAnimations(t){this.animationConfiguration=t}enable(){var t;this.disable();this.teleportModeChangeDisposable=this.model.onTeleportModeChange(this.handleTeleportModeChange);(t=this.element)===null||t===void 0?void 0:t.addEventListener("pointerdown",this.handlePointerDown);this.handleTeleportModeChange(this.model.getTeleportMode())}disable(){var t,i,e;(t=this.teleportModeChangeDisposable)===null||t===void 0?void 0:t.dispose();(i=this.cursorDisposable)===null||i===void 0?void 0:i.dispose();(e=this.element)===null||e===void 0?void 0:e.removeEventListener("pointerdown",this.handlePointerDown)}async handlePointerDown(t){this.downPosition=u(t,this.rectObserver.rect);this.downButtons=t.buttons;window.addEventListener("pointerup",this.handlePointerUp)}async handlePointerUp(t){var i,e;const s=this.model.getTeleportMode();const n=(e=(i=this.api)===null||i===void 0?void 0:i.pixelThreshold())!==null&&e!==void 0?e:2;const o=u(t,this.rectObserver.rect);const a=this.downButtons===2;const l=t.shiftKey||t.altKey||t.metaKey||t.ctrlKey;if(s!=null&&this.downPosition!=null&&h.distance(this.downPosition,o)<=n&&!a&&!l){switch(s){case"teleport":return this.teleportToHit(o);case"teleport-toward":return this.teleportTowardHit(o);case"teleport-and-align":return this.teleportAndAlign(o)}}this.downPosition=undefined;window.removeEventListener("pointerup",this.handlePointerUp)}async beginInteraction(){var t,i;if(!((t=this.api)===null||t===void 0?void 0:t.isInteracting())){await((i=this.api)===null||i===void 0?void 0:i.beginInteraction())}}async endInteraction(){var t;await((t=this.api)===null||t===void 0?void 0:t.endInteraction())}async teleportTowardHit(t){var i,e;const s=await((i=this.api)===null||i===void 0?void 0:i.getWorldPointFromViewport(t));const n=(e=this.api)===null||e===void 0?void 0:e.getRayFromPoint(t);if(n!=null){const{teleportDistancePercentage:t,teleportCollisionDistance:i}=this.model.getConfiguration();const e=t/100;return this.performInteraction((({camera:t,boundingBox:o})=>{const h=Math.max(...a.toArray(l.lengths(o)))*e;const u=r.fromNormalAndCoplanarPoint(t.up,t.position);const c=r.projectPoint(u,s!==null&&s!==void 0?s:t.position);const v=a.distance(t.position,c);if(v<h&&v>i*1.1){const e=d.create({...n,origin:c});const s=r.projectPoint(u,d.at(e,-i));return t.update({position:s,lookAt:a.add(t.lookAt,a.subtract(s,t.position))})}else{const i=r.projectPoint(u,d.at(n,h));return t.update({position:i,lookAt:a.add(t.lookAt,a.subtract(i,t.position))})}}))}}async teleportToHit(t){const i=await this.getWorldPointWithFallback(t);if(i!=null){return this.performInteraction((({camera:t,boundingBox:e})=>{const s=this.shortestLength(e);const n=this.model.getTeleportHeightPercentage()/100;const o=r.fromNormalAndCoplanarPoint(t.up,t.position);const h=r.projectPoint(o,i);const l=d.create({origin:t.position,direction:a.normalize(a.subtract(h,t.position))});const u=a.distance(t.position,h);const c=a.distance(t.position,t.lookAt);const v=d.at(l,u-s*n);const g=d.create({origin:v,direction:a.normalize(t.viewVector)});return t.update({position:v,lookAt:d.at(g,c)})}))}}async teleportAndAlign(t){var i;const e=await((i=this.api)===null||i===void 0?void 0:i.hitItems(t));const s=e!=null?e[0]:undefined;if((s===null||s===void 0?void 0:s.hitNormal)!=null&&(s===null||s===void 0?void 0:s.hitPoint)){await this.performInteraction((({camera:t,boundingBox:i})=>{const e=this.shortestLength(i);const n=this.model.getTeleportHeightPercentage()/100;const o=d.create({origin:s.hitPoint,direction:s.hitNormal});return t.alignTo(d.at(o,e*n),s.hitNormal)}))}}async performInteraction(t){var i;await this.beginInteraction();await((i=this.api)===null||i===void 0?void 0:i.transformCamera(t,this.renderConfiguration()));await this.endInteraction()}async getWorldPointWithFallback(t){var i,e;const s=await((i=this.api)===null||i===void 0?void 0:i.getWorldPointFromViewport(t));if(s==null){const i=await((e=this.api)===null||e===void 0?void 0:e.hitItems(t));const n=i!=null?i[0]:undefined;return(n===null||n===void 0?void 0:n.hitPoint)!=null?n.hitPoint:s}return s}handleEnabledChange(t){if(t){this.enable()}else{this.disable()}}handleTeleportModeChange(t){var i,e;(i=this.cursorDisposable)===null||i===void 0?void 0:i.dispose();if(t!=null){this.cursorDisposable=(e=this.api)===null||e===void 0?void 0:e.addCursor("crosshair")}}shortestLength(t){return Math.min(...a.toArray(l.lengths(t)))}renderConfiguration(){return this.animationConfiguration!=null?{animation:{milliseconds:this.animationConfiguration.durationMs}}:{}}}class p{constructor(...t){this.bindings=t.map((t=>t.toLowerCase()))}matches(t){return this.bindings.length>0&&this.bindings.every((i=>this.bindingMatches(t,i)))}bindingMatches(t,i){const e=i.includes("!");const s=i.replace("!","");return e?!t[s]:t[s]}}class f{constructor(t){this.model=t;this.excludeTagNames=["VERTEX-SCENE-TREE","VERTEX-SCENE-TREE-SEARCH","VERTEX-VIEWER-PIN-TOOL","INPUT","TEXTAREA"];this.excludePredicates=[];this.updateModelExclusions()}updateModel(t){this.model=t}setEnabled(t){this.model.setEnabled(t)}setTeleportMode(t){this.model.setTeleportMode(t)}updateConfiguration(t){const i=this.model.getConfiguration();this.model.setConfiguration({...i,...t})}addKeyBinding(t,...i){this.model.addKeyBinding(t,new p(...i))}replaceKeyBinding(t,...i){this.model.replaceKeyBinding(t,new p(...i))}excludeElement(...t){if(typeof t[0]==="string"){this.excludeTagNames=[...this.excludeTagNames,t[0]];this.updateModelExclusions();return{dispose:()=>{this.excludeTagNames=this.excludeTagNames.filter((i=>i!==t[0]))}}}else{this.excludePredicates=[...this.excludePredicates,t[0]];this.updateModelExclusions();return{dispose:()=>{this.excludePredicates=this.excludePredicates.filter((i=>i!==t[0]))}}}}updateModelExclusions(){this.model.setExcludedPredicate((t=>this.excludeTagNames.some((i=>i===t.tagName))||this.excludePredicates.some((i=>i(t)))))}}var w;(function(t){t["MOVE_DOWN"]="MOVE_DOWN";t["MOVE_UP"]="MOVE_UP";t["PIVOT_DOWN"]="PIVOT_DOWN";t["PIVOT_LEFT"]="PIVOT_LEFT";t["PIVOT_RIGHT"]="PIVOT_RIGHT";t["PIVOT_UP"]="PIVOT_UP";t["WALK_BACKWARD"]="WALK_BACKWARD";t["WALK_FORWARD"]="WALK_FORWARD";t["WALK_LEFT"]="WALK_LEFT";t["WALK_RIGHT"]="WALK_RIGHT"})(w||(w={}));class m{constructor(){this.keyBindings={[w.MOVE_DOWN]:[new p("PageDown","!Shift","!Alt")],[w.MOVE_UP]:[new p("PageUp","!Shift","!Alt")],[w.PIVOT_DOWN]:[new p("ArrowDown","!Shift","!Alt")],[w.PIVOT_LEFT]:[new p("ArrowLeft","!Shift","!Alt")],[w.PIVOT_RIGHT]:[new p("ArrowRight","!Shift","!Alt")],[w.PIVOT_UP]:[new p("ArrowUp","!Shift","!Alt")],[w.WALK_BACKWARD]:[new p("s")],[w.WALK_FORWARD]:[new p("w")],[w.WALK_LEFT]:[new p("a")],[w.WALK_RIGHT]:[new p("d")]};this.configuration={teleportHeightPercentage:11.75,teleportDistancePercentage:2,teleportCollisionDistance:1e3,keyboardWalkSpeed:5,keyboardPivotDegrees:1,keyboardRepeatIntervalMs:25};this.enabled=true;this.enabledChanged=new v;this.teleportModeChanged=new v;this.configurationChanged=new v;this.keyBindingsChanged=new v}setEnabled(t){this.enabled=t;this.enabledChanged.emit(t)}setTeleportMode(t){this.teleportMode=t;this.teleportModeChanged.emit(t)}setConfiguration(t){this.configuration=t;this.configurationChanged.emit(t)}addKeyBinding(t,i){this.keyBindings[t]=[...this.keyBindings[t],i];this.keyBindingsChanged.emit(this.keyBindings)}replaceKeyBinding(t,i){this.keyBindings[t]=[i];this.keyBindingsChanged.emit(this.keyBindings)}setExcludedPredicate(t){this.excludedPredicate=t}getEnabled(){return this.enabled}getTeleportMode(){return this.teleportMode}getTeleportHeightPercentage(){return this.configuration.teleportHeightPercentage}getKeyboardWalkSpeed(){return this.configuration.keyboardWalkSpeed}getKeyboardPivotDegrees(){return this.configuration.keyboardPivotDegrees}getKeyboardRepeatInterval(){return this.configuration.keyboardRepeatIntervalMs}getConfiguration(){return this.configuration}getKeyBindings(){return this.keyBindings}operationMatches(t,i){return this.keyBindings[t].some((t=>t.matches(i)))}isElementExcluded(t){var i;return!!((i=this.excludedPredicate)===null||i===void 0?void 0:i.call(this,t))}onEnabledChange(t){return this.enabledChanged.on(t)}onTeleportModeChange(t){return this.teleportModeChanged.on(t)}onConfigurationChange(t){return this.configurationChanged.on(t)}onKeyBindingsChange(t){return this.keyBindingsChanged.on(t)}}const C=()=>`:host{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:none}`;const E=i(class t extends e{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.controllerChanged=s(this,"controllerChanged");this.animationsDisabled=false;this.animationMs=500;this.model=new m;this.stateMap={}}componentWillLoad(){this.setupController();this.setupInteractionHandler();this.setDepthBuffers()}connectedCallback(){this.setupInteractionHandler();this.setDepthBuffers()}disconnectedCallback(){this.clearInteractionHandler();this.resetDepthBuffers()}handleModeChange(){var t;(t=this.controller)===null||t===void 0?void 0:t.setTeleportMode(this.mode);if(this.mode!=null){this.setDepthBuffers()}else{this.resetDepthBuffers()}}handleViewerChanged(){this.clearInteractionHandler();this.setupInteractionHandler();this.setDepthBuffers()}handleAnimationMsChanged(){var t;if(this.animationMs!=null){(t=this.interactionHandler)===null||t===void 0?void 0:t.setAnimations({durationMs:this.animationMs})}}handleAnimationsDisabledChanged(){var t,i;if(this.animationsDisabled){(t=this.interactionHandler)===null||t===void 0?void 0:t.setAnimations(undefined)}else if(this.animationMs!=null){(i=this.interactionHandler)===null||i===void 0?void 0:i.setAnimations({durationMs:this.animationMs})}}handleControllerChanged(){this.setupInteractionHandler();this.setupController();this.controllerChanged.emit(this.controller)}handleModelChanged(){this.setupController();this.clearInteractionHandler();this.setupInteractionHandler()}render(){return n(o,{key:"c8a6512176d203d38ae647ccddcfa8adf307f977"})}setupController(){if(this.controller==null){this.controller=new f(this.model);this.controller.setTeleportMode(this.mode);this.controllerChanged.emit(this.controller)}else{this.controller.setTeleportMode(this.mode);this.controller.updateModel(this.model)}}setDepthBuffers(){if(this.mode!=null&&this.viewer!=null&&this.viewer.depthBuffers==null){this.stateMap.shouldClearDepthBuffers=true;this.viewer.depthBuffers="final"}}resetDepthBuffers(){if(this.stateMap.shouldClearDepthBuffers&&this.viewer!=null){this.viewer.depthBuffers=undefined;this.stateMap.shouldClearDepthBuffers=undefined}}clearInteractionHandler(){var t,i;(t=this.interactionHandlerDisposable)===null||t===void 0?void 0:t.dispose();this.interactionHandlerDisposable=undefined;(i=this.interactionHandler)===null||i===void 0?void 0:i.dispose();this.interactionHandler=undefined}async setupInteractionHandler(){var t;if(this.interactionHandler==null){this.interactionHandler=new g(this.model,!this.animationsDisabled&&this.animationMs!=null?{durationMs:this.animationMs}:undefined);this.interactionHandlerDisposable=await((t=this.viewer)===null||t===void 0?void 0:t.registerInteractionHandler(this.interactionHandler))}}static get watchers(){return{mode:[{handleModeChange:0}],viewer:[{handleViewerChanged:0}],animationMs:[{handleAnimationMsChanged:0}],animationsDisabled:[{handleAnimationsDisabledChanged:0}],controller:[{handleControllerChanged:0}],model:[{handleModelChanged:0}]}}static get style(){return C()}},[1,"vertex-viewer-teleport-tool",{viewer:[16],mode:[1025],animationsDisabled:[4,"animations-disabled"],animationMs:[2,"animation-ms"],controller:[1040],model:[1040]},undefined,{mode:[{handleModeChange:0}],viewer:[{handleViewerChanged:0}],animationMs:[{handleAnimationMsChanged:0}],animationsDisabled:[{handleAnimationsDisabledChanged:0}],controller:[{handleControllerChanged:0}],model:[{handleModelChanged:0}]}]);function b(){if(typeof customElements==="undefined"){return}const i=["vertex-viewer-teleport-tool"];i.forEach((i=>{switch(i){case"vertex-viewer-teleport-tool":if(!customElements.get(t(i))){customElements.define(t(i),E)}break}}))}b();export{E as V,m as W,w as a,f as b,b as d};
|
|
5
|
+
//# sourceMappingURL=p-UrT4ZJv3.js.map
|