@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 @@
|
|
|
1
|
+
{"version":3,"names":["sceneTreeTableCellCss","SceneTreeTableCell","constructor","hostRef","this","placeholder","alwaysShowIcons","hovered","displayValue","resp","value","trim","handleCellPointerEnter","_a","hoverController","setHovered","_c","_b","node","id","hex","handleCellPointerLeave","undefined","handleCellPointerUp","event","isScrolling","tree","longPressTimer","selectionHandler","performDefaultSelectionOperation","selectionToggled","emit","originalEvent","clearLongPressTimer","handleCellPointerDown","restartLongPressTimer","createActionPointerUpHandler","action","preventDefault","stopPropagation","blurElement","hostEl","toggleExpansion","async","expansionHandler","performDefaultExpansionOperation","expandToggled","toggleVisibility","visibilityHandler","performDefaultVisibilityOperation","visibilityToggled","isolate","isolateHandler","performDefaultIsolateOperation","isolatePressed","defaultPrevented","button","ctrlKey","metaKey","selected","deselectItem","_d","selectItem","recurseParent","_e","_f","append","range","shiftKey","toggleItemVisibility","isolateItem","toggleExpandItem","componentDidLoad","hoverListener","stateChanged","cellLoaded","disconnectedCallback","dispose","componentWillRender","toggleAttribute","visible","partiallyVisible","isLeaf","endItem","filterHit","render","hiddenStyle","visibility","backgroundColorStyle","getBackgroundColorStyle","endItemIcon","getEndItemIcon","expansionIcon","getExpansionIcon","isolateIcon","getIsolateIcon","visibilityIcon","getVisibilityIcon","showSpaceForExpansionIcon","expandToggle","showSpaceForEndItemIcon","h","Host","key","onPointerEnter","onPointerLeave","onPointerUp","onPointerDown","style","class","name","size","isolateButton","visibilityToggle","attr","setAttribute","removeAttribute","window","clearTimeout","setTimeout","Events.defaultEventConfig","longPressThreshold","getCssVariableWithFallbacks","depth","selectedBackgroundColorStyle","hoveredBackgroundColorStyle","variable","fallbacks","sequencedFallbacks","reverse","reduce","res","s","expanded","endItemIndicator"],"sources":["src/components/scene-tree-table-cell/scene-tree-table-cell.css?tag=vertex-scene-tree-table-cell&encapsulation=shadow","src/components/scene-tree-table-cell/scene-tree-table-cell.tsx"],"sourcesContent":["@import url('../../css/button-reset.css');\n\n:host {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n\n /**\n * @prop --scene-tree-cell-background-hover: A CSS background of a cell when\n * hovered.\n */\n --scene-tree-cell-background-hover: var(--blue-200);\n\n /**\n * @prop --scene-tree-cell-background-selected: A CSS background color of a\n * cell when selected.\n */\n --scene-tree-cell-background-selected: var(--blue-300);\n\n /**\n * @prop --scene-tree-cell-text-positioning: A CSS text alignment\n * value that indicates how text should be positioned.\n */\n --scene-tree-cell-text-positioning: left;\n\n /**\n * @prop --scene-tree-cell-padding: CSS lengths that specifies the amount of\n * padding between the cell's border and content.\n */\n --scene-tree-cell-padding: 0.25rem 0;\n\n font-size: var(--scene-tree-default-font-size, unset);\n font-family: var(--scene-tree-default-font-family, unset);\n color: var(--scene-tree-default-font-color, #444444);\n}\n\n:host([is-hovered]) {\n background: var(--scene-tree-cell-background-hover);\n}\n\n:host([is-selected]) {\n background: var(--scene-tree-cell-background-selected);\n}\n\n.wrapper {\n display: flex;\n align-items: center;\n box-sizing: border-box;\n width: 100%;\n height: 100%;\n padding: var(--scene-tree-cell-padding);\n}\n\n.content {\n width: 100%;\n text-align: var(--scene-tree-cell-text-positioning);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.column-spacer {\n width: var(--scene-tree-table-column-gap);\n}\n\n.expand-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n min-height: 24px;\n}\n\n:host([is-leaf]) .expand-btn,\n:host([is-end-item]) .expand-btn {\n visibility: hidden;\n cursor: default;\n}\n\n.no-shrink {\n flex-shrink: 0;\n}\n\n.end-item-btn {\n cursor: default;\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 24px;\n min-height: 24px;\n}\n\n:host(:not([is-end-item])) .end-item-btn {\n visibility: hidden;\n cursor: default;\n}\n\n.end-item-icon {\n width: 14px;\n height: 14px;\n fill: var(--scene-tree-secondary-font-color, var(--neutral-600));\n}\n\n.visibility-btn,\n.isolate-btn {\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n}\n\n.icon {\n width: 14px;\n height: 14px;\n fill: var(--scene-tree-default-font-color, currentColor);\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Prop,\n} from '@stencil/core';\nimport { Node } from '@vertexvis/scene-tree-protos/scenetree/protos/domain_pb';\nimport { Disposable } from '@vertexvis/utils';\n\nimport { Events } from '../../lib/types';\nimport { SceneTreeOperationHandler } from '../scene-tree/lib/handlers';\nimport { SceneTreeCellHoverController } from '../scene-tree-table-layout/lib/hover-controller';\nimport { ViewerIconName } from '../viewer-icon/viewer-icon';\nimport { blurElement } from './utils';\n\nexport interface SceneTreeTableCellEventDetails {\n node?: Node.AsObject;\n originalEvent: PointerEvent;\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-cell',\n styleUrl: 'scene-tree-table-cell.css',\n shadow: true,\n})\nexport class SceneTreeTableCell {\n /**\n * The node data that is associated to the row that this cell belongs to.\n * Contains information related to if the node is expanded, visible, etc.\n */\n @Prop()\n public node?: Node.AsObject;\n\n /**\n * A reference to the scene tree to perform operations for interactions. Such\n * as expansion, visibility and selection.\n */\n @Prop()\n public tree?: HTMLVertexSceneTreeElement;\n\n /**\n * The value to display in this cell.\n */\n @Prop()\n public value?: string;\n\n /**\n * The value to display in this cell if the `value` specified is\n * undefined. Defaults to \"--\".\n */\n @Prop()\n public placeholder = '--';\n\n /**\n * Whether to always show the requested icons in the cell. If false,\n * the icons will only appear when hovering over the cell.\n */\n @Prop()\n public alwaysShowIcons = false;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public hovered = false;\n\n /**\n * @internal\n */\n @Prop()\n public isScrolling?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the expanded state of\n * the node associated with this cell.\n */\n @Prop()\n public expandToggle?: boolean;\n\n /**\n * Indicates whether to display an indicator that the node associated with\n * this cell is an end item.\n */\n @Prop()\n public endItemIndicator?: boolean;\n\n /**\n * Indicates whether to display a button for toggling the visibility state of\n * the node associated with this cell.\n */\n @Prop()\n public visibilityToggle?: boolean;\n\n /**\n * Indicates whether to display a button for isolating (show only + fly to)\n * the node associated with this cell.\n */\n @Prop()\n public isolateButton?: boolean;\n\n /**\n * An optional handler that will override this cell's default selection\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public selectionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default visibility\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public visibilityHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default expansion\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public expansionHandler?: SceneTreeOperationHandler;\n\n /**\n * An optional handler that will override this cell's default isolate\n * behavior. The registered handler will receive the `pointerup` event,\n * the node data for the row this cell is associated with, and a reference\n * to the parent `<vertex-scene-tree>` element for performing operations.\n */\n @Prop()\n public isolateHandler?: SceneTreeOperationHandler;\n\n /**\n * @internal\n */\n @Prop()\n public hoverController?: SceneTreeCellHoverController;\n\n /**\n * An event that is emitted when a user requests to expand the node. This is\n * emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public expandToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's\n * visibility. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public visibilityToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to change the node's selection\n * state. This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public selectionToggled!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * An event that is emitted when a user requests to isolate the node.\n * This event is emitted even if interactions are disabled.\n */\n @Event({ bubbles: true })\n public isolatePressed!: EventEmitter<SceneTreeTableCellEventDetails>;\n\n /**\n * Used for internals or testing.\n *\n * @private\n */\n @Event({ bubbles: true })\n public cellLoaded!: EventEmitter<void>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n private hoverListener?: Disposable;\n\n private longPressTimer?: number;\n\n public componentDidLoad(): void {\n this.hoverListener = this.hoverController?.stateChanged((id?: string) => {\n this.hovered = id === this.node?.id?.hex;\n });\n\n this.cellLoaded.emit();\n this.clearLongPressTimer();\n }\n\n public disconnectedCallback(): void {\n this.hoverListener?.dispose();\n this.clearLongPressTimer();\n }\n\n public componentWillRender(): void {\n this.toggleAttribute('is-hovered', this.hovered);\n this.toggleAttribute('is-hidden', !this.node?.visible);\n this.toggleAttribute('is-selected', !!this.node?.selected);\n this.toggleAttribute('is-partial', !!this.node?.partiallyVisible);\n this.toggleAttribute('is-leaf', !!this.node?.isLeaf);\n this.toggleAttribute('is-end-item', !!this.node?.endItem);\n this.toggleAttribute('is-filter-hit', !!this.node?.filterHit);\n }\n\n public render(): h.JSX.IntrinsicElements {\n // Overrides the `.hydrated` visibility when we have nothing to display\n const hiddenStyle =\n this.node == null ? { visibility: 'hidden' } : undefined;\n const backgroundColorStyle = this.getBackgroundColorStyle();\n\n const endItemIcon = this.getEndItemIcon();\n const expansionIcon = this.getExpansionIcon();\n const isolateIcon = this.getIsolateIcon();\n const visibilityIcon = this.getVisibilityIcon();\n\n const showSpaceForExpansionIcon = this.expandToggle && !endItemIcon;\n const showSpaceForEndItemIcon = endItemIcon && !showSpaceForExpansionIcon;\n\n return (\n <Host\n onPointerEnter={this.handleCellPointerEnter}\n onPointerLeave={this.handleCellPointerLeave}\n onPointerUp={this.handleCellPointerUp}\n onPointerDown={this.handleCellPointerDown}\n style={{\n ...hiddenStyle,\n 'background-color': backgroundColorStyle,\n }}\n >\n <div class=\"wrapper\">\n <div class=\"no-shrink\">\n <slot name=\"left-gutter\" />\n </div>\n {showSpaceForExpansionIcon && (\n <button\n class=\"expand-btn no-shrink\"\n data-testid={'expand-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleExpansion,\n )}\n >\n {expansionIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={expansionIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n {showSpaceForEndItemIcon && (\n <button\n class=\"end-item-btn no-shrink\"\n data-testid={'end-item-' + this.node?.name}\n >\n {endItemIcon && (\n <vertex-viewer-icon\n class=\"end-item-icon\"\n name={endItemIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n\n <div class=\"content\">\n {this.value != null && this.value.trim() !== '' ? (\n <slot>{this.displayValue()}</slot>\n ) : (\n <slot name=\"placeholder\">{this.placeholder}</slot>\n )}\n </div>\n {this.isolateButton && (\n <button\n class=\"isolate-btn no-shrink\"\n data-testid={'isolate-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(this.isolate)}\n >\n {isolateIcon && (\n <vertex-viewer-icon class=\"icon\" name=\"locate\" size=\"sm\" />\n )}\n </button>\n )}\n {this.visibilityToggle && (\n <button\n class=\"visibility-btn no-shrink\"\n data-testid={'visibility-btn-' + this.node?.name}\n onPointerUp={this.createActionPointerUpHandler(\n this.toggleVisibility,\n )}\n >\n {visibilityIcon && (\n <vertex-viewer-icon\n class=\"icon\"\n name={visibilityIcon}\n size=\"sm\"\n />\n )}\n </button>\n )}\n <div class=\"no-shrink\">\n <slot name=\"right-gutter\" />\n </div>\n {!this.visibilityToggle && !this.isolateButton && (\n <div class=\"column-spacer\" />\n )}\n </div>\n </Host>\n );\n }\n\n private displayValue = (): string => {\n const resp =\n this.value == null || this.value.trim() === ''\n ? this.placeholder\n : this.value;\n\n return resp;\n };\n\n private handleCellPointerEnter = (): void => {\n this.hoverController?.setHovered(this.node?.id?.hex);\n };\n\n private handleCellPointerLeave = (): void => {\n this.hoverController?.setHovered(undefined);\n };\n\n private handleCellPointerUp = (event: PointerEvent): void => {\n if (\n !this.isScrolling &&\n this.node != null &&\n this.tree != null &&\n this.longPressTimer != null\n ) {\n if (this.selectionHandler != null) {\n this.selectionHandler(event, this.node, this.tree);\n } else {\n this.performDefaultSelectionOperation(event);\n }\n this.selectionToggled.emit({ node: this.node, originalEvent: event });\n }\n this.clearLongPressTimer();\n };\n\n private handleCellPointerDown = (event: PointerEvent): void => {\n this.restartLongPressTimer();\n };\n\n private createActionPointerUpHandler = (\n action: (event: PointerEvent) => void,\n ): ((event: PointerEvent) => void) => {\n return (event) => {\n // Blur the `hostEl` after a `preventDefault` to clear focus that\n // is left on the element after `pointerdown` event.\n event.preventDefault();\n event.stopPropagation();\n blurElement(this.hostEl);\n\n action(event);\n };\n };\n\n private toggleExpansion = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.expansionHandler != null) {\n this.expansionHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultExpansionOperation(this.node, this.tree);\n }\n this.expandToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleVisibility = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.visibilityHandler != null) {\n this.visibilityHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultVisibilityOperation(this.node, this.tree);\n }\n this.visibilityToggled.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private toggleAttribute(attr: string, value: boolean): void {\n if (value) {\n this.hostEl.setAttribute(attr, '');\n } else {\n this.hostEl.removeAttribute(attr);\n }\n }\n\n private isolate = async (event: PointerEvent): Promise<void> => {\n if (this.tree != null && this.node != null) {\n if (this.isolateHandler != null) {\n this.isolateHandler(event, this.node, this.tree);\n } else {\n await this.performDefaultIsolateOperation(this.node, this.tree);\n }\n this.isolatePressed.emit({ node: this.node, originalEvent: event });\n }\n };\n\n private performDefaultSelectionOperation = (event: PointerEvent): void => {\n if (!event.defaultPrevented && event.button === 0) {\n if ((event.ctrlKey || event.metaKey) && this.node?.selected) {\n this.tree?.deselectItem(this.node);\n } else if (this.node?.selected) {\n this.tree?.selectItem(this.node, {\n recurseParent: true,\n });\n } else if (!this.node?.selected) {\n this.tree?.selectItem(this.node, {\n append: event.ctrlKey || event.metaKey,\n range: event.shiftKey,\n });\n }\n }\n };\n\n private performDefaultVisibilityOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement,\n ): Promise<void> => {\n await tree.toggleItemVisibility(node);\n };\n\n private performDefaultIsolateOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement,\n ): Promise<void> => {\n await tree.isolateItem(node);\n };\n\n private performDefaultExpansionOperation = async (\n node: Node.AsObject,\n tree: HTMLVertexSceneTreeElement,\n ): Promise<void> => {\n await tree.toggleExpandItem(node);\n };\n\n private clearLongPressTimer(): void {\n if (this.longPressTimer != null) {\n window.clearTimeout(this.longPressTimer);\n }\n this.longPressTimer = undefined;\n }\n\n private restartLongPressTimer(): void {\n this.clearLongPressTimer();\n this.longPressTimer = window.setTimeout(() => {\n this.clearLongPressTimer();\n }, Events.defaultEventConfig.longPressThreshold);\n }\n\n private getBackgroundColorStyle(): string {\n const backgroundColorStyle = this.getCssVariableWithFallbacks(\n `--scene-tree-row-background-color-depth-${this.node?.depth}`,\n '--scene-tree-row-background-color',\n );\n const selectedBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-selected-row-background-color',\n '--scene-tree-cell-background-selected',\n );\n const hoveredBackgroundColorStyle = this.getCssVariableWithFallbacks(\n '--scene-tree-hovered-row-background-color',\n '--scene-tree-cell-background-hover',\n );\n\n if (!!this.node?.selected) {\n return selectedBackgroundColorStyle;\n } else if (this.hovered) {\n return hoveredBackgroundColorStyle;\n }\n return backgroundColorStyle;\n }\n\n private getCssVariableWithFallbacks(\n variable: string,\n ...fallbacks: string[]\n ): string {\n const sequencedFallbacks = [...fallbacks].reverse();\n\n return [...sequencedFallbacks, variable].reduce(\n (res, s) => `var(${s}, ${res})`,\n 'unset',\n );\n }\n\n private getIsolateIcon(): ViewerIconName | undefined {\n if (this.hovered || this.alwaysShowIcons) {\n return 'locate';\n }\n return undefined;\n }\n\n private getExpansionIcon(): ViewerIconName | undefined {\n if (!this.node?.isLeaf && !this.node?.endItem) {\n return this.node?.expanded ? 'chevron-down' : 'chevron-right';\n }\n return undefined;\n }\n\n private getEndItemIcon(): ViewerIconName | undefined {\n // Return the end item icon for an item if it is set as an end item and either is not a leaf item\n // or matches the filter. Note that in the filtered view, an end item matching the filter will always be\n // marked as a leaf node because its children will be excluded from the search results and therefore\n // not present in the filtered tree.\n if (\n this.endItemIndicator &&\n this.node?.endItem &&\n (!this.node?.isLeaf || this.node?.filterHit)\n ) {\n return 'lock';\n }\n return undefined;\n }\n\n private getVisibilityIcon(): ViewerIconName | undefined {\n if (\n (this.hovered || this.alwaysShowIcons) &&\n !this.node?.partiallyVisible &&\n this.node?.visible\n ) {\n return 'eye-open';\n } else if (!this.node?.partiallyVisible && !this.node?.visible) {\n return 'eye-half';\n } else if (this.node?.partiallyVisible) {\n return 'eye-half-dotted';\n }\n return undefined;\n }\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{h as t,r as o,c as e,H as r,a as i}from"./p-CCVkga9Q.js";import{b as n,g as s}from"./p-CIBBr-p1.js";import{w as h}from"./p-BxtKMwBH.js";import{g as a}from"./p-Bg-uS9BH.js";import{p as c,e as d,g as l,a as u}from"./p-CZZALKHT.js";import{i as p,a as w,b as v,p as f,c as b,d as m,e as g,f as k,g as x,h as C,j as P}from"./p-UQXG8bCI.js";import{c as y}from"./p-Dw4-tG-V.js";import"./p-CG9AChtV.js";function D(t,o){switch(o){case"top-left":return c.create(t.x,t.y);case"top":return c.create(t.x+t.width/2,t.y);case"top-right":return c.create(t.x+t.width,t.y);case"right":return c.create(t.x+t.width,t.y+t.height/2);case"bottom-right":return c.create(t.x+t.width,t.y+t.height);case"bottom":return c.create(t.x+t.width/2,t.y+t.height);case"bottom-left":return c.create(t.x,t.y+t.height);case"left":return c.create(t.x,t.y+t.height/2);case"center":return l.center(t)}}function A(t,o,e=o,r="none",i=1){const n=Math.min(o.width/e.width,o.height/e.height);const s=n*i;const h=E(e);const a=c.add(c.scale(t,h,h),d.center(e));const l=e.width*s;const u=e.height*s;const p=r==="both"||r==="x-only"?Math.max(0,(o.width-l)/2):0;const w=r==="both"||r==="y-only"?Math.max(0,(o.height-u)/2):0;return c.create(a.x*s+p,a.y*s+w)}function S(t,o,e=o,r=1){const i=Math.min(o.width/e.width,o.height/e.height);const n=i*r;const s=E(e);const h=d.scale(s,s,t);return d.scale(n,n,h)}function M(t,o,e,r="none",i=1){const n=A(t,o,e,r,i);const s=S(t,o,e,i);return l.fromPointAndDimensions(n,s)}function B(t,o,e=o,r="none",i=1,s=c.create(0,0)){const h=Math.min(o.width/e.width,o.height/e.height);const a=h*i;const l=e.width*a;const u=e.height*a;const p=r==="both"||r==="x-only"?Math.max(0,(o.width-l)/2):0;const w=r==="both"||r==="y-only"?Math.max(0,(o.height-u)/2):0;const v=c.subtract(t,c.scale(s,1/n(),1/n()));const f=c.create((v.x-p)/a,(v.y-w)/a);const b=E(e);const m=c.subtract(f,d.center(e));return c.scale(m,1/b,1/b)}function $(t,o,e){return t.map((t=>c.add(c.scale(c.subtract(t,o),e.width/(o.width||1),e.height/(o.height||1)),e)))}function T(t,o,e){const r=l.fromPoints(t,o);if(e){const e=Math.max(r.width,r.height);const i=r.height>r.width;const n=o.x<=t.x;const s=o.y<=t.y;const h=n?i?t.x-e:o.x:t.x;const a=s?i?o.y:t.y-e:t.y;return l.create(h,a,e,e)}else{return r}}function V(t,o,e,r,i){const n=c.subtract(e,o);const{x:s,y:h,width:a,height:d}=t;const u=s+a;const p=h+d;const w=c.create(s,h);const v=c.create(s,p);const f=c.create(u,h);const b=c.create(u,p);switch(r){case"top-left":return T(b,e,!!i);case"top":return T(b,c.create(s,e.y),!!i);case"top-right":return T(v,e,!!i);case"right":return T(v,c.create(e.x,h),!!i);case"bottom-right":return T(w,e,!!i);case"bottom":return T(w,c.create(u,e.y),!!i);case"bottom-left":return T(f,e,!!i);case"left":return T(b,c.create(e.x,h),!!i);case"center":return l.create(t.x+n.x,t.y+n.y,t.width,t.height)}}function L(t){return p(t)||w(t)||v(t)}function R(...t){return t.every((t=>!Number.isNaN(t.x)&&!Number.isNaN(t.y)))}function I(t){const o=t.target;return L(o)&&o.mode!=="edit"}function E(t){return t.height}const j=({id:o,transform:e,rotation:r,name:i,point:n,onPointerDown:s},h)=>t("div",{id:o,class:"bounds-anchor-position",style:{top:`${n.y}px`,left:`${n.x}px`},onTouchStart:t=>t.preventDefault(),onPointerDown:s},t("div",{style:{transform:e}},t("div",{class:"bounds-anchor",style:{transform:`rotateZ(${r!==null&&r!==void 0?r:0}deg)`}},t("slot",{name:i},h))));const F=({id:o,scale:e})=>{const r=e!==null&&e!==void 0?e:1;const i=Math.max(10,10*r);const n=Math.max(10,10*r);const s=Math.max(120,110*r+i);const h=Math.max(120,110*r+n);return t("filter",{id:o,filterUnits:"userSpaceOnUse",x:`${-i}%`,y:`${-n}%`,width:`${s}%`,height:`${h}%`},t("feGaussianBlur",{in:"SourceAlpha",stdDeviation:"2"}),t("feOffset",{dx:"0",dy:"1",result:"offsetblur"}),t("feFlood",{"flood-color":"#000000","flood-opacity":"0.25"}),t("feComposite",{in2:"offsetblur",operator:"in"}),t("feMerge",null,t("feMergeNode",null),t("feMergeNode",{in:"SourceGraphic"})))};class _{constructor(t){this.handlePointerDown=t=>{this.handleInteractionAttempt(t)};this.handlePointerMove=t=>{this.handleInteractionMove(t)};this.handlePointerUp=t=>{window.removeEventListener("pointermove",this.handlePointerMove);window.removeEventListener("pointerup",this.handlePointerUp);this.handleInteractionEnd(t)};this.resizeObserver=new ResizeObserver((([t])=>{this.elementBounds=this.computeBoundingRect()}));this.scalingOptions=t!==null&&t!==void 0?t:{}}initialize(t){this.element=t;this.elementBounds=this.computeBoundingRect();this.resizeObserver.observe(this.element);this.element.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var t;this.resizeObserver.disconnect();(t=this.element)===null||t===void 0?void 0:t.removeEventListener("pointerdown",this.handlePointerDown);this.element=undefined}updateScalingOptions(t){this.scalingOptions={...this.scalingOptions,...t}}getScalingOptions(){return this.scalingOptions}acceptInteraction(){window.addEventListener("pointermove",this.handlePointerMove);window.addEventListener("pointerup",this.handlePointerUp)}}class z extends _{constructor(t,o,e,r){super(r);this.markupEl=t;this.interactionBegin=o;this.interactionEnd=e;this.anchor="end"}editAnchor(t,o){if(this.markupEl.mode==="edit"){this.anchor=t;this.startInteraction(o)}}startInteraction(t){this.handleInteractionAttempt(t)}computeBoundingRect(){return a(this.markupEl)}handleInteractionAttempt(t){var o;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){this.pointerId=t.pointerId;this.markupEl.start=(o=this.markupEl.start)!==null&&o!==void 0?o:B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(t){if(this.elementBounds!=null&&this.pointerId===t.pointerId){const o=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);if(this.anchor==="start"){this.markupEl.start=o}else if(this.anchor==="end"){this.markupEl.end=o}else if(this.markupEl.start!=null&&this.markupEl.end!=null){const t=c.create((this.markupEl.start.x+this.markupEl.end.x)/2,(this.markupEl.start.y+this.markupEl.end.y)/2);const e=t.x-o.x;const r=t.y-o.y;this.markupEl.start=c.create(this.markupEl.start.x-e,this.markupEl.start.y-r);this.markupEl.end=c.create(this.markupEl.end.x-e,this.markupEl.end.y-r)}}}handleInteractionEnd(t){if(this.pointerId===t.pointerId){const t=this.markupEl.start!=null&&this.elementBounds!=null?A(this.markupEl.start,this.elementBounds):undefined;const o=this.markupEl.end!=null&&this.elementBounds!=null?A(this.markupEl.end,this.elementBounds):undefined;if(this.markupEl.mode!==""&&t!=null&&o!=null&&c.distance(t,o)>=2){const t=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:t})}else{this.markupEl.start=undefined;this.markupEl.end=undefined}this.pointerId=undefined}}}const O=({start:o,end:e,offset:r,onStartAnchorPointerDown:i,onCenterAnchorPointerDown:n,onEndAnchorPointerDown:s})=>{const h=u.normalize(u.toDegrees(u.fromPoints(o,e))-270);const a=c.create((o.x+e.x)/2,(o.y+e.y)/2);const d=r!=null?`translate(${r.x}px, ${r.y}px)`:undefined;return t("div",{class:"bounds-container"},t(j,{transform:d,id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:h,point:o,onPointerDown:i},t("div",{class:y("bounds-default-anchor","bounds-cap-anchor")})),t(j,{transform:d,id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:h,point:e,onPointerDown:s},t("div",{class:y("bounds-default-anchor","bounds-cap-anchor")})),t(j,{transform:d,id:"bounding-box-1d-center-anchor",name:"center-anchor",point:a,onPointerDown:n},t("div",{class:y("bounds-default-anchor","bounds-center-anchor")})))};const J=()=>`: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 G=class{constructor(t){o(this,t);this.interactionBegin=e(this,"interactionBegin");this.interactionEnd=e(this,"interactionEnd");this.centeringBehavior="none";this.scale=1;this.startLineAnchorStyle="none";this.endLineAnchorStyle="arrow-triangle";this.mode="";this.interactionHandler=new z(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=t=>{if(I(t)){this.interactionHandler.startInteraction(t)}};this.handleTouchStart=t=>{t.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps();const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var t;(t=this.registeredInteraction)===null||t===void 0?void 0:t.dispose();this.registeredInteraction=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(t){var o;(o=this.registeredInteraction)===null||o===void 0?void 0:o.dispose();this.registeredInteraction=undefined;if(t!=null){this.registeredInteraction=await t.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 t,o;this.hostEl.style.setProperty("--viewer-markup-arrow-scale",(o=(t=this.scale)===null||t===void 0?void 0:t.toString())!==null&&o!==void 0?o:"1")}))}updateViewport(){const t=a(this.hostEl);this.elementBounds=t}updatePointsFromProps(){this.start=this.start||f(this.startJson);this.end=this.end||f(this.endJson)}renderLineAnchorStyle(o,e){if(o==="arrow-triangle"){return t("polygon",{id:"line-anchor-arrow-triangle",class:"head",points:b(e,this.scale)})}else if(o==="arrow-line"){return t("path",{id:"line-anchor-arrow-line",class:"head",d:m(e,this.scale)})}else if(o==="hash"){const o=g(e,this.scale);return t("line",{id:"line-anchor-hash",class:"head",...o})}else if(o==="dot"){const o=k(e,this.scale);return t("circle",{id:"line-anchor-circle",class:"head",...o})}else{return t("div",null)}}render(){var o,e,i,s;if(this.start!=null&&this.end!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=this.elementBounds;const a=((e=(o=this.offset)===null||o===void 0?void 0:o.x)!==null&&e!==void 0?e:0)/n();const c=((s=(i=this.offset)===null||i===void 0?void 0:i.y)!==null&&s!==void 0?s:0)/n();const d=A(this.start,h,this.originatingViewport,this.centeringBehavior,this.scale);const l=A(this.end,h,this.originatingViewport,this.centeringBehavior,this.scale);if(R(d,l)){const o=x(l,d);const e=x(d,l);return t(r,null,t("svg",{class:"svg",onTouchStart:this.handleTouchStart},t("defs",null,t(F,{id:"arrow-shadow",scale:this.scale})),t("g",{transform:`translate(${a} ${c})`,filter:"url(#arrow-shadow)"},this.renderLineAnchorStyle(this.startLineAnchorStyle,o),t("line",{id:"arrow-line",class:"line",x1:e.tip.x,y1:e.tip.y,x2:o.tip.x,y2:o.tip.y}),this.renderLineAnchorStyle(this.endLineAnchorStyle,e)),this.mode==="edit"&&t("g",{transform:`translate(${a} ${c})`},t("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:d.x,y1:d.y,x2:l.x,y2:l.y}))),this.mode==="edit"&&t(O,{start:d,end:l,offset:{x:a,y:c},onStartAnchorPointerDown:t=>this.interactionHandler.editAnchor("start",t),onCenterAnchorPointerDown:t=>this.interactionHandler.editAnchor("center",t),onEndAnchorPointerDown:t=>this.interactionHandler.editAnchor("end",t)}),this.mode==="create"&&t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return t(r,null)}}else{return t(r,null,t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return i(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}]}}};G.style=J();class H extends _{constructor(t,o,e,r){super(r);this.markupEl=t;this.interactionBegin=o;this.interactionEnd=e;this.anchor="bottom-right"}editAnchor(t,o){if(this.markupEl.mode==="edit"){this.anchor=t;this.resizeBounds=this.markupEl.bounds;this.startInteraction(o)}}startInteraction(t){this.handleInteractionAttempt(t)}computeBoundingRect(){return a(this.markupEl)}handleInteractionAttempt(t){var o;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){const e=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.pointerId=t.pointerId;this.startPosition=e;this.markupEl.bounds=(o=this.markupEl.bounds)!==null&&o!==void 0?o:l.create(e.x,e.y,0,0);this.resizeBounds=this.markupEl.bounds;this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(t){var o;if(this.markupEl.bounds!=null&&this.startPosition!=null&&this.elementBounds!=null&&this.pointerId===t.pointerId){const e=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.markupEl.bounds=V((o=this.resizeBounds)!==null&&o!==void 0?o:this.markupEl.bounds,this.startPosition,e,this.anchor,t.shiftKey)}}handleInteractionEnd(t){var o,e;if(this.pointerId===t.pointerId){if(this.markupEl.mode!==""&&this.markupEl.bounds!=null&&((o=this.markupEl.bounds)===null||o===void 0?void 0:o.width)>0&&((e=this.markupEl.bounds)===null||e===void 0?void 0:e.height)>0){this.anchor="bottom-right";const t=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:t})}else{this.markupEl.bounds=undefined}this.pointerId=undefined}}}const N=({bounds:o,offset:e,onTopLeftAnchorPointerDown:r,onLeftAnchorPointerDown:i,onTopRightAnchorPointerDown:n,onRightAnchorPointerDown:s,onBottomLeftAnchorPointerDown:h,onBottomAnchorPointerDown:a,onBottomRightAnchorPointerDown:c,onTopAnchorPointerDown:d,onCenterAnchorPointerDown:u})=>{const p=l.pad(o,6);const w=l.center(p);const v=e!=null?`translate(${e.x}px, ${e.y}px)`:undefined;return t("div",{class:"bounds-container"},t("div",{class:"bounds-outline",style:{top:`${p.y}px`,left:`${p.x}px`,width:`${p.width}px`,height:`${p.height}px`,transform:v}}),t(j,{transform:v,id:"bounding-box-2d-top-left-anchor",name:"top-left-anchor",point:D(p,"top-left"),onPointerDown:r},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-left-anchor",name:"left-anchor",point:D(p,"left"),onPointerDown:i},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-top-right-anchor",name:"top-right-anchor",point:D(p,"top-right"),onPointerDown:n},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-right-anchor",name:"right-anchor",point:D(p,"right"),onPointerDown:s},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-bottom-left-anchor",name:"bottom-left-anchor",point:D(p,"bottom-left"),onPointerDown:h},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-bottom-anchor",name:"bottom-anchor",point:D(p,"bottom"),onPointerDown:a},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-bottom-right-anchor",name:"bottom-right-anchor",point:D(p,"bottom-right"),onPointerDown:c},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-top-anchor",name:"top-anchor",point:D(p,"top"),onPointerDown:d},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-center-anchor",name:"center-anchor",point:w,onPointerDown:u},t("div",{class:y("bounds-default-anchor","bounds-center-anchor")})))};const U=()=>`: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 W=class{constructor(t){o(this,t);this.interactionBegin=e(this,"interactionBegin");this.interactionEnd=e(this,"interactionEnd");this.mode="";this.centeringBehavior="none";this.scale=1;this.interactionHandler=new H(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=t=>{if(I(t)){this.interactionHandler.startInteraction(t)}};this.handleTouchStart=t=>{t.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps();const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var t;(t=this.registeredHandler)===null||t===void 0?void 0:t.dispose();this.registeredHandler=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(t){var o;(o=this.registeredHandler)===null||o===void 0?void 0:o.dispose();this.registeredHandler=undefined;if(t!=null){this.registeredHandler=await t.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(){h((()=>{this.hostEl.style.setProperty("--viewer-markup-circle-scale",this.scale.toString())}))}updateViewport(){const t=a(this.hostEl);this.elementBounds=t}updateBoundsFromProps(){var t;this.bounds=(t=this.bounds)!==null&&t!==void 0?t:C(this.boundsJson)}render(){var o,e,i,s;if(this.bounds!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=M(this.bounds,this.elementBounds,this.originatingViewport,this.centeringBehavior,this.scale);const a=l.center(h);const c=((e=(o=this.offset)===null||o===void 0?void 0:o.x)!==null&&e!==void 0?e:0)/n();const d=((s=(i=this.offset)===null||i===void 0?void 0:i.y)!==null&&s!==void 0?s:0)/n();return t(r,null,t("svg",{class:"svg",onTouchStart:this.handleTouchStart},t("defs",null,t(F,{id:"circle-shadow",scale:this.scale})),t("g",{transform:`translate(${c} ${d})`,filter:"url(#circle-shadow)"},t("ellipse",{class:"ellipse",cx:a.x,cy:a.y,rx:h.width/2,ry:h.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),this.mode==="edit"&&t(N,{bounds:h,offset:{x:c,y:d},onTopLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-left",t),onTopRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-right",t),onTopAnchorPointerDown:t=>this.interactionHandler.editAnchor("top",t),onBottomLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-left",t),onBottomRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-right",t),onBottomAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom",t),onLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("left",t),onRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("right",t),onCenterAnchorPointerDown:t=>this.interactionHandler.editAnchor("center",t)}),this.mode==="create"&&t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return t(r,null,t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return i(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}]}}};W.style=U();class Z extends _{constructor(t,o,e,r){super(r);this.markupEl=t;this.interactionBegin=o;this.interactionEnd=e;this.anchor="bottom-right";this.handleResizeInteractionMove=t=>{if(this.resizeStartPosition!=null&&this.elementBounds!=null&&this.resizeBounds!=null&&this.resizePoints!=null){const o=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);const e=V(this.resizeBounds,this.resizeStartPosition,o,this.anchor,t.shiftKey);this.markupEl.points=$(this.resizePoints,this.resizeBounds,e);this.markupEl.bounds=e}};this.handleResizeInteractionEnd=t=>{window.removeEventListener("pointermove",this.handleResizeInteractionMove);window.removeEventListener("pointerup",this.handleResizeInteractionEnd);this.resizeBounds=undefined;const o=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:o})}}editAnchor(t,o){if(this.markupEl.mode==="edit"&&this.elementBounds!=null){this.resizeBounds=this.markupEl.bounds;this.resizePoints=this.markupEl.points;this.anchor=t;this.resizeStartPosition=B(s(o,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);window.addEventListener("pointermove",this.handleResizeInteractionMove);window.addEventListener("pointerup",this.handleResizeInteractionEnd)}}startInteraction(t){this.handleInteractionAttempt(t)}computeBoundingRect(){return a(this.markupEl)}handleInteractionAttempt(t){var o;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){this.pointerId=t.pointerId;const e=s(t,this.elementBounds);const r=B(e,this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.updateMinAndMax(r);this.markupEl.points=(o=this.markupEl.points)!==null&&o!==void 0?o:[r];this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(t){if(this.pointerId===t.pointerId&&this.markupEl.points!=null&&this.elementBounds!=null){const o=s(t,this.elementBounds);const e=B(o,this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.updateMinAndMax(e);this.markupEl.points=[...this.markupEl.points,e]}}handleInteractionEnd(t){if(this.pointerId===t.pointerId){if(this.markupEl.mode!==""&&this.markupEl.points!=null&&this.markupEl.points.length>2&&this.elementBounds!=null){const o=s(t,this.elementBounds);const e=B(o,this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.updateMinAndMax(e);this.markupEl.points=[...this.markupEl.points,e];const r=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:r})}else{this.markupEl.points=undefined}this.min=undefined;this.max=undefined;this.pointerId=undefined}}updateMinAndMax(t){this.min=this.min!=null?c.create(Math.min(this.min.x,t.x),Math.min(this.min.y,t.y)):t;this.max=this.max!=null?c.create(Math.max(this.max.x,t.x),Math.max(this.max.y,t.y)):t;this.markupEl.bounds=l.create(this.min.x,this.min.y,this.max.x-this.min.x,this.max.y-this.min.y)}}const K=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-freeform-stroke-color:var(--red-800);--viewer-markup-freeform-stroke-width:4px;--viewer-markup-freeform-line-join:round;--viewer-markup-freeform-line-cap:round;--viewer-markup-freeform-bounds-outline-border-color:var(--blue-400);--viewer-markup-freeform-bounds-outline-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-freeform-bounds-edge-anchor-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-background-color:white;--viewer-markup-freeform-bounds-center-anchor-border-color:white;--viewer-markup-freeform-bounds-center-anchor-border-width:1px;--viewer-markup-freeform-bounds-center-anchor-background-color:var( --blue-400 );--viewer-markup-freeform-bounds-anchor-width:9px;--viewer-markup-freeform-bounds-anchor-height:9px;--viewer-markup-freeform-scale:1}.svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.path{pointer-events:auto;cursor:default;stroke:var(--viewer-markup-freeform-stroke-color);stroke-width:calc( var(--viewer-markup-freeform-stroke-width) * var(--viewer-markup-freeform-scale) );stroke-linejoin:var(--viewer-markup-freeform-line-join);stroke-linecap:var(--viewer-markup-freeform-line-cap)}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.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-freeform-bounds-outline-border-width);border-color:var(--viewer-markup-freeform-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-freeform-bounds-anchor-width);height:var(--viewer-markup-freeform-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-freeform-bounds-center-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-center-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-freeform-bounds-center-anchor-background-color )}.bounds-edge-anchor{border-width:var(--viewer-markup-freeform-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-edge-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-freeform-bounds-edge-anchor-background-color )}`;const Q=class{constructor(t){o(this,t);this.interactionBegin=e(this,"interactionBegin");this.interactionEnd=e(this,"interactionEnd");this.mode="";this.centeringBehavior="none";this.scale=1;this.screenPoints=[];this.interactionHandler=new Z(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=t=>{if(I(t)){this.interactionHandler.startInteraction(t)}};this.handleTouchStart=t=>{t.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updatePointsFromProps()}componentDidLoad(){const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var t;(t=this.registeredInteraction)===null||t===void 0?void 0:t.dispose();this.registeredInteraction=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(t){var o;(o=this.registeredInteraction)===null||o===void 0?void 0:o.dispose();this.registeredInteraction=undefined;if(t!=null){this.registeredInteraction=await t.registerBasicInteractionHandler(this.interactionHandler)}}recomputePointsFromProps(){this.updatePointsFromProps()}handleScalingConfigurationChange(){this.interactionHandler.updateScalingOptions({scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior})}handleScaleChange(){h((()=>{this.hostEl.style.setProperty("--viewer-markup-freeform-scale",this.scale.toString())}))}handleModeChange(){if(this.mode!=="create"){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}}updateViewport(){var t;const o=a(this.hostEl);this.elementBounds=o;this.screenPoints=(t=this.convertPointsToScreen())!==null&&t!==void 0?t:this.screenPoints}updatePointsFromProps(){var t,o,e;this.points=(t=this.points)!==null&&t!==void 0?t:P(this.pointsJson);this.screenPoints=(o=this.convertPointsToScreen())!==null&&o!==void 0?o:[];this.bounds=(e=this.bounds)!==null&&e!==void 0?e:C(this.boundsJson)}render(){var o,e,i,s;if(this.screenPoints.length>0&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=((e=(o=this.offset)===null||o===void 0?void 0:o.x)!==null&&e!==void 0?e:0)/n();const a=((s=(i=this.offset)===null||i===void 0?void 0:i.y)!==null&&s!==void 0?s:0)/n();return t(r,null,t("svg",{class:"svg",onTouchStart:this.handleTouchStart},t("defs",null,t(F,{id:"freeform-markup-shadow",scale:this.scale})),t("g",{transform:`translate(${h} ${a})`,filter:"url(#freeform-markup-shadow)"},t("path",{class:"path",d:this.screenPoints.reduce(((t,o)=>`${t}L${o.x},${o.y}`),`M${this.screenPoints[0].x},${this.screenPoints[0].y}`),fill:"none"}))),this.mode==="edit"&&this.bounds!=null&&t(N,{bounds:M(this.bounds,this.elementBounds,this.originatingViewport,this.centeringBehavior,this.scale),offset:{x:h,y:a},onTopLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-left",t),onTopRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-right",t),onTopAnchorPointerDown:t=>this.interactionHandler.editAnchor("top",t),onBottomLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-left",t),onBottomRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-right",t),onBottomAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom",t),onLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("left",t),onRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("right",t),onCenterAnchorPointerDown:t=>this.interactionHandler.editAnchor("center",t)}),this.mode==="create"&&t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return t(r,null,t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}convertPointsToScreen(){var t;const o=this.elementBounds;if(o!=null){return(t=this.points)===null||t===void 0?void 0:t.map((t=>A(t,o,this.originatingViewport,this.centeringBehavior,this.scale)))}}get hostEl(){return i(this)}static get watchers(){return{viewer:[{handleViewerChanged:0}],originatingViewport:[{recomputePointsFromProps:0},{handleScalingConfigurationChange:0}],offset:[{recomputePointsFromProps:0},{handleScalingConfigurationChange:0}],scale:[{recomputePointsFromProps:0},{handleScalingConfigurationChange:0},{handleScaleChange:0}],bounds:[{recomputePointsFromProps:0}],points:[{recomputePointsFromProps:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],mode:[{handleModeChange:0}]}}};Q.style=K();export{G as vertex_viewer_markup_arrow,W as vertex_viewer_markup_circle,Q as vertex_viewer_markup_freeform};
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{h as t,r as o,c as e,H as r,a as i}from"./p-CCVkga9Q.js";import{b as n,g as s}from"./p-D0aTA_2m.js";import{w as h}from"./p-BxtKMwBH.js";import{g as a}from"./p-Bg-uS9BH.js";import{p as c,e as d,g as l,a as u}from"./p-2UsvOTHJ.js";import{i as p,a as w,b as v,p as f,c as b,d as m,e as g,f as k,g as x,h as C,j as P}from"./p-DBfvBC5O.js";import{c as y}from"./p-Dw4-tG-V.js";import"./p-CG9AChtV.js";function D(t,o){switch(o){case"top-left":return c.create(t.x,t.y);case"top":return c.create(t.x+t.width/2,t.y);case"top-right":return c.create(t.x+t.width,t.y);case"right":return c.create(t.x+t.width,t.y+t.height/2);case"bottom-right":return c.create(t.x+t.width,t.y+t.height);case"bottom":return c.create(t.x+t.width/2,t.y+t.height);case"bottom-left":return c.create(t.x,t.y+t.height);case"left":return c.create(t.x,t.y+t.height/2);case"center":return l.center(t)}}function A(t,o,e=o,r="none",i=1){const n=Math.min(o.width/e.width,o.height/e.height);const s=n*i;const h=I(e);const a=c.add(c.scale(t,h,h),d.center(e));const l=e.width*s;const u=e.height*s;const p=r==="both"||r==="x-only"?Math.max(0,(o.width-l)/2):0;const w=r==="both"||r==="y-only"?Math.max(0,(o.height-u)/2):0;return c.create(a.x*s+p,a.y*s+w)}function S(t,o,e=o,r=1){const i=Math.min(o.width/e.width,o.height/e.height);const n=i*r;const s=I(e);const h=d.scale(s,s,t);return d.scale(n,n,h)}function M(t,o,e,r="none",i=1){const n=A(t,o,e,r,i);const s=S(t,o,e,i);return l.fromPointAndDimensions(n,s)}function B(t,o,e=o,r="none",i=1,s=c.create(0,0)){const h=Math.min(o.width/e.width,o.height/e.height);const a=h*i;const l=e.width*a;const u=e.height*a;const p=r==="both"||r==="x-only"?Math.max(0,(o.width-l)/2):0;const w=r==="both"||r==="y-only"?Math.max(0,(o.height-u)/2):0;const v=c.subtract(t,c.scale(s,1/n(),1/n()));const f=c.create((v.x-p)/a,(v.y-w)/a);const b=I(e);const m=c.subtract(f,d.center(e));return c.scale(m,1/b,1/b)}function $(t,o,e){return t.map((t=>c.add(c.scale(c.subtract(t,o),e.width/(o.width||1),e.height/(o.height||1)),e)))}function T(t,o,e){const r=l.fromPoints(t,o);if(e){const e=Math.max(r.width,r.height);const i=r.height>r.width;const n=o.x<=t.x;const s=o.y<=t.y;const h=n?i?t.x-e:o.x:t.x;const a=s?i?o.y:t.y-e:t.y;return l.create(h,a,e,e)}else{return r}}function V(t,o,e,r,i){const n=c.subtract(e,o);const{x:s,y:h,width:a,height:d}=t;const u=s+a;const p=h+d;const w=c.create(s,h);const v=c.create(s,p);const f=c.create(u,h);const b=c.create(u,p);switch(r){case"top-left":return T(b,e,!!i);case"top":return T(b,c.create(s,e.y),!!i);case"top-right":return T(v,e,!!i);case"right":return T(v,c.create(e.x,h),!!i);case"bottom-right":return T(w,e,!!i);case"bottom":return T(w,c.create(u,e.y),!!i);case"bottom-left":return T(f,e,!!i);case"left":return T(b,c.create(e.x,h),!!i);case"center":return l.create(t.x+n.x,t.y+n.y,t.width,t.height)}}function L(t){return p(t)||w(t)||v(t)}function R(...t){return t.every((t=>!Number.isNaN(t.x)&&!Number.isNaN(t.y)))}function E(t){const o=t.target;return L(o)&&o.mode!=="edit"}function I(t){return t.height}const j=({id:o,transform:e,rotation:r,name:i,point:n,onPointerDown:s},h)=>t("div",{id:o,class:"bounds-anchor-position",style:{top:`${n.y}px`,left:`${n.x}px`},onTouchStart:t=>t.preventDefault(),onPointerDown:s},t("div",{style:{transform:e}},t("div",{class:"bounds-anchor",style:{transform:`rotateZ(${r!==null&&r!==void 0?r:0}deg)`}},t("slot",{name:i},h))));const F=({id:o,scale:e})=>{const r=e!==null&&e!==void 0?e:1;const i=Math.max(10,10*r);const n=Math.max(10,10*r);const s=Math.max(120,110*r+i);const h=Math.max(120,110*r+n);return t("filter",{id:o,filterUnits:"userSpaceOnUse",x:`${-i}%`,y:`${-n}%`,width:`${s}%`,height:`${h}%`},t("feGaussianBlur",{in:"SourceAlpha",stdDeviation:"2"}),t("feOffset",{dx:"0",dy:"1",result:"offsetblur"}),t("feFlood",{"flood-color":"#000000","flood-opacity":"0.25"}),t("feComposite",{in2:"offsetblur",operator:"in"}),t("feMerge",null,t("feMergeNode",null),t("feMergeNode",{in:"SourceGraphic"})))};class O{constructor(t){this.handlePointerDown=t=>{this.handleInteractionAttempt(t)};this.handlePointerMove=t=>{this.handleInteractionMove(t)};this.handlePointerUp=t=>{window.removeEventListener("pointermove",this.handlePointerMove);window.removeEventListener("pointerup",this.handlePointerUp);this.handleInteractionEnd(t)};this.resizeObserver=new ResizeObserver((([t])=>{this.elementBounds=this.computeBoundingRect()}));this.scalingOptions=t!==null&&t!==void 0?t:{}}initialize(t){this.element=t;this.elementBounds=this.computeBoundingRect();this.resizeObserver.observe(this.element);this.element.addEventListener("pointerdown",this.handlePointerDown)}dispose(){var t;this.resizeObserver.disconnect();(t=this.element)===null||t===void 0?void 0:t.removeEventListener("pointerdown",this.handlePointerDown);this.element=undefined}updateScalingOptions(t){this.scalingOptions={...this.scalingOptions,...t}}getScalingOptions(){return this.scalingOptions}acceptInteraction(){window.addEventListener("pointermove",this.handlePointerMove);window.addEventListener("pointerup",this.handlePointerUp)}}class _ extends O{constructor(t,o,e,r){super(r);this.markupEl=t;this.interactionBegin=o;this.interactionEnd=e;this.anchor="end"}editAnchor(t,o){if(this.markupEl.mode==="edit"){this.anchor=t;this.startInteraction(o)}}startInteraction(t){this.handleInteractionAttempt(t)}computeBoundingRect(){return a(this.markupEl)}handleInteractionAttempt(t){var o;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){this.pointerId=t.pointerId;this.markupEl.start=(o=this.markupEl.start)!==null&&o!==void 0?o:B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(t){if(this.elementBounds!=null&&this.pointerId===t.pointerId){const o=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);if(this.anchor==="start"){this.markupEl.start=o}else if(this.anchor==="end"){this.markupEl.end=o}else if(this.markupEl.start!=null&&this.markupEl.end!=null){const t=c.create((this.markupEl.start.x+this.markupEl.end.x)/2,(this.markupEl.start.y+this.markupEl.end.y)/2);const e=t.x-o.x;const r=t.y-o.y;this.markupEl.start=c.create(this.markupEl.start.x-e,this.markupEl.start.y-r);this.markupEl.end=c.create(this.markupEl.end.x-e,this.markupEl.end.y-r)}}}handleInteractionEnd(t){if(this.pointerId===t.pointerId){const t=this.markupEl.start!=null&&this.elementBounds!=null?A(this.markupEl.start,this.elementBounds):undefined;const o=this.markupEl.end!=null&&this.elementBounds!=null?A(this.markupEl.end,this.elementBounds):undefined;if(this.markupEl.mode!==""&&t!=null&&o!=null&&c.distance(t,o)>=2){const t=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:t})}else{this.markupEl.start=undefined;this.markupEl.end=undefined}this.pointerId=undefined}}}const z=({start:o,end:e,offset:r,onStartAnchorPointerDown:i,onCenterAnchorPointerDown:n,onEndAnchorPointerDown:s})=>{const h=u.normalize(u.toDegrees(u.fromPoints(o,e))-270);const a=c.create((o.x+e.x)/2,(o.y+e.y)/2);const d=r!=null?`translate(${r.x}px, ${r.y}px)`:undefined;return t("div",{class:"bounds-container"},t(j,{transform:d,id:"bounding-box-1d-start-anchor",name:"start-anchor",rotation:h,point:o,onPointerDown:i},t("div",{class:y("bounds-default-anchor","bounds-cap-anchor")})),t(j,{transform:d,id:"bounding-box-1d-end-anchor",name:"end-anchor",rotation:h,point:e,onPointerDown:s},t("div",{class:y("bounds-default-anchor","bounds-cap-anchor")})),t(j,{transform:d,id:"bounding-box-1d-center-anchor",name:"center-anchor",point:a,onPointerDown:n},t("div",{class:y("bounds-default-anchor","bounds-center-anchor")})))};const J=()=>`: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 G=class{constructor(t){o(this,t);this.interactionBegin=e(this,"interactionBegin");this.interactionEnd=e(this,"interactionEnd");this.centeringBehavior="none";this.scale=1;this.startLineAnchorStyle="none";this.endLineAnchorStyle="arrow-triangle";this.mode="";this.interactionHandler=new _(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=t=>{if(E(t)){this.interactionHandler.startInteraction(t)}};this.handleTouchStart=t=>{t.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updatePointsFromProps()}componentDidLoad(){this.updatePointsFromProps();const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var t;(t=this.registeredInteraction)===null||t===void 0?void 0:t.dispose();this.registeredInteraction=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(t){var o;(o=this.registeredInteraction)===null||o===void 0?void 0:o.dispose();this.registeredInteraction=undefined;if(t!=null){this.registeredInteraction=await t.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 t,o;this.hostEl.style.setProperty("--viewer-markup-arrow-scale",(o=(t=this.scale)===null||t===void 0?void 0:t.toString())!==null&&o!==void 0?o:"1")}))}updateViewport(){const t=a(this.hostEl);this.elementBounds=t}updatePointsFromProps(){this.start=this.start||f(this.startJson);this.end=this.end||f(this.endJson)}renderLineAnchorStyle(o,e){if(o==="arrow-triangle"){return t("polygon",{id:"line-anchor-arrow-triangle",class:"head",points:b(e,this.scale)})}else if(o==="arrow-line"){return t("path",{id:"line-anchor-arrow-line",class:"head",d:m(e,this.scale)})}else if(o==="hash"){const o=g(e,this.scale);return t("line",{id:"line-anchor-hash",class:"head",...o})}else if(o==="dot"){const o=k(e,this.scale);return t("circle",{id:"line-anchor-circle",class:"head",...o})}else{return t("div",null)}}render(){var o,e,i,s;if(this.start!=null&&this.end!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=this.elementBounds;const a=((e=(o=this.offset)===null||o===void 0?void 0:o.x)!==null&&e!==void 0?e:0)/n();const c=((s=(i=this.offset)===null||i===void 0?void 0:i.y)!==null&&s!==void 0?s:0)/n();const d=A(this.start,h,this.originatingViewport,this.centeringBehavior,this.scale);const l=A(this.end,h,this.originatingViewport,this.centeringBehavior,this.scale);if(R(d,l)){const o=x(l,d);const e=x(d,l);return t(r,null,t("svg",{class:"svg",onTouchStart:this.handleTouchStart},t("defs",null,t(F,{id:"arrow-shadow",scale:this.scale})),t("g",{transform:`translate(${a} ${c})`,filter:"url(#arrow-shadow)"},this.renderLineAnchorStyle(this.startLineAnchorStyle,o),t("line",{id:"arrow-line",class:"line",x1:e.tip.x,y1:e.tip.y,x2:o.tip.x,y2:o.tip.y}),this.renderLineAnchorStyle(this.endLineAnchorStyle,e)),this.mode==="edit"&&t("g",{transform:`translate(${a} ${c})`},t("line",{id:"bounding-box-1d-line",class:"bounds-line",x1:d.x,y1:d.y,x2:l.x,y2:l.y}))),this.mode==="edit"&&t(z,{start:d,end:l,offset:{x:a,y:c},onStartAnchorPointerDown:t=>this.interactionHandler.editAnchor("start",t),onCenterAnchorPointerDown:t=>this.interactionHandler.editAnchor("center",t),onEndAnchorPointerDown:t=>this.interactionHandler.editAnchor("end",t)}),this.mode==="create"&&t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return t(r,null)}}else{return t(r,null,t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return i(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}]}}};G.style=J();class H extends O{constructor(t,o,e,r){super(r);this.markupEl=t;this.interactionBegin=o;this.interactionEnd=e;this.anchor="bottom-right"}editAnchor(t,o){if(this.markupEl.mode==="edit"){this.anchor=t;this.resizeBounds=this.markupEl.bounds;this.startInteraction(o)}}startInteraction(t){this.handleInteractionAttempt(t)}computeBoundingRect(){return a(this.markupEl)}handleInteractionAttempt(t){var o;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){const e=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.pointerId=t.pointerId;this.startPosition=e;this.markupEl.bounds=(o=this.markupEl.bounds)!==null&&o!==void 0?o:l.create(e.x,e.y,0,0);this.resizeBounds=this.markupEl.bounds;this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(t){var o;if(this.markupEl.bounds!=null&&this.startPosition!=null&&this.elementBounds!=null&&this.pointerId===t.pointerId){const e=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.markupEl.bounds=V((o=this.resizeBounds)!==null&&o!==void 0?o:this.markupEl.bounds,this.startPosition,e,this.anchor,t.shiftKey)}}handleInteractionEnd(t){var o,e;if(this.pointerId===t.pointerId){if(this.markupEl.mode!==""&&this.markupEl.bounds!=null&&((o=this.markupEl.bounds)===null||o===void 0?void 0:o.width)>0&&((e=this.markupEl.bounds)===null||e===void 0?void 0:e.height)>0){this.anchor="bottom-right";const t=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:t})}else{this.markupEl.bounds=undefined}this.pointerId=undefined}}}const N=({bounds:o,offset:e,onTopLeftAnchorPointerDown:r,onLeftAnchorPointerDown:i,onTopRightAnchorPointerDown:n,onRightAnchorPointerDown:s,onBottomLeftAnchorPointerDown:h,onBottomAnchorPointerDown:a,onBottomRightAnchorPointerDown:c,onTopAnchorPointerDown:d,onCenterAnchorPointerDown:u})=>{const p=l.pad(o,6);const w=l.center(p);const v=e!=null?`translate(${e.x}px, ${e.y}px)`:undefined;return t("div",{class:"bounds-container"},t("div",{class:"bounds-outline",style:{top:`${p.y}px`,left:`${p.x}px`,width:`${p.width}px`,height:`${p.height}px`,transform:v}}),t(j,{transform:v,id:"bounding-box-2d-top-left-anchor",name:"top-left-anchor",point:D(p,"top-left"),onPointerDown:r},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-left-anchor",name:"left-anchor",point:D(p,"left"),onPointerDown:i},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-top-right-anchor",name:"top-right-anchor",point:D(p,"top-right"),onPointerDown:n},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-right-anchor",name:"right-anchor",point:D(p,"right"),onPointerDown:s},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-bottom-left-anchor",name:"bottom-left-anchor",point:D(p,"bottom-left"),onPointerDown:h},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-bottom-anchor",name:"bottom-anchor",point:D(p,"bottom"),onPointerDown:a},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-bottom-right-anchor",name:"bottom-right-anchor",point:D(p,"bottom-right"),onPointerDown:c},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-top-anchor",name:"top-anchor",point:D(p,"top"),onPointerDown:d},t("div",{class:y("bounds-default-anchor","bounds-edge-anchor")})),t(j,{transform:v,id:"bounding-box-2d-center-anchor",name:"center-anchor",point:w,onPointerDown:u},t("div",{class:y("bounds-default-anchor","bounds-center-anchor")})))};const U=()=>`: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 W=class{constructor(t){o(this,t);this.interactionBegin=e(this,"interactionBegin");this.interactionEnd=e(this,"interactionEnd");this.mode="";this.centeringBehavior="none";this.scale=1;this.interactionHandler=new H(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=t=>{if(E(t)){this.interactionHandler.startInteraction(t)}};this.handleTouchStart=t=>{t.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updateBoundsFromProps()}componentDidLoad(){this.updateBoundsFromProps();const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var t;(t=this.registeredHandler)===null||t===void 0?void 0:t.dispose();this.registeredHandler=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(t){var o;(o=this.registeredHandler)===null||o===void 0?void 0:o.dispose();this.registeredHandler=undefined;if(t!=null){this.registeredHandler=await t.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(){h((()=>{this.hostEl.style.setProperty("--viewer-markup-circle-scale",this.scale.toString())}))}updateViewport(){const t=a(this.hostEl);this.elementBounds=t}updateBoundsFromProps(){var t;this.bounds=(t=this.bounds)!==null&&t!==void 0?t:C(this.boundsJson)}render(){var o,e,i,s;if(this.bounds!=null&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=M(this.bounds,this.elementBounds,this.originatingViewport,this.centeringBehavior,this.scale);const a=l.center(h);const c=((e=(o=this.offset)===null||o===void 0?void 0:o.x)!==null&&e!==void 0?e:0)/n();const d=((s=(i=this.offset)===null||i===void 0?void 0:i.y)!==null&&s!==void 0?s:0)/n();return t(r,null,t("svg",{class:"svg",onTouchStart:this.handleTouchStart},t("defs",null,t(F,{id:"circle-shadow",scale:this.scale})),t("g",{transform:`translate(${c} ${d})`,filter:"url(#circle-shadow)"},t("ellipse",{class:"ellipse",cx:a.x,cy:a.y,rx:h.width/2,ry:h.height/2,stroke:"#000ff0","stroke-width":4,fill:"none"}))),this.mode==="edit"&&t(N,{bounds:h,offset:{x:c,y:d},onTopLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-left",t),onTopRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-right",t),onTopAnchorPointerDown:t=>this.interactionHandler.editAnchor("top",t),onBottomLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-left",t),onBottomRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-right",t),onBottomAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom",t),onLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("left",t),onRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("right",t),onCenterAnchorPointerDown:t=>this.interactionHandler.editAnchor("center",t)}),this.mode==="create"&&t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return t(r,null,t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}get hostEl(){return i(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}]}}};W.style=U();class K extends O{constructor(t,o,e,r){super(r);this.markupEl=t;this.interactionBegin=o;this.interactionEnd=e;this.anchor="bottom-right";this.handleResizeInteractionMove=t=>{if(this.resizeStartPosition!=null&&this.elementBounds!=null&&this.resizeBounds!=null&&this.resizePoints!=null){const o=B(s(t,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);const e=V(this.resizeBounds,this.resizeStartPosition,o,this.anchor,t.shiftKey);this.markupEl.points=$(this.resizePoints,this.resizeBounds,e);this.markupEl.bounds=e}};this.handleResizeInteractionEnd=t=>{window.removeEventListener("pointermove",this.handleResizeInteractionMove);window.removeEventListener("pointerup",this.handleResizeInteractionEnd);this.resizeBounds=undefined;const o=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:o})}}editAnchor(t,o){if(this.markupEl.mode==="edit"&&this.elementBounds!=null){this.resizeBounds=this.markupEl.bounds;this.resizePoints=this.markupEl.points;this.anchor=t;this.resizeStartPosition=B(s(o,this.elementBounds),this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);window.addEventListener("pointermove",this.handleResizeInteractionMove);window.addEventListener("pointerup",this.handleResizeInteractionEnd)}}startInteraction(t){this.handleInteractionAttempt(t)}computeBoundingRect(){return a(this.markupEl)}handleInteractionAttempt(t){var o;if(this.markupEl.mode!==""&&this.pointerId==null&&this.elementBounds!=null){this.pointerId=t.pointerId;const e=s(t,this.elementBounds);const r=B(e,this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.updateMinAndMax(r);this.markupEl.points=(o=this.markupEl.points)!==null&&o!==void 0?o:[r];this.interactionBegin.emit();this.acceptInteraction()}}handleInteractionMove(t){if(this.pointerId===t.pointerId&&this.markupEl.points!=null&&this.elementBounds!=null){const o=s(t,this.elementBounds);const e=B(o,this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.updateMinAndMax(e);this.markupEl.points=[...this.markupEl.points,e]}}handleInteractionEnd(t){if(this.pointerId===t.pointerId){if(this.markupEl.mode!==""&&this.markupEl.points!=null&&this.markupEl.points.length>2&&this.elementBounds!=null){const o=s(t,this.elementBounds);const e=B(o,this.elementBounds,this.scalingOptions.originatingViewport,this.scalingOptions.centeringBehavior,this.scalingOptions.scale,this.scalingOptions.offset);this.updateMinAndMax(e);this.markupEl.points=[...this.markupEl.points,e];const r=this.markupEl.mode!=="edit";this.interactionEnd.emit({markup:this.markupEl,newlyCreatedMarkup:r})}else{this.markupEl.points=undefined}this.min=undefined;this.max=undefined;this.pointerId=undefined}}updateMinAndMax(t){this.min=this.min!=null?c.create(Math.min(this.min.x,t.x),Math.min(this.min.y,t.y)):t;this.max=this.max!=null?c.create(Math.max(this.max.x,t.x),Math.max(this.max.y,t.y)):t;this.markupEl.bounds=l.create(this.min.x,this.min.y,this.max.x-this.min.x,this.max.y-this.min.y)}}const Q=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-markup-freeform-stroke-color:var(--red-800);--viewer-markup-freeform-stroke-width:4px;--viewer-markup-freeform-line-join:round;--viewer-markup-freeform-line-cap:round;--viewer-markup-freeform-bounds-outline-border-color:var(--blue-400);--viewer-markup-freeform-bounds-outline-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-border-color:var(--blue-400);--viewer-markup-freeform-bounds-edge-anchor-border-width:1px;--viewer-markup-freeform-bounds-edge-anchor-background-color:white;--viewer-markup-freeform-bounds-center-anchor-border-color:white;--viewer-markup-freeform-bounds-center-anchor-border-width:1px;--viewer-markup-freeform-bounds-center-anchor-background-color:var( --blue-400 );--viewer-markup-freeform-bounds-anchor-width:9px;--viewer-markup-freeform-bounds-anchor-height:9px;--viewer-markup-freeform-scale:1}.svg{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.path{pointer-events:auto;cursor:default;stroke:var(--viewer-markup-freeform-stroke-color);stroke-width:calc( var(--viewer-markup-freeform-stroke-width) * var(--viewer-markup-freeform-scale) );stroke-linejoin:var(--viewer-markup-freeform-line-join);stroke-linecap:var(--viewer-markup-freeform-line-cap)}.create-overlay{pointer-events:auto;position:absolute;left:0;top:0;width:100%;height:100%;cursor:crosshair}.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-freeform-bounds-outline-border-width);border-color:var(--viewer-markup-freeform-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-freeform-bounds-anchor-width);height:var(--viewer-markup-freeform-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-freeform-bounds-center-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-center-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-freeform-bounds-center-anchor-background-color )}.bounds-edge-anchor{border-width:var(--viewer-markup-freeform-bounds-edge-anchor-border-width);border-color:var(--viewer-markup-freeform-bounds-edge-anchor-border-color);border-style:solid;background-color:var( --viewer-markup-freeform-bounds-edge-anchor-background-color )}`;const Z=class{constructor(t){o(this,t);this.interactionBegin=e(this,"interactionBegin");this.interactionEnd=e(this,"interactionEnd");this.mode="";this.centeringBehavior="none";this.scale=1;this.screenPoints=[];this.interactionHandler=new K(this.hostEl,this.interactionBegin,this.interactionEnd,{scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior});this.handleWindowPointerDown=t=>{if(E(t)){this.interactionHandler.startInteraction(t)}};this.handleTouchStart=t=>{t.preventDefault()}}componentWillLoad(){this.updateViewport();this.handleViewerChanged(this.viewer);this.handleScaleChange();this.handleScalingConfigurationChange();this.updatePointsFromProps()}componentDidLoad(){const t=new ResizeObserver((()=>this.updateViewport()));t.observe(this.hostEl);if(this.mode==="create"){window.addEventListener("pointerdown",this.handleWindowPointerDown)}}disconnectedCallback(){this.dispose()}async dispose(){var t;(t=this.registeredInteraction)===null||t===void 0?void 0:t.dispose();this.registeredInteraction=undefined;window.removeEventListener("pointerdown",this.handleWindowPointerDown)}async handleViewerChanged(t){var o;(o=this.registeredInteraction)===null||o===void 0?void 0:o.dispose();this.registeredInteraction=undefined;if(t!=null){this.registeredInteraction=await t.registerBasicInteractionHandler(this.interactionHandler)}}recomputePointsFromProps(){this.updatePointsFromProps()}handleScalingConfigurationChange(){this.interactionHandler.updateScalingOptions({scale:this.scale,offset:this.offset,originatingViewport:this.originatingViewport,centeringBehavior:this.centeringBehavior})}handleScaleChange(){h((()=>{this.hostEl.style.setProperty("--viewer-markup-freeform-scale",this.scale.toString())}))}handleModeChange(){if(this.mode!=="create"){window.removeEventListener("pointerdown",this.handleWindowPointerDown)}}updateViewport(){var t;const o=a(this.hostEl);this.elementBounds=o;this.screenPoints=(t=this.convertPointsToScreen())!==null&&t!==void 0?t:this.screenPoints}updatePointsFromProps(){var t,o,e;this.points=(t=this.points)!==null&&t!==void 0?t:P(this.pointsJson);this.screenPoints=(o=this.convertPointsToScreen())!==null&&o!==void 0?o:[];this.bounds=(e=this.bounds)!==null&&e!==void 0?e:C(this.boundsJson)}render(){var o,e,i,s;if(this.screenPoints.length>0&&this.elementBounds!=null&&this.elementBounds.width>0&&this.elementBounds.height>0){const h=((e=(o=this.offset)===null||o===void 0?void 0:o.x)!==null&&e!==void 0?e:0)/n();const a=((s=(i=this.offset)===null||i===void 0?void 0:i.y)!==null&&s!==void 0?s:0)/n();return t(r,null,t("svg",{class:"svg",onTouchStart:this.handleTouchStart},t("defs",null,t(F,{id:"freeform-markup-shadow",scale:this.scale})),t("g",{transform:`translate(${h} ${a})`,filter:"url(#freeform-markup-shadow)"},t("path",{class:"path",d:this.screenPoints.reduce(((t,o)=>`${t}L${o.x},${o.y}`),`M${this.screenPoints[0].x},${this.screenPoints[0].y}`),fill:"none"}))),this.mode==="edit"&&this.bounds!=null&&t(N,{bounds:M(this.bounds,this.elementBounds,this.originatingViewport,this.centeringBehavior,this.scale),offset:{x:h,y:a},onTopLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-left",t),onTopRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("top-right",t),onTopAnchorPointerDown:t=>this.interactionHandler.editAnchor("top",t),onBottomLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-left",t),onBottomRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom-right",t),onBottomAnchorPointerDown:t=>this.interactionHandler.editAnchor("bottom",t),onLeftAnchorPointerDown:t=>this.interactionHandler.editAnchor("left",t),onRightAnchorPointerDown:t=>this.interactionHandler.editAnchor("right",t),onCenterAnchorPointerDown:t=>this.interactionHandler.editAnchor("center",t)}),this.mode==="create"&&t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}else{return t(r,null,t("div",{class:"create-overlay",onTouchStart:this.handleTouchStart}))}}convertPointsToScreen(){var t;const o=this.elementBounds;if(o!=null){return(t=this.points)===null||t===void 0?void 0:t.map((t=>A(t,o,this.originatingViewport,this.centeringBehavior,this.scale)))}}get hostEl(){return i(this)}static get watchers(){return{viewer:[{handleViewerChanged:0}],originatingViewport:[{recomputePointsFromProps:0},{handleScalingConfigurationChange:0}],offset:[{recomputePointsFromProps:0},{handleScalingConfigurationChange:0}],scale:[{recomputePointsFromProps:0},{handleScalingConfigurationChange:0},{handleScaleChange:0}],bounds:[{recomputePointsFromProps:0}],points:[{recomputePointsFromProps:0}],centeringBehavior:[{handleScalingConfigurationChange:0}],mode:[{handleModeChange:0}]}}};Z.style=Q();export{G as vertex_viewer_markup_arrow,W as vertex_viewer_markup_circle,Z as vertex_viewer_markup_freeform};
|
|
5
|
+
//# sourceMappingURL=p-83683307.entry.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{r as i,h as t,H as s,a as n}from"./p-CCVkga9Q.js";import{v as h,m as o,q as e,r as l,a as r}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{r as i,h as t,H as s,a as n}from"./p-CCVkga9Q.js";import{v as h,m as o,q as e,r as l,a as r}from"./p-2UsvOTHJ.js";import{w as a,r as c}from"./p-BxtKMwBH.js";import{M as d,R as u,r as v,s as p,T as f,c as m,a as w,A as g,b as C}from"./p-CS8PfgcI.js";import"./p-CG9AChtV.js";import"./p-CDM7zNn0.js";import"./p-BT9d9jRt.js";import"./p-BhKTTmpL.js";import"./p-5kcpg4MZ.js";import"./p-BAhfr1Nx.js";import"./p-CeZe0Qql.js";function N(i,t){return i.getPropertyValue(t).trim().replace(/["']*/g,"")}function j(i,t,s,n){const a=h.multiplyByTransformMatrixRowMajor(s,o.makeRotation(e.fromMatrixRotation(i)));const c=h.fromMatrixPosition(i);const u=Math.abs(h.dot(a,h.up()))===1?h.left():h.normalize(h.cross(a,h.up()));const v=h.normalize(h.cross(u,a));const p=l.create({origin:c,direction:u});const f=l.create({origin:c,direction:v});const m=h.rotateAboutAxis(r.toRadians(45),l.at(p,-n),a,c);const w=h.rotateAboutAxis(r.toRadians(45),l.at(f,-n),a,c);const g=h.rotateAboutAxis(r.toRadians(45),l.at(f,n),a,c);const C=h.rotateAboutAxis(r.toRadians(45),l.at(p,n),a,c);const N=[m,w,C,g];return new d(!Number.isNaN(u.x),[m,w,C,g],N.map((i=>h.multiplyByTransformMatrixColumnMajor(i,t.projectionViewMatrix))),(i=>h.distance(c,i)))}function b(i,t,s,n){const a=h.multiplyByTransformMatrixRowMajor(s,o.makeRotation(e.fromMatrixRotation(i)));const c=h.fromMatrixPosition(i);const u=h.normalize(h.cross(a,h.normalize(t.viewVector)));const v=h.normalize(h.cross(a,u));const p=l.create({origin:c,direction:u});const f=l.create({origin:c,direction:v});const m=l.at(p,-n);const w=l.at(f,-n);const g=l.at(f,n);const C=l.at(p,n);const N=h.rotateAboutAxis(r.toRadians(45),m,a,c);const j=h.rotateAboutAxis(r.toRadians(45),w,a,c);const b=h.rotateAboutAxis(r.toRadians(45),g,a,c);const O=h.rotateAboutAxis(r.toRadians(45),C,a,c);const y=[m,N,w,j,C,O,g,b];return new d(!Number.isNaN(u.x),y,y.map((i=>h.multiplyByTransformMatrixColumnMajor(i,t.projectionViewMatrix))),(i=>h.distance(c,i)))}const O=.4;const y=5;const S=.75;class x extends u{constructor(i,t={},s={}){super(i);this.arrowFillColor=t.arrow;this.planeFillColor=t.plane;this.outlineColor=t.outline;this.planeOpacity=s.plane}updateTransformAndNormal(i,t){var s;this.transform=i;this.normal=t;if(i!=null&&t!=null&&this.frame!=null){this.updateAndDraw()}else{this.clear();(s=this.reglFrameDisposable)===null||s===void 0?void 0:s.cancel();this.reglFrameDisposable=undefined}}updateColors(i){var t,s,n,h,o,e,l,r,a;this.arrowFillColor=(t=i.arrow)!==null&&t!==void 0?t:this.arrowFillColor;this.planeFillColor=(s=i.plane)!==null&&s!==void 0?s:this.planeFillColor;this.outlineColor=(n=i.outline)!==null&&n!==void 0?n:this.outlineColor;(h=this.arrow)===null||h===void 0?void 0:h.updateFillColor(this.arrowFillColor);(o=this.plane)===null||o===void 0?void 0:o.updateFillColor(this.planeFillColor);(e=this.arrow)===null||e===void 0?void 0:e.updateOutlineColor(this.outlineColor);(l=this.plane)===null||l===void 0?void 0:l.updateOutlineColor(this.outlineColor);(r=this.point)===null||r===void 0?void 0:r.updateOutlineColor(this.outlineColor);(a=this.axis)===null||a===void 0?void 0:a.updateOutlineColor(this.outlineColor)}updateOpacities(i){this.planeOpacity=i.plane}hasData(){return this.transform!=null&&this.normal!=null}createOrUpdateElements(){if(this.transform!=null&&this.normal!=null&&this.frame!=null){if(this.arrow==null){this.createElements(this.transform,this.normal,this.frame)}else{this.updateElements(this.transform,this.normal,this.frame)}}}createElements(i,t,s){this.reglCommand=v({canvas:this.canvasElement,extensions:"angle_instanced_arrays"});const{createShape:n}=p(this.reglCommand);const o=this.computeTriangleSize(h.fromMatrixPosition(i),s);this.arrow=new f(n,"hit-normal-arrow",m(i,s.scene.camera,t,o),this.outlineColor,this.arrowFillColor);this.plane=new w(n,"hit-plane",j(i,s.scene.camera,t,o*y),this.outlineColor,this.planeFillColor,{opacity:this.getPlaneOpacity(),depth:.5});this.point=new w(n,"hit-position",b(i,s.scene.camera,t,o*O),this.outlineColor,this.outlineColor,{join:"round",depth:1});this.axis=new g(n,"hit-normal-axis",C(i,s.scene.camera,this.arrow),this.outlineColor,this.arrowFillColor);this.availableElements=[this.arrow,this.point,this.plane,this.axis]}updateElements(i,t,s){var n;const o=this.computeTriangleSize(h.fromMatrixPosition(i),s);if(this.arrow!=null){this.arrow.updatePoints(m(i,s.scene.camera,t,o));(n=this.axis)===null||n===void 0?void 0:n.updatePoints(C(i,s.scene.camera,this.arrow))}if(this.plane!=null){this.plane.updatePoints(j(i,s.scene.camera,t,o*y))}if(this.point!=null){this.point.updatePoints(b(i,s.scene.camera,t,o*O))}}getPlaneOpacity(){if(this.planeOpacity!=null){return typeof this.planeOpacity==="string"?Number.parseFloat(this.planeOpacity):this.planeOpacity}return S}}const J=()=>`:host{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;--viewer-hit-result-indicator-arrow-color:#0099cc;--viewer-hit-result-indicator-plane-color:#0099cc;--viewer-hit-result-indicator-outline-color:#000000;--viewer-hit-result-indicator-plane-opacity:0.75}.indicator{position:absolute;top:0;left:0}`;const T=class{constructor(t){i(this,t);this.arrowColor="#0099cc";this.planeColor="#0099cc";this.outlineColor="#000000";this.planeOpacity=S;this.handleViewerFrameDrawn=()=>{this.updatePropsFromViewer()};this.handleViewerDimensionsChange=()=>{a((()=>{if(this.viewer!=null&&this.canvasRef!=null){this.canvasRef.width=this.viewer.viewport.width;this.canvasRef.height=this.viewer.viewport.height;this.updateAndRedrawIndicator()}}))};this.handleResize=()=>{if(this.canvasRef!=null){this.updateAndRedrawIndicator()}};this.updatePropsFromViewer=()=>{const{frame:i}=this.viewer||{};if(i!=null){const t=this.getIndicator();t.updateFrame(i)}};this.setupIndicator=i=>{var t,s;console.debug(`Initializing hit indicator. [initial-position=${JSON.stringify(this.position)}, initial-normal=${JSON.stringify(this.normal)} has-initial-frame=${((t=this.viewer)===null||t===void 0?void 0:t.frame)!=null}]`);this.indicator=new x(i,{arrow:this.arrowColor,plane:this.planeColor},{plane:this.planeOpacity});this.transform=this.createTransform();this.indicator.updateTransformAndNormal(this.transform,this.normal);if(((s=this.viewer)===null||s===void 0?void 0:s.frame)!=null){this.indicator.updateFrame(this.viewer.frame)}return this.indicator};this.updateAndRedrawIndicator=()=>{c((()=>{this.getIndicator().updateAndDraw()}))};this.createTransform=()=>{if(this.position!=null){return o.makeTranslation(this.position)}};this.getIndicator=()=>{if(this.indicator==null&&this.canvasRef!=null){return this.setupIndicator(this.canvasRef)}else if(this.indicator!=null){return this.indicator}else{throw new Error("Hit indicator was not initialized. The canvas element may not have been initialized.")}}}componentDidLoad(){this.handleViewerChanged(this.viewer,undefined);this.canvasResizeObserver=new ResizeObserver(this.handleResize);if(this.canvasRef!=null){this.canvasResizeObserver.observe(this.canvasRef);this.setupIndicator(this.canvasRef)}c((()=>{var i,t;const s=window.getComputedStyle(this.hostEl);this.arrowColor=N(s,"--viewer-hit-result-indicator-arrow-color");this.planeColor=N(s,"--viewer-hit-result-indicator-plane-color");this.outlineColor=N(s,"--viewer-hit-result-indicator-outline-color");this.planeOpacity=s.getPropertyValue("--viewer-hit-result-indicator-plane-opacity").trim();(i=this.indicator)===null||i===void 0?void 0:i.updateColors({arrow:this.arrowColor,plane:this.planeColor,outline:this.outlineColor});(t=this.indicator)===null||t===void 0?void 0:t.updateOpacities({plane:this.planeOpacity})}))}disconnectedCallback(){var i,t;(i=this.canvasResizeObserver)===null||i===void 0?void 0:i.disconnect();(t=this.indicator)===null||t===void 0?void 0:t.dispose()}handleViewerChanged(i,t){t===null||t===void 0?void 0:t.removeEventListener("frameDrawn",this.handleViewerFrameDrawn);t===null||t===void 0?void 0:t.removeEventListener("dimensionschange",this.handleViewerDimensionsChange);i===null||i===void 0?void 0:i.addEventListener("frameDrawn",this.handleViewerFrameDrawn);i===null||i===void 0?void 0:i.addEventListener("dimensionschange",this.handleViewerDimensionsChange)}handlePositionChanged(i,t){var s;this.transform=this.createTransform();console.debug(`Updating indicator position [previous=${JSON.stringify(t)}, current=${JSON.stringify(i)}]`);(s=this.indicator)===null||s===void 0?void 0:s.updateTransformAndNormal(this.transform,this.normal)}handleNormalChanged(i,t){var s;console.debug(`Updating indicator normal [previous=${JSON.stringify(t)}, current=${JSON.stringify(i)}]`);if(i){(s=this.indicator)===null||s===void 0?void 0:s.updateTransformAndNormal(this.transform,this.normal)}}render(){var i,n;return t(s,{key:"7553f25f76e20a766789b42fceb2d0c6024f48c3"},t("canvas",{key:"e9415c4ae604cdf3799f81e1eccfa5feab1210de",ref:i=>{this.canvasRef=i},class:"indicator",width:(i=this.viewer)===null||i===void 0?void 0:i.viewport.width,height:(n=this.viewer)===null||n===void 0?void 0:n.viewport.height}))}get hostEl(){return n(this)}static get watchers(){return{viewer:[{handleViewerChanged:0}],position:[{handlePositionChanged:0}],normal:[{handleNormalChanged:0}]}}};T.style=J();export{T as vertex_viewer_hit_result_indicator};
|
|
5
|
+
//# sourceMappingURL=p-9a39315d.entry.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{v as t,a as o,q as n,h as s,m as c}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{v as t,a as o,q as n,h as s,m as c}from"./p-2UsvOTHJ.js";function a(t){return t.reduce(((t,o)=>[...t,o.x,o.y]),[])}function i(n){const{position:s,rotation:c,scale:a}=n;const i=t.create(o.toRadians(c.x),o.toRadians(c.y),o.toRadians(c.z));return{position:s,rotation:i,scale:a}}function r(n){const{position:s,rotation:c,scale:a}=n;const i=t.create(o.toDegrees(c.x),o.toDegrees(c.y),o.toDegrees(c.z));return{position:s,rotation:i,scale:a}}function e(o){const{position:a,rotation:i,scale:r}=o;const e=n.fromEuler(s.create(i));const u=t.create(r,r,r);return c.makeTRS(a,e,u)}function u(o){const n=t.fromMatrixPosition(o);const c=s.fromRotationMatrix(o);const{x:a}=t.fromMatrixScale(o);return{position:n,rotation:c,scale:a}}function f(t,o){const n=e(i(t));const s=c.multiply(n,o);return r(u(s))}function p(t,o){const n=e(i(t));const s=c.multiply(n,c.invert(o));return r(u(s))}export{r as a,e as b,u as c,f as d,p as e,a as f,i as t};
|
|
5
|
+
//# sourceMappingURL=p-BT9d9jRt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p-
|
|
1
|
+
{"version":3,"file":"p-BT9d9jRt.js","sources":["src/lib/transforms/util.ts"],"sourcesContent":["import {\n Angle,\n Euler,\n Matrix4,\n Point,\n Quaternion,\n Vector3,\n} from '@vertexvis/geometry';\n\n/**\n * A type that wraps the local and world transforms for an item.\n */\nexport interface Transform {\n position: Vector3.Vector3;\n rotation: Vector3.Vector3;\n scale: number;\n}\n\n/**\n * Converts an array of points to an array of numbers\n * @param arr The array to convert\n * @returns The given array as an array of numbers\n */\nexport function flattenPointArray(arr: Point.Point[]): number[] {\n return arr.reduce((res, pt) => [...res, pt.x, pt.y], [] as number[]);\n}\n\n/**\n * Converts the rotation vector of a Transform from degrees to radians\n * @param transform The Transform to convert\n * @returns The Transform where the rotation matrix is in terms of radians\n */\nexport function toRadiansTransform(transform: Transform): Transform {\n const { position, rotation: r, scale } = transform;\n const rotation = Vector3.create(\n Angle.toRadians(r.x),\n Angle.toRadians(r.y),\n Angle.toRadians(r.z),\n );\n\n return { position, rotation, scale };\n}\n\n/**\n * Converts the rotation vector of a Transform from radians to degrees\n * @param transform The Transform to convert\n * @returns The Transform where the rotation matrix is in terms of degrees\n */\nexport function toDegreesTransform(transform: Transform): Transform {\n const { position, rotation: r, scale } = transform;\n const rotation = Vector3.create(\n Angle.toDegrees(r.x),\n Angle.toDegrees(r.y),\n Angle.toDegrees(r.z),\n );\n return { position, rotation, scale };\n}\n\n/**\n * Converts a Transform to a Matrix4 transform\n * @param transform The Transform to convert\n * @returns The transform as a Matrix4\n */\nexport function toMatrix(transform: Transform): Matrix4.Matrix4 {\n const { position: t, rotation, scale } = transform;\n const r = Quaternion.fromEuler(Euler.create(rotation));\n const s = Vector3.create(scale, scale, scale);\n return Matrix4.makeTRS(t, r, s);\n}\n\n/**\n * Converts a Matrix4 transform to a Transform\n * @param matrix The Matrix4 transform to convert\n * @returns The transform as a Transform\n */\nexport function toTransform(matrix: Matrix4.Matrix4): Transform {\n const position = Vector3.fromMatrixPosition(matrix);\n const rotation = Euler.fromRotationMatrix(matrix);\n const { x: scale } = Vector3.fromMatrixScale(matrix);\n return { position, rotation, scale };\n}\n\n/**\n * Converts a local transform to a world transform relative to the given parent world matrix.\n * @param localT The local transform to convert\n * @param parentWM The world matrix of the item's parent\n * @returns The world transform of the item\n */\nexport function toWorldTransform(\n localT: Transform,\n parentWM: Matrix4.Matrix4,\n): Transform {\n const localM = toMatrix(toRadiansTransform(localT));\n const worldM = Matrix4.multiply(localM, parentWM);\n return toDegreesTransform(toTransform(worldM));\n}\n\n/**\n * Converts a world transform to a local transform relative to the given parent world matrix.\n * @param worldT The world transform to convert\n * @param parentWM The world matrix of the item's parent\n * @returns The local transform of the item\n */\nexport function toLocalTransform(\n worldT: Transform,\n parentWM: Matrix4.Matrix4,\n): Transform {\n const worldM = toMatrix(toRadiansTransform(worldT));\n const localM = Matrix4.multiply(worldM, Matrix4.invert(parentWM));\n return toDegreesTransform(toTransform(localM));\n}\n"],"names":["Vector3","Angle","Quaternion","Euler","Matrix4"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{a as t}from"./p-5kcpg4MZ.js";import{E as s}from"./p-CDM7zNn0.js";import{p as i,g as e}from"./p-
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{a as t}from"./p-5kcpg4MZ.js";import{E as s}from"./p-CDM7zNn0.js";import{p as i,g as e}from"./p-2UsvOTHJ.js";class n{constructor(t,i){this.model=t;this.viewer=i;this.additionalTransforms=[];this.operationInFlight=false;this.operationAborted=false;this.executeStarted=new s;this.executeComplete=new s;this.executeAborted=new s;this.additionalTransforms=[t=>t.items.where((t=>t.all())).deselect()];this.operationTransform=t=>t.select()}setStartPoint(t){this.previousViewerCameraControls=this.viewer.cameraControls;this.viewer.cameraControls=false;this.model.setStartPoint(t)}setEndPoint(t){this.model.setEndPoint(t)}setOperationTransform(t){this.operationTransform=t}setAdditionalTransforms(t){this.additionalTransforms=t}onExecuteStarted(t){return this.executeStarted.on(t)}onExecuteComplete(t){return this.executeComplete.on(t)}onExecuteAborted(t){return this.executeAborted.on(t)}async execute(){var s,i,e;const n=this.model.getScreenBounds();const h=this.model.getType();if(n!=null&&!this.operationInFlight){this.model.complete();try{this.operationInFlight=true;this.executeStarted.emit();const t=t=>this.additionalTransforms.map((s=>s(t))).flat();const s=t=>[this.operationTransform(t.items.where((t=>t.withVolumeIntersection(n,h==="exclusive"))))].flat();const i=await this.viewer.scene();await i.elements((i=>[...t(i),...s(i)])).execute({skipAwaitCorrelatedFrame:true})}catch(i){if(i instanceof t&&((s=i.summary)===null||s===void 0?void 0:s.toLocaleLowerCase().includes("operation aborted"))){this.executeAborted.emit(i);this.operationAborted=true}else{console.error("Failed to perform volume intersection query",i);throw i}}finally{this.viewer.cameraControls=(i=this.previousViewerCameraControls)!==null&&i!==void 0?i:true;this.previousViewerCameraControls=undefined;this.operationInFlight=false;this.executeComplete.emit({aborted:this.operationAborted});this.operationAborted=false}}else if(this.operationInFlight){this.model.cancel();throw new Error(`Unable to perform volume intersection query as there is already one in-flight.`)}else{this.model.cancel();this.viewer.cameraControls=(e=this.previousViewerCameraControls)!==null&&e!==void 0?e:true}}}class h{constructor(t){this.mode=t;this.dragStarted=new s;this.dragComplete=new s;this.dragCancelled=new s;this.screenBoundsChanged=new s}setStartPoint(t){this.startPoint=t;this.dragStarted.emit()}setEndPoint(t){if(this.startPoint!=null&&i.distance(this.startPoint,t)>=2){this.endPoint=t;this.updateQueryType();this.screenBoundsChanged.emit(this.getQueryDetails())}}setMode(t){this.mode=t}complete(){if(this.startPoint!=null&&this.endPoint!=null){this.screenBoundsChanged.emit(undefined);this.dragComplete.emit(this.getQueryDetails());this.reset()}}cancel(){this.screenBoundsChanged.emit(undefined);this.dragCancelled.emit();this.reset()}reset(){this.startPoint=undefined;this.endPoint=undefined;this.type=undefined}getScreenBounds(){return this.startPoint!=null&&this.endPoint!=null?e.fromPoints(this.startPoint,this.endPoint):undefined}getType(){return this.type}onScreenBoundsChanged(t){return this.screenBoundsChanged.on(t)}onDragStarted(t){return this.dragStarted.on(t)}onDragComplete(t){return this.dragComplete.on(t)}onDragCancelled(t){return this.dragCancelled.on(t)}getQueryDetails(){if(this.startPoint!=null&&this.endPoint!=null&&this.type!=null){return{screenBounds:e.fromPoints(this.startPoint,this.endPoint),type:this.type}}else{throw new Error("Failed to create query details, the start and end points must be set.")}}updateQueryType(){var t;if(this.startPoint!=null&&this.endPoint!=null){const s=i.subtract(this.endPoint,this.startPoint).x>0?"exclusive":"inclusive";this.type=(t=this.mode)!==null&&t!==void 0?t:s}}}export{n as V,h as a};
|
|
5
|
+
//# sourceMappingURL=p-Bdf4AcJ2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"p-VEJB73Ei.js","sources":["src/lib/volume-intersection/controller.ts","src/lib/volume-intersection/model.ts"],"sourcesContent":["import { Point } from '@vertexvis/geometry';\nimport { StreamRequestError } from '@vertexvis/stream-api';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport {\n PmiAnnotationOperationsBuilder,\n SceneItemOperationsBuilder,\n TerminalItemOperationBuilder,\n} from '../scenes';\nimport { SceneElementQueryExecutor } from '../scenes/queries';\nimport { VolumeIntersectionQueryModel } from './model';\n\nexport type OperationTransform = (\n builder: SceneItemOperationsBuilder,\n) => TerminalItemOperationBuilder;\nexport type AdditionalTransform = (\n executor: SceneElementQueryExecutor,\n) => TerminalItemOperationBuilder;\n\nexport interface CompleteExecutionDetails {\n aborted: boolean;\n}\n\nexport class VolumeIntersectionQueryController {\n private previousViewerCameraControls?: boolean;\n private operationTransform: OperationTransform;\n private additionalTransforms: AdditionalTransform[] = [];\n private operationInFlight = false;\n private operationAborted = false;\n\n private executeStarted = new EventDispatcher<void>();\n private executeComplete = new EventDispatcher<CompleteExecutionDetails>();\n private executeAborted = new EventDispatcher<StreamRequestError>();\n\n public constructor(\n private model: VolumeIntersectionQueryModel,\n private viewer: HTMLVertexViewerElement,\n ) {\n this.additionalTransforms = [\n (op) => op.items.where((q) => q.all()).deselect(),\n ];\n this.operationTransform = (builder) => builder.select();\n }\n\n public setStartPoint(point: Point.Point): void {\n this.previousViewerCameraControls = this.viewer.cameraControls;\n this.viewer.cameraControls = false;\n\n this.model.setStartPoint(point);\n }\n\n public setEndPoint(point: Point.Point): void {\n this.model.setEndPoint(point);\n }\n\n /**\n * Updates the operation that will be applied based on the volume intersection\n * query. Defaults to `(builder) => builder.select()`, which will select any\n * of the results of the query.\n */\n public setOperationTransform(operationTransform: OperationTransform): void {\n this.operationTransform = operationTransform;\n }\n\n /**\n * Updates any additional operations that should be performed independent of\n * the volume intersection query. This can be used to perform an operation on\n * the entirety of the scene prior to the operation on the result of the\n * volume intersection query.\n * Defaults to `[(op) => op.items.where((q) => q.all()).deselect()]`, which will\n * clear any prior selection before the default selection.\n */\n public setAdditionalTransforms(\n additionalTransforms: AdditionalTransform[],\n ): void {\n this.additionalTransforms = additionalTransforms;\n }\n\n public onExecuteStarted(listener: Listener<void>): Disposable {\n return this.executeStarted.on(listener);\n }\n\n public onExecuteComplete(\n listener: Listener<CompleteExecutionDetails>,\n ): Disposable {\n return this.executeComplete.on(listener);\n }\n\n public onExecuteAborted(listener: Listener<StreamRequestError>): Disposable {\n return this.executeAborted.on(listener);\n }\n\n public async execute(): Promise<void> {\n const screenBounds = this.model.getScreenBounds();\n const type = this.model.getType();\n\n if (screenBounds != null && !this.operationInFlight) {\n this.model.complete();\n\n try {\n this.operationInFlight = true;\n this.executeStarted.emit();\n\n const additionalTransforms = (\n op: SceneElementQueryExecutor,\n ): Array<SceneItemOperationsBuilder | PmiAnnotationOperationsBuilder> =>\n this.additionalTransforms.map((t) => t(op)).flat();\n const operationTransforms = (\n op: SceneElementQueryExecutor,\n ): Array<SceneItemOperationsBuilder | PmiAnnotationOperationsBuilder> =>\n [\n this.operationTransform(\n op.items.where((q) =>\n q.withVolumeIntersection(screenBounds, type === 'exclusive'),\n ),\n ),\n ].flat();\n\n const scene = await this.viewer.scene();\n await scene\n .elements((op) => [\n ...additionalTransforms(op),\n ...operationTransforms(op),\n ])\n .execute({\n skipAwaitCorrelatedFrame: true,\n });\n } catch (e) {\n if (\n e instanceof StreamRequestError &&\n e.summary?.toLocaleLowerCase().includes('operation aborted')\n ) {\n this.executeAborted.emit(e);\n this.operationAborted = true;\n } else {\n console.error('Failed to perform volume intersection query', e);\n throw e;\n }\n } finally {\n this.viewer.cameraControls = this.previousViewerCameraControls ?? true;\n this.previousViewerCameraControls = undefined;\n this.operationInFlight = false;\n this.executeComplete.emit({\n aborted: this.operationAborted,\n });\n this.operationAborted = false;\n }\n } else if (this.operationInFlight) {\n this.model.cancel();\n\n throw new Error(\n `Unable to perform volume intersection query as there is already one in-flight.`,\n );\n } else {\n this.model.cancel();\n\n this.viewer.cameraControls = this.previousViewerCameraControls ?? true;\n }\n }\n}\n","import { Point, Rectangle } from '@vertexvis/geometry';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport { VolumeIntersectionQueryMode } from '../../components/viewer-box-query-tool/types';\n\nexport type QueryType = 'inclusive' | 'exclusive';\n\nexport interface VolumeIntersectionQueryDetails {\n screenBounds: Rectangle.Rectangle;\n type: QueryType;\n}\n\nexport class VolumeIntersectionQueryModel {\n private startPoint?: Point.Point;\n private endPoint?: Point.Point;\n private type?: QueryType;\n\n private dragStarted = new EventDispatcher<void>();\n private dragComplete = new EventDispatcher<VolumeIntersectionQueryDetails>();\n private dragCancelled = new EventDispatcher<void>();\n\n private screenBoundsChanged = new EventDispatcher<\n VolumeIntersectionQueryDetails | undefined\n >();\n\n public constructor(private mode?: VolumeIntersectionQueryMode) {}\n\n public setStartPoint(point: Point.Point): void {\n this.startPoint = point;\n\n this.dragStarted.emit();\n }\n\n public setEndPoint(point: Point.Point): void {\n if (\n this.startPoint != null &&\n Point.distance(this.startPoint, point) >= 2\n ) {\n this.endPoint = point;\n\n this.updateQueryType();\n this.screenBoundsChanged.emit(this.getQueryDetails());\n }\n }\n\n public setMode(mode?: VolumeIntersectionQueryMode): void {\n this.mode = mode;\n }\n\n public complete(): void {\n if (this.startPoint != null && this.endPoint != null) {\n this.screenBoundsChanged.emit(undefined);\n this.dragComplete.emit(this.getQueryDetails());\n this.reset();\n }\n }\n\n public cancel(): void {\n this.screenBoundsChanged.emit(undefined);\n this.dragCancelled.emit();\n this.reset();\n }\n\n public reset(): void {\n this.startPoint = undefined;\n this.endPoint = undefined;\n this.type = undefined;\n }\n\n public getScreenBounds(): Rectangle.Rectangle | undefined {\n return this.startPoint != null && this.endPoint != null\n ? Rectangle.fromPoints(this.startPoint, this.endPoint)\n : undefined;\n }\n\n public getType(): QueryType | undefined {\n return this.type;\n }\n\n public onScreenBoundsChanged(\n listener: Listener<VolumeIntersectionQueryDetails | undefined>,\n ): Disposable {\n return this.screenBoundsChanged.on(listener);\n }\n\n public onDragStarted(listener: Listener<void>): Disposable {\n return this.dragStarted.on(listener);\n }\n\n public onDragComplete(\n listener: Listener<VolumeIntersectionQueryDetails>,\n ): Disposable {\n return this.dragComplete.on(listener);\n }\n\n public onDragCancelled(listener: Listener<void>): Disposable {\n return this.dragCancelled.on(listener);\n }\n\n private getQueryDetails(): VolumeIntersectionQueryDetails {\n if (this.startPoint != null && this.endPoint != null && this.type != null) {\n return {\n screenBounds: Rectangle.fromPoints(this.startPoint, this.endPoint),\n type: this.type,\n };\n } else {\n throw new Error(\n 'Failed to create query details, the start and end points must be set.',\n );\n }\n }\n\n private updateQueryType(): void {\n if (this.startPoint != null && this.endPoint != null) {\n const directionalType =\n Point.subtract(this.endPoint, this.startPoint).x > 0\n ? 'exclusive'\n : 'inclusive';\n\n this.type = this.mode ?? directionalType;\n }\n }\n}\n"],"names":["point","Point","Rectangle"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"p-Bdf4AcJ2.js","sources":["src/lib/volume-intersection/controller.ts","src/lib/volume-intersection/model.ts"],"sourcesContent":["import { Point } from '@vertexvis/geometry';\nimport { StreamRequestError } from '@vertexvis/stream-api';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport {\n PmiAnnotationOperationsBuilder,\n SceneItemOperationsBuilder,\n TerminalItemOperationBuilder,\n} from '../scenes';\nimport { SceneElementQueryExecutor } from '../scenes/queries';\nimport { VolumeIntersectionQueryModel } from './model';\n\nexport type OperationTransform = (\n builder: SceneItemOperationsBuilder,\n) => TerminalItemOperationBuilder;\nexport type AdditionalTransform = (\n executor: SceneElementQueryExecutor,\n) => TerminalItemOperationBuilder;\n\nexport interface CompleteExecutionDetails {\n aborted: boolean;\n}\n\nexport class VolumeIntersectionQueryController {\n private previousViewerCameraControls?: boolean;\n private operationTransform: OperationTransform;\n private additionalTransforms: AdditionalTransform[] = [];\n private operationInFlight = false;\n private operationAborted = false;\n\n private executeStarted = new EventDispatcher<void>();\n private executeComplete = new EventDispatcher<CompleteExecutionDetails>();\n private executeAborted = new EventDispatcher<StreamRequestError>();\n\n public constructor(\n private model: VolumeIntersectionQueryModel,\n private viewer: HTMLVertexViewerElement,\n ) {\n this.additionalTransforms = [\n (op) => op.items.where((q) => q.all()).deselect(),\n ];\n this.operationTransform = (builder) => builder.select();\n }\n\n public setStartPoint(point: Point.Point): void {\n this.previousViewerCameraControls = this.viewer.cameraControls;\n this.viewer.cameraControls = false;\n\n this.model.setStartPoint(point);\n }\n\n public setEndPoint(point: Point.Point): void {\n this.model.setEndPoint(point);\n }\n\n /**\n * Updates the operation that will be applied based on the volume intersection\n * query. Defaults to `(builder) => builder.select()`, which will select any\n * of the results of the query.\n */\n public setOperationTransform(operationTransform: OperationTransform): void {\n this.operationTransform = operationTransform;\n }\n\n /**\n * Updates any additional operations that should be performed independent of\n * the volume intersection query. This can be used to perform an operation on\n * the entirety of the scene prior to the operation on the result of the\n * volume intersection query.\n * Defaults to `[(op) => op.items.where((q) => q.all()).deselect()]`, which will\n * clear any prior selection before the default selection.\n */\n public setAdditionalTransforms(\n additionalTransforms: AdditionalTransform[],\n ): void {\n this.additionalTransforms = additionalTransforms;\n }\n\n public onExecuteStarted(listener: Listener<void>): Disposable {\n return this.executeStarted.on(listener);\n }\n\n public onExecuteComplete(\n listener: Listener<CompleteExecutionDetails>,\n ): Disposable {\n return this.executeComplete.on(listener);\n }\n\n public onExecuteAborted(listener: Listener<StreamRequestError>): Disposable {\n return this.executeAborted.on(listener);\n }\n\n public async execute(): Promise<void> {\n const screenBounds = this.model.getScreenBounds();\n const type = this.model.getType();\n\n if (screenBounds != null && !this.operationInFlight) {\n this.model.complete();\n\n try {\n this.operationInFlight = true;\n this.executeStarted.emit();\n\n const additionalTransforms = (\n op: SceneElementQueryExecutor,\n ): Array<SceneItemOperationsBuilder | PmiAnnotationOperationsBuilder> =>\n this.additionalTransforms.map((t) => t(op)).flat();\n const operationTransforms = (\n op: SceneElementQueryExecutor,\n ): Array<SceneItemOperationsBuilder | PmiAnnotationOperationsBuilder> =>\n [\n this.operationTransform(\n op.items.where((q) =>\n q.withVolumeIntersection(screenBounds, type === 'exclusive'),\n ),\n ),\n ].flat();\n\n const scene = await this.viewer.scene();\n await scene\n .elements((op) => [\n ...additionalTransforms(op),\n ...operationTransforms(op),\n ])\n .execute({\n skipAwaitCorrelatedFrame: true,\n });\n } catch (e) {\n if (\n e instanceof StreamRequestError &&\n e.summary?.toLocaleLowerCase().includes('operation aborted')\n ) {\n this.executeAborted.emit(e);\n this.operationAborted = true;\n } else {\n console.error('Failed to perform volume intersection query', e);\n throw e;\n }\n } finally {\n this.viewer.cameraControls = this.previousViewerCameraControls ?? true;\n this.previousViewerCameraControls = undefined;\n this.operationInFlight = false;\n this.executeComplete.emit({\n aborted: this.operationAborted,\n });\n this.operationAborted = false;\n }\n } else if (this.operationInFlight) {\n this.model.cancel();\n\n throw new Error(\n `Unable to perform volume intersection query as there is already one in-flight.`,\n );\n } else {\n this.model.cancel();\n\n this.viewer.cameraControls = this.previousViewerCameraControls ?? true;\n }\n }\n}\n","import { Point, Rectangle } from '@vertexvis/geometry';\nimport { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nimport { VolumeIntersectionQueryMode } from '../../components/viewer-box-query-tool/types';\n\nexport type QueryType = 'inclusive' | 'exclusive';\n\nexport interface VolumeIntersectionQueryDetails {\n screenBounds: Rectangle.Rectangle;\n type: QueryType;\n}\n\nexport class VolumeIntersectionQueryModel {\n private startPoint?: Point.Point;\n private endPoint?: Point.Point;\n private type?: QueryType;\n\n private dragStarted = new EventDispatcher<void>();\n private dragComplete = new EventDispatcher<VolumeIntersectionQueryDetails>();\n private dragCancelled = new EventDispatcher<void>();\n\n private screenBoundsChanged = new EventDispatcher<\n VolumeIntersectionQueryDetails | undefined\n >();\n\n public constructor(private mode?: VolumeIntersectionQueryMode) {}\n\n public setStartPoint(point: Point.Point): void {\n this.startPoint = point;\n\n this.dragStarted.emit();\n }\n\n public setEndPoint(point: Point.Point): void {\n if (\n this.startPoint != null &&\n Point.distance(this.startPoint, point) >= 2\n ) {\n this.endPoint = point;\n\n this.updateQueryType();\n this.screenBoundsChanged.emit(this.getQueryDetails());\n }\n }\n\n public setMode(mode?: VolumeIntersectionQueryMode): void {\n this.mode = mode;\n }\n\n public complete(): void {\n if (this.startPoint != null && this.endPoint != null) {\n this.screenBoundsChanged.emit(undefined);\n this.dragComplete.emit(this.getQueryDetails());\n this.reset();\n }\n }\n\n public cancel(): void {\n this.screenBoundsChanged.emit(undefined);\n this.dragCancelled.emit();\n this.reset();\n }\n\n public reset(): void {\n this.startPoint = undefined;\n this.endPoint = undefined;\n this.type = undefined;\n }\n\n public getScreenBounds(): Rectangle.Rectangle | undefined {\n return this.startPoint != null && this.endPoint != null\n ? Rectangle.fromPoints(this.startPoint, this.endPoint)\n : undefined;\n }\n\n public getType(): QueryType | undefined {\n return this.type;\n }\n\n public onScreenBoundsChanged(\n listener: Listener<VolumeIntersectionQueryDetails | undefined>,\n ): Disposable {\n return this.screenBoundsChanged.on(listener);\n }\n\n public onDragStarted(listener: Listener<void>): Disposable {\n return this.dragStarted.on(listener);\n }\n\n public onDragComplete(\n listener: Listener<VolumeIntersectionQueryDetails>,\n ): Disposable {\n return this.dragComplete.on(listener);\n }\n\n public onDragCancelled(listener: Listener<void>): Disposable {\n return this.dragCancelled.on(listener);\n }\n\n private getQueryDetails(): VolumeIntersectionQueryDetails {\n if (this.startPoint != null && this.endPoint != null && this.type != null) {\n return {\n screenBounds: Rectangle.fromPoints(this.startPoint, this.endPoint),\n type: this.type,\n };\n } else {\n throw new Error(\n 'Failed to create query details, the start and end points must be set.',\n );\n }\n }\n\n private updateQueryType(): void {\n if (this.startPoint != null && this.endPoint != null) {\n const directionalType =\n Point.subtract(this.endPoint, this.startPoint).x > 0\n ? 'exclusive'\n : 'inclusive';\n\n this.type = this.mode ?? directionalType;\n }\n }\n}\n"],"names":["point","Point","Rectangle"],"mappings":";;;;;;;MAuBa,iCAAiC,CAAA;IAW5C,WAAA,CACU,KAAmC,EACnC,MAA+B,EAAA;AAD/B,QAAA,IAAA,CAAA,KAAK,GAAL,KAAK;AACL,QAAA,IAAA,CAAA,MAAM,GAAN,MAAM;AAVR,QAAA,IAAA,CAAA,oBAAoB,GAA0B,EAAE;AAChD,QAAA,IAAA,CAAA,iBAAiB,GAAG,KAAK;AACzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,KAAK;AAExB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,EAAQ;AAC5C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,EAA4B;AACjE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,EAAsB;QAMhE,IAAI,CAAC,oBAAoB,GAAG;YAC1B,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;SAClD;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,MAAM,EAAE;;AAGlD,IAAA,aAAa,CAAC,KAAkB,EAAA;QACrC,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;AAC9D,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,KAAK;AAElC,QAAA,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;;AAG1B,IAAA,WAAW,CAAC,KAAkB,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC;;AAG/B;;;;AAIG;AACI,IAAA,qBAAqB,CAAC,kBAAsC,EAAA;AACjE,QAAA,IAAI,CAAC,kBAAkB,GAAG,kBAAkB;;AAG9C;;;;;;;AAOG;AACI,IAAA,uBAAuB,CAC5B,oBAA2C,EAAA;AAE3C,QAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;;AAG3C,IAAA,gBAAgB,CAAC,QAAwB,EAAA;QAC9C,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC;;AAGlC,IAAA,iBAAiB,CACtB,QAA4C,EAAA;QAE5C,OAAO,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,QAAQ,CAAC;;AAGnC,IAAA,gBAAgB,CAAC,QAAsC,EAAA;QAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC;;AAGlC,IAAA,MAAM,OAAO,GAAA;;QAClB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE;QACjD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE;QAEjC,IAAI,YAAY,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AACnD,YAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;AAErB,YAAA,IAAI;AACF,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC7B,gBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE;gBAE1B,MAAM,oBAAoB,GAAG,CAC3B,EAA6B,KAE7B,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE;AACpD,gBAAA,MAAM,mBAAmB,GAAG,CAC1B,EAA6B,KAE7B;oBACE,IAAI,CAAC,kBAAkB,CACrB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KACf,CAAC,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,KAAK,WAAW,CAAC,CAC7D,CACF;iBACF,CAAC,IAAI,EAAE;gBAEV,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;AACvC,gBAAA,MAAM;AACH,qBAAA,QAAQ,CAAC,CAAC,EAAE,KAAK;oBAChB,GAAG,oBAAoB,CAAC,EAAE,CAAC;oBAC3B,GAAG,mBAAmB,CAAC,EAAE,CAAC;iBAC3B;AACA,qBAAA,OAAO,CAAC;AACP,oBAAA,wBAAwB,EAAE,IAAI;AAC/B,iBAAA,CAAC;;YACJ,OAAO,CAAC,EAAE;gBACV,IACE,CAAC,YAAY,kBAAkB;AAC/B,qBAAA,CAAA,EAAA,GAAA,CAAC,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,iBAAiB,EAAA,CAAG,QAAQ,CAAC,mBAAmB,CAAC,CAAA,EAC5D;AACA,oBAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;AAC3B,oBAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI;;qBACvB;AACL,oBAAA,OAAO,CAAC,KAAK,CAAC,6CAA6C,EAAE,CAAC,CAAC;AAC/D,oBAAA,MAAM,CAAC;;;oBAED;gBACR,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,4BAA4B,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;AACtE,gBAAA,IAAI,CAAC,4BAA4B,GAAG,SAAS;AAC7C,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;oBACxB,OAAO,EAAE,IAAI,CAAC,gBAAgB;AAC/B,iBAAA,CAAC;AACF,gBAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK;;;AAE1B,aAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACjC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AAEnB,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,8EAAA,CAAgF,CACjF;;aACI;AACL,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAEnB,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,4BAA4B,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,IAAI;;;AAG3E;;MCnJY,4BAA4B,CAAA;AAavC,IAAA,WAAA,CAA2B,IAAkC,EAAA;AAAlC,QAAA,IAAA,CAAA,IAAI,GAAJ,IAAI;AARvB,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,EAAQ;AACzC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,EAAkC;AACpE,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,EAAQ;AAE3C,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,eAAe,EAE9C;;AAII,IAAA,aAAa,CAAC,KAAkB,EAAA;AACrC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK;AAEvB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;;AAGlB,IAAA,WAAW,CAACA,OAAkB,EAAA;AACnC,QAAA,IACE,IAAI,CAAC,UAAU,IAAI,IAAI;AACvB,YAAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAED,OAAK,CAAC,IAAI,CAAC,EAC3C;AACA,YAAA,IAAI,CAAC,QAAQ,GAAGA,OAAK;YAErB,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;;;AAIlD,IAAA,OAAO,CAAC,IAAkC,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;IAGX,QAAQ,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACpD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;YACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;YAC9C,IAAI,CAAC,KAAK,EAAE;;;IAIT,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,SAAS,CAAC;AACxC,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;QACzB,IAAI,CAAC,KAAK,EAAE;;IAGP,KAAK,GAAA;AACV,QAAA,IAAI,CAAC,UAAU,GAAG,SAAS;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,SAAS;;IAGhB,eAAe,GAAA;QACpB,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI;AACjD,cAAEE,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ;cACnD,SAAS;;IAGR,OAAO,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI;;AAGX,IAAA,qBAAqB,CAC1B,QAA8D,EAAA;QAE9D,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE,CAAC,QAAQ,CAAC;;AAGvC,IAAA,aAAa,CAAC,QAAwB,EAAA;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC;;AAG/B,IAAA,cAAc,CACnB,QAAkD,EAAA;QAElD,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,QAAQ,CAAC;;AAGhC,IAAA,eAAe,CAAC,QAAwB,EAAA;QAC7C,OAAO,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC;;IAGhC,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE;YACzE,OAAO;AACL,gBAAA,YAAY,EAAEA,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC;gBAClE,IAAI,EAAE,IAAI,CAAC,IAAI;aAChB;;aACI;AACL,YAAA,MAAM,IAAI,KAAK,CACb,uEAAuE,CACxE;;;IAIG,eAAe,GAAA;;AACrB,QAAA,IAAI,IAAI,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,EAAE;AACpD,YAAA,MAAM,eAAe,GACnBD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG;AACjD,kBAAE;kBACA,WAAW;YAEjB,IAAI,CAAC,IAAI,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,IAAI,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,EAAA,GAAI,eAAe;;;AAG7C;;;;"}
|