@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{t,p as i,H as s,d as e,h as n,e as o}from"./p-Bb32XUUS.js";import{p as h}from"./p-CZZALKHT.js";import{_ as r}from"./p-C-NyjLsm.js";import{r as l}from"./p-Cd7kap5W.js";import{i as a}from"./p-DeUGB_Ik.js";import{E as d}from"./p-CDM7zNn0.js";function u(t){return t.clientHeight}function c(t,i){return t.contains(i)}function f(t){return t.toLowerCase()}var v=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var p=/[^A-Z0-9]+/gi;function m(t,i){if(i===void 0){i={}}var s=i.splitRegexp,e=s===void 0?v:s,n=i.stripRegexp,o=n===void 0?p:n,h=i.transform,r=h===void 0?f:h,l=i.delimiter,a=l===void 0?" ":l;var d=w(w(t,e,"$1\0$2"),o,"\0");var u=0;var c=d.length;while(d.charAt(u)==="\0")u++;while(d.charAt(c-1)==="\0")c--;return d.slice(u,c).split("\0").map(r).join(a)}function w(t,i,s){if(i instanceof RegExp)return t.replace(i,s);return i.reduce((function(t,i){return t.replace(i,s)}),t)}function g(t,i){var s=t.charAt(0);var e=t.substr(1).toLowerCase();if(i>0&&s>="0"&&s<="9"){return"_"+s+e}return""+s.toUpperCase()+e}function y(t,i){if(i===void 0){i={}}return m(t,r({delimiter:"",transform:g},i))}function b(t,i){if(i===0)return t.toLowerCase();return g(t,i)}function x(t,i){if(i===void 0){i={}}return y(t,r({transform:b},i))}const C=/{{(.+)}}/;class R{constructor(t){this.bindings=t}bind(t){this.bindings.forEach((i=>i.bind(t)))}}class z{constructor(t,i){this.node=t;this.expr=i}}class $ extends z{constructor(t,i){super(t,i)}bind(t){const i=T(t,this.expr);if(i!==this.node.textContent){this.node.textContent=i}}}class D extends z{constructor(t,i,s){super(t,i);this.attr=s}bind(t){const i=T(t,this.expr);const s=this.node.getAttribute(this.attr);if(s!==i){this.node.setAttribute(this.attr,i)}}}class L extends z{constructor(t,i,s){super(t,i);this.prop=s}bind(t){const i=k(t,this.expr);const s=this.node[this.prop];if(s!==i){this.node[this.prop]=i}}}class P extends z{constructor(t,i,s){super(t,i);this.eventName=s}bind(t){var i;const s=M(this.expr);if(s!=null){(i=this.disposable)===null||i===void 0?void 0:i.dispose();const e=V(t,s,true);this.node.addEventListener(this.eventName,e);this.disposable={dispose:()=>{this.node.removeEventListener(this.eventName,e)}}}}}function E(t){const i=[];if(t.nodeType===Node.ELEMENT_NODE){const s=t;const e=H(s);e.forEach((t=>{if(t.name.startsWith("event:")){const e=x(t.name.replace("event:",""));i.push(new P(s,t.value,e))}else if(t.name.startsWith("attr:")){i.push(new D(s,t.value,t.name.replace("attr:","")))}else if(t.name.startsWith("prop:")){const e=x(t.name.replace("prop:",""));i.push(new L(s,t.value,e))}}))}else if(t.nodeType===Node.TEXT_NODE&&t.textContent!=null&&C.test(t.textContent)){i.push(new $(t,t.textContent))}for(let s=0;s<t.childNodes.length;s++){i.push(...E(t.childNodes[s]))}return i}function H(t){return Array.from(t.attributes).filter((t=>C.test(t.value)))}function M(t){const i=C.exec(t);return i!=null?i[1]:undefined}function T(t,i){const s=M(i);if(s!=null){const e=V(t,s,true);return i.replace(`{{${s}}}`,e===null||e===void 0?void 0:e.toString())}else{return i}}function k(t,i){const s=M(i);if(s!=null){const i=V(t,s,true);return i}else{return i}}function V(t,i,s=false){const[e,...n]=i.split(".");if(s&&n.length===0){return t}else if(s&&n.length>0){return V(t,n.join("."),false)}else{const i=t[e];if(n.length>0){return V(i,n.join("."),false)}else{return i}}}class W{constructor(t,i){this.container=t;this.elementFactory=i;this.instanceMap=new Map;this.elements=[]}swapHeadToTail(t){const i=this.elements.splice(0,t);this.elements.splice(this.elements.length,0,...i);return this.elements.concat()}swapTailToHead(t){const i=this.elements.splice(-t,t);this.elements.splice(0,0,...i);return this.elements.concat()}updateElements(t){const i=t-this.elements.length;if(i>0){for(let t=0;t<i;t++){this.createElement()}}else{for(let t=0;t<-i;t++){this.deleteElement()}}return this.elements.concat()}updateData(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);const n=t(s);e===null||e===void 0?void 0:e.bindings.bind(n)}))}updateElementFactory(t){this.elementFactory=t;this.updateElements(0)}iterateElements(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);t(i,e.bindings,s)}))}createElement(){const t=this.elementFactory();this.elements.push(t.element);this.instanceMap.set(t.element,t);this.container.append(t.element);return t}deleteElement(){const t=this.elements.pop();if(t!=null){this.instanceMap.delete(t);t.remove()}}}function A(t){const i=t.content.cloneNode(true);const s=i.firstElementChild;const e=new R(E(i));return{element:s,bindings:e}}function I(t){var i;return(i=t.getBoundingClientRect().top)!==null&&i!==void 0?i:0}function j(t){return t.clientWidth}function N(t,i,s){t.scrollTo({top:i,...s})}class S{constructor(){this.onStateChange=new d}setHovered(t){this.onStateChange.emit(t)}stateChanged(t){return this.onStateChange.on(t)}}function Z(t,i,s=200){window.clearTimeout(i);return window.setTimeout(t,s)}const U=()=>`:host{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;font-size:0.825rem;--scene-tree-table-row-padding:2px 0px;--scene-tree-table-column-gap:0.5rem;--scene-tree-table-column-resize-cursor:col-resize}.header{position:relative;display:grid;width:100%;border-bottom:var(--scene-tree-toolbar-separator)}.table{position:relative;display:grid;width:100%;height:100%;overflow:auto}.resize-overlay{position:absolute;top:0;cursor:var(--scene-tree-table-column-resize-cursor);z-index:1000;width:100%;height:100%}.divider-overlay{position:absolute;top:0;display:grid;pointer-events:none;z-index:2000;width:100%;height:100%}`;const G=i(class t extends s{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.layoutRendered=e(this,"layoutRendered");this.columnsResized=e(this,"columnsResized");this.rows=[];this.totalRows=0;this.rowHeight=24;this.overScanCount=25;this.layoutOffset=0;this.scrollOffset=0;this.viewportStartIndex=0;this.viewportEndIndex=0;this.columnGridLayout="1fr";this.columnGridFixedLayout="";this.isComputingCellHeight=true;this.isScrolling=false;this.stateMap={viewportRows:[],columnWidths:[],columnWidthPercentages:[]};this.lastStartIndex=0;this.columnElements=[];this.cellHoverController=new S;this.layoutColumns=()=>{const t=this.viewportEndIndex-this.viewportStartIndex+1;const i=this.viewportStartIndex-this.lastStartIndex;this.lastStartIndex=this.viewportStartIndex;this.iterateColumns(((s,e,n)=>{e.updateElements(t);if(i>0){e.swapHeadToTail(i)}else{e.swapTailToHead(-i)}s.style.minHeight=`${this.rowHeight*this.totalRows}px`;const o=n===0?t=>`calc(${t} * 0.5rem)`:()=>`0`;e.iterateElements(((t,i,s)=>{const e=this.stateMap.viewportRows[s];if(a(e)){this.updateCell(e,t,i,s,o)}}))}))};this.updateCell=(t,i,s,e,n)=>{i.style.position="absolute";i.style.top=`${(this.viewportStartIndex+e)*this.rowHeight}px`;i.style.boxSizing="border-box";i.style.height=`${this.rowHeight}px`;i.style.width="100%";i.style.paddingLeft=n(t.node.depth);i.tree=this.tree;i.node=t.node;i.hoverController=this.cellHoverController;i.isScrolling=this.isScrolling;s.bind(t)};this.updateLayoutPosition=()=>{l((()=>{if(this.tableElement!=null){this.layoutOffset=I(this.tableElement)}}))};this.recomputeColumnWidths=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidths=this.stateMap.columnWidthPercentages.map((i=>i*t));this.columnsResized.emit(this.stateMap.columnWidths)}};this.recomputeColumnPercentages=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidthPercentages=this.stateMap.columnWidths.map((i=>i/t))}};this.computeInitialColumnWidths=()=>{this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}));const t=this.getLayoutWidth();if(t!=null){const i=this.stateMap.columnWidths.reduce(((t,i)=>t+i),0);const s=this.stateMap.columnWidths.map((s=>s*(t/i)));this.stateMap.columnWidthPercentages=s.map((i=>i/t));this.stateMap.columnWidths=s}};this.updateColumnElements=()=>{this.columnElements=Array.from(this.hostEl.querySelectorAll("vertex-scene-tree-table-column"))};this.computeCellHeight=async()=>{var t;if(this.isComputingCellHeight&&this.columnElements.length>0){const i={index:0,node:{id:{hex:""},name:"Dummy row",expanded:false,selected:false,visible:false,partiallyVisible:false,isLeaf:false,depth:0,columnsList:[],filterHit:false,hasGeometry:false,phantom:false,endItem:false},metadata:{},data:{}};const{bindings:s,element:e}=this.createColumnCellInstance(this.columnElements[0]);s.bind(i);e.style.visibility="hidden";(t=this.columnElements[0])===null||t===void 0?void 0:t.appendChild(e);if(typeof e.componentOnReady==="function"){await e.componentOnReady()}let n=e.clientHeight;if(n===0){n=await new Promise((t=>{setTimeout((()=>t(e.getBoundingClientRect().height)),5)}))}this.rowHeight=n!==null&&n!==void 0?n:this.rowHeight;e.remove();this.isComputingCellHeight=this.rowHeight===0}};this.computeHeaderHeight=()=>{var t;if(this.stateMap.headerHeight==null){this.stateMap.headerHeight=(t=this.headerElement)===null||t===void 0?void 0:t.getBoundingClientRect().height;this.hostEl.style.setProperty("--header-height",`${this.stateMap.headerHeight}px`)}};this.computeColumnGridLayout=()=>{if(this.stateMap.columnWidths.length===0){this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}))}const t=this.getLayoutWidth();if(t!=null){if(this.stateMap.columnWidthPercentages.length===0){this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return((s=i.initialWidth)!==null&&s!==void 0?s:100)/t}))}}this.columnGridLayout=`${this.stateMap.columnWidths.slice(0,-1).reduce(((t,i)=>`${t} ${i}px`),"")} 1fr`;this.columnGridFixedLayout=`${this.stateMap.columnWidths.reduce(((t,i)=>`${t} ${i}px`),"")}`};this.bindHeaderData=()=>{if(this.stateMap.headerInstances==null){this.stateMap.headerInstances=this.columnElements.map(((t,i)=>{var s;const e=this.createHeaderInstance(t);if(e!=null){e.element.style.paddingRight=i===this.columnElements.length-1?`0`:`var(--scene-tree-table-column-gap)`;e.element.slot="header";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element)}return e})).filter((t=>t!=null))}if(this.stateMap.headerDividerInstances==null){this.stateMap.headerDividerInstances=this.columnElements.slice(0,-1).map(((t,i)=>{var s;const e=this.createDividerInstance();e.element.slot="divider";e.element.style.position="absolute";e.element.style.right="0";e.element.style.pointerEvents="auto";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element);return e}))}};this.rebindHeaderData=()=>{var t,i;this.removeDividerDragListeners();(t=this.stateMap.headerInstances)===null||t===void 0?void 0:t.forEach((t=>t.element.remove()));(i=this.stateMap.headerDividerInstances)===null||i===void 0?void 0:i.forEach((t=>t.element.remove()));this.stateMap.headerInstances=undefined;this.stateMap.headerDividerInstances=undefined;this.bindHeaderData();this.addDividerDragListeners()};this.createDividerPointerDownHandler=t=>i=>{var s,e;i.preventDefault();i.stopPropagation();this.lastDividerPointerPosition=h.create(Math.floor(i.clientX),Math.floor(i.clientY));this.resizingColumnIndex=t;(e=(s=this.stateMap.headerDividerInstances)===null||s===void 0?void 0:s[t])===null||e===void 0?void 0:e.element.classList.add("dragging");window.addEventListener("pointermove",this.handleDividerPointerMove);window.addEventListener("pointerup",this.handleDividerPointerUp)};this.handleDividerPointerMove=t=>{const i=h.create(Math.floor(t.clientX),Math.floor(t.clientY));if(this.lastDividerPointerPosition!=null&&this.resizingColumnIndex!=null){const t=this.resizingColumnIndex;const s=h.subtract(this.lastDividerPointerPosition,i);if(Math.abs(s.x)>=1&&this.isValidResize(s,t)){this.stateMap.columnWidths=this.stateMap.columnWidths.map(((i,e)=>e===t?i-s.x:i));if(t+1<this.stateMap.columnWidths.length){this.stateMap.columnWidths=this.stateMap.columnWidths.map(((i,e)=>e===t+1?i+s.x:i))}this.lastDividerPointerPosition=i;this.computeColumnGridLayout()}}};this.handleDividerPointerUp=()=>{var t,i;if(this.resizingColumnIndex!=null){(i=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t[this.resizingColumnIndex])===null||i===void 0?void 0:i.element.classList.remove("dragging")}this.lastDividerPointerPosition=undefined;this.resizingColumnIndex=undefined;this.recomputeColumnPercentages();this.recomputeColumnWidths();window.removeEventListener("pointermove",this.handleDividerPointerMove);window.removeEventListener("pointerup",this.handleDividerPointerUp)};this.isValidResize=(t,i)=>{var s,e,n,o;const h=this.columnElements[i];const r=this.columnElements[i+1];const l=this.stateMap.columnWidths[i];const a=this.stateMap.columnWidths[i+1];const d=(s=h.minWidth)!==null&&s!==void 0?s:0;const u=(e=h.maxWidth)!==null&&e!==void 0?e:Number.MAX_SAFE_INTEGER;const c=(n=r.minWidth)!==null&&n!==void 0?n:0;const f=(o=r.maxWidth)!==null&&o!==void 0?o:Number.MAX_SAFE_INTEGER;const v=l-t.x>d&&l-t.x<u;const p=r!=null?a+t.x>c&&a+t.x<f:true;return v&&p};this.handleScrollChanged=async t=>{this.isScrolling=true;this.scrollTimer=Z((()=>{this.isScrolling=false}),this.scrollTimer);this.scrollOffset=t.target.scrollTop;await this.computeAndUpdateViewportRows()}}componentWillLoad(){this.updateColumnElements();this.createPools();this.initializeColumnLayout();this.headerResizeObserver=new ResizeObserver((()=>{this.stateMap.headerHeight=undefined;this.computeHeaderHeight();this.updateLayoutPosition()}));this.resizeObserver=new ResizeObserver((()=>{this.updateLayoutPosition();this.clearLayoutHeight();this.clearLayoutWidth();this.recomputeColumnWidths();this.computeColumnGridLayout()}))}async componentDidLoad(){var t,i,s;(t=this.tableElement)===null||t===void 0?void 0:t.addEventListener("scroll",this.handleScrollChanged,{passive:true});if(this.headerElement!=null){(i=this.headerResizeObserver)===null||i===void 0?void 0:i.observe(this.headerElement)}(s=this.resizeObserver)===null||s===void 0?void 0:s.observe(this.hostEl);await Promise.resolve();await this.initializeMeasuredLayout()}async componentWillRender(){await this.computeAndUpdateViewportRows()}componentDidRender(){this.layoutColumns();this.layoutRendered.emit()}async componentDidUpdate(){if(this.isComputingCellHeight){await this.computeCellHeight()}}disconnectedCallback(){var t,i,s;(t=this.tableElement)===null||t===void 0?void 0:t.removeEventListener("scroll",this.handleScrollChanged);this.removeDividerDragListeners();(i=this.headerResizeObserver)===null||i===void 0?void 0:i.disconnect();(s=this.resizeObserver)===null||s===void 0?void 0:s.disconnect();this.stateMap.columnWidths=[];this.stateMap.columnWidthPercentages=[]}async handleViewportRowsPropsChanged(){await this.computeAndUpdateViewportRows()}async scrollToPosition(t,i){if(this.tableElement!=null){N(this.tableElement,t,i)}}async attemptComputeCellHeight(){this.computeCellHeight()}render(){return n(o,{key:"fb503e5ce411669efe4549f3d8063fe630993341"},n("div",{key:"1b7acde237a9a7cf8d14f950cc664b82dd253486",class:"header",ref:t=>this.headerElement=t,style:{gridTemplateColumns:this.columnGridFixedLayout,display:this.columnElements.length<=1?"none":"grid"}},n("slot",{key:"ec62af4cb951011ed571418051d52b6cdf2dd152",name:"header"})),n("div",{key:"d3183a765e381d9899a00d4a70302a28bc7deddd",class:"table",ref:t=>this.tableElement=t,style:{gridTemplateColumns:this.columnGridLayout}},n("slot",{key:"5dcfa30b5f230987cd33d35e9011718c60786ad4",onSlotchange:()=>{this.ensureDividerTemplateDefined();this.updateColumnElements();this.recreateColumnPools();this.computeInitialColumnWidths();this.rebindHeaderData();this.computeColumnGridLayout()}})),n("div",{key:"df5e5e83a5d833c22e0234d36ae6b6be224b8504",class:"divider-overlay",style:{gridTemplateColumns:this.columnGridFixedLayout}},n("slot",{key:"98ea7728b5faf0dcf48464aebcb99aae0369b8cc",name:"divider"})),this.resizingColumnIndex!=null&&n("div",{key:"e146248e00f7e8c63de50efdc72bc93a02be4227",class:"resize-overlay"}))}computeViewportRows(){const t=this.getLayoutHeight();const i=t!=null&&t>0&&!this.isComputingCellHeight;if(i){const i=Math.ceil(t/this.rowHeight);const s=Math.floor(this.scrollOffset/this.rowHeight);const e=s+i;const n=Math.max(0,s-this.overScanCount);const o=Math.min(this.totalRows-1,e+this.overScanCount);const h=this.getViewportRows(n,o);this.viewportStartIndex=n;this.viewportEndIndex=o;this.stateMap.viewportRows=h}}initializeColumnLayout(){this.computeInitialColumnWidths();this.computeColumnGridLayout();this.ensureDividerTemplateDefined();this.rebindHeaderData()}async initializeMeasuredLayout(){await this.computeCellHeight();this.computeHeaderHeight()}async computeAndUpdateViewportRows(){var t;this.computeViewportRows();if(((t=this.controller)===null||t===void 0?void 0:t.isConnected)&&this.totalRows>0){await this.controller.updateActiveRowRange(this.viewportStartIndex,this.viewportEndIndex)}}createPools(){if(this.stateMap.columnElementPools==null){this.stateMap.columnElementPools=this.columnElements.reduce(((t,i)=>t.set(i,new W(i,(()=>this.createColumnCellInstance(i))))),new WeakMap)}}recreateColumnPools(){this.columnElements.forEach((t=>{var i,s,e;if(((i=this.stateMap.columnElementPools)===null||i===void 0?void 0:i.get(t))==null){(s=this.stateMap.columnElementPools)===null||s===void 0?void 0:s.set(t,new W(t,(()=>this.createColumnCellInstance(t))))}else{(e=this.stateMap.columnElementPools.get(t))===null||e===void 0?void 0:e.updateElementFactory((()=>this.createColumnCellInstance(t)))}}))}iterateColumns(t){this.columnElements.forEach(((i,s)=>{var e;const n=(e=this.stateMap.columnElementPools)===null||e===void 0?void 0:e.get(i);if(n!=null){t(i,n,s)}else{throw new Error("Cannot find pool for column")}}))}ensureDividerTemplateDefined(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t==null){const t=document.createElement("template");t.slot="divider";t.innerHTML=`\n <vertex-scene-tree-table-resize-divider slot="divider">\n </vertex-scene-tree-table-resize-divider>\n `;this.hostEl.appendChild(t)}}createHeaderInstance(t){const i=t.querySelector('template[slot="header"]');if(i!=null){return A(i)}}createDividerInstance(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t!=null){return A(t)}else{throw new Error("Table is missing divider template element")}}createColumnCellInstance(t){const i=t.querySelector('template:not([slot="header"])');if(i!=null){return A(i)}else{throw new Error("Column is missing cell template element")}}addDividerDragListeners(){var t;this.stateMap.headerDividerListeners=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.map(((t,i)=>{const s=this.createDividerPointerDownHandler(i);t.element.addEventListener("pointerdown",s);return s}))}removeDividerDragListeners(){var t;if(this.stateMap.headerDividerListeners!=null){const i=this.stateMap.headerDividerListeners;(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.forEach(((t,s)=>{const e=i[s];if(e!=null){t.element.removeEventListener("pointerdown",e)}}));this.stateMap.headerDividerListeners=undefined}}getViewportRows(t,i){const s=this.rows.slice(t,i+1);return s.map((t=>t!=null?this.populateRowData(t):t))}populateRowData(t){var i;if(this.rowData!=null&&t!=null){const s=((i=this.rowData)===null||i===void 0?void 0:i.call(this,t))||{};return{...t,data:s}}else{return t}}getLayoutHeight(){if(this.layoutHeight==null&&this.tableElement!=null){this.layoutHeight=u(this.tableElement)}return this.layoutHeight}getLayoutWidth(){if(this.layoutWidth==null){const t=j(this.hostEl);if(t>0){this.layoutWidth=t}}return this.layoutWidth}clearLayoutHeight(){this.layoutHeight=undefined}clearLayoutWidth(){this.layoutWidth=undefined}get hostEl(){return this}static get watchers(){return{rows:[{handleViewportRowsPropsChanged:0}],totalRows:[{handleViewportRowsPropsChanged:0}],rowHeight:[{handleViewportRowsPropsChanged:0}]}}static get style(){return U()}},[257,"vertex-scene-tree-table-layout",{tree:[16],controller:[16],rows:[16],totalRows:[2,"total-rows"],rowHeight:[1026,"row-height"],overScanCount:[2,"over-scan-count"],rowData:[16],layoutOffset:[1026,"layout-offset"],scrollOffset:[1026,"scroll-offset"],layoutHeight:[1026,"layout-height"],layoutWidth:[1026,"layout-width"],viewportStartIndex:[1026,"viewport-start-index"],viewportEndIndex:[1026,"viewport-end-index"],columnGridLayout:[32],columnGridFixedLayout:[32],isComputingCellHeight:[32],lastDividerPointerPosition:[32],resizingColumnIndex:[32],isScrolling:[32],scrollTimer:[32],stateMap:[32],scrollToPosition:[64],attemptComputeCellHeight:[64]},undefined,{rows:[{handleViewportRowsPropsChanged:0}],totalRows:[{handleViewportRowsPropsChanged:0}],rowHeight:[{handleViewportRowsPropsChanged:0}]}]);function O(){if(typeof customElements==="undefined"){return}const i=["vertex-scene-tree-table-layout"];i.forEach((i=>{switch(i){case"vertex-scene-tree-table-layout":if(!customElements.get(t(i))){customElements.define(t(i),G)}break}}))}O();export{G as S,O as d,c as g};
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{t,p as i,H as s,d as e,h as n,e as o}from"./p-Bb32XUUS.js";import{p as h}from"./p-2UsvOTHJ.js";import{_ as r}from"./p-C-NyjLsm.js";import{r as l}from"./p-Cd7kap5W.js";import{i as a}from"./p-DeUGB_Ik.js";import{E as d}from"./p-CDM7zNn0.js";function u(t){return t.clientHeight}function c(t,i){return t.contains(i)}function f(t){return t.toLowerCase()}var v=[/([a-z0-9])([A-Z])/g,/([A-Z])([A-Z][a-z])/g];var p=/[^A-Z0-9]+/gi;function m(t,i){if(i===void 0){i={}}var s=i.splitRegexp,e=s===void 0?v:s,n=i.stripRegexp,o=n===void 0?p:n,h=i.transform,r=h===void 0?f:h,l=i.delimiter,a=l===void 0?" ":l;var d=w(w(t,e,"$1\0$2"),o,"\0");var u=0;var c=d.length;while(d.charAt(u)==="\0")u++;while(d.charAt(c-1)==="\0")c--;return d.slice(u,c).split("\0").map(r).join(a)}function w(t,i,s){if(i instanceof RegExp)return t.replace(i,s);return i.reduce((function(t,i){return t.replace(i,s)}),t)}function g(t,i){var s=t.charAt(0);var e=t.substr(1).toLowerCase();if(i>0&&s>="0"&&s<="9"){return"_"+s+e}return""+s.toUpperCase()+e}function y(t,i){if(i===void 0){i={}}return m(t,r({delimiter:"",transform:g},i))}function b(t,i){if(i===0)return t.toLowerCase();return g(t,i)}function x(t,i){if(i===void 0){i={}}return y(t,r({transform:b},i))}const C=/{{(.+)}}/;class R{constructor(t){this.bindings=t}bind(t){this.bindings.forEach((i=>i.bind(t)))}}class z{constructor(t,i){this.node=t;this.expr=i}}class $ extends z{constructor(t,i){super(t,i)}bind(t){const i=T(t,this.expr);if(i!==this.node.textContent){this.node.textContent=i}}}class D extends z{constructor(t,i,s){super(t,i);this.attr=s}bind(t){const i=T(t,this.expr);const s=this.node.getAttribute(this.attr);if(s!==i){this.node.setAttribute(this.attr,i)}}}class P extends z{constructor(t,i,s){super(t,i);this.prop=s}bind(t){const i=k(t,this.expr);const s=this.node[this.prop];if(s!==i){this.node[this.prop]=i}}}class E extends z{constructor(t,i,s){super(t,i);this.eventName=s}bind(t){var i;const s=M(this.expr);if(s!=null){(i=this.disposable)===null||i===void 0?void 0:i.dispose();const e=V(t,s,true);this.node.addEventListener(this.eventName,e);this.disposable={dispose:()=>{this.node.removeEventListener(this.eventName,e)}}}}}function H(t){const i=[];if(t.nodeType===Node.ELEMENT_NODE){const s=t;const e=L(s);e.forEach((t=>{if(t.name.startsWith("event:")){const e=x(t.name.replace("event:",""));i.push(new E(s,t.value,e))}else if(t.name.startsWith("attr:")){i.push(new D(s,t.value,t.name.replace("attr:","")))}else if(t.name.startsWith("prop:")){const e=x(t.name.replace("prop:",""));i.push(new P(s,t.value,e))}}))}else if(t.nodeType===Node.TEXT_NODE&&t.textContent!=null&&C.test(t.textContent)){i.push(new $(t,t.textContent))}for(let s=0;s<t.childNodes.length;s++){i.push(...H(t.childNodes[s]))}return i}function L(t){return Array.from(t.attributes).filter((t=>C.test(t.value)))}function M(t){const i=C.exec(t);return i!=null?i[1]:undefined}function T(t,i){const s=M(i);if(s!=null){const e=V(t,s,true);return i.replace(`{{${s}}}`,e===null||e===void 0?void 0:e.toString())}else{return i}}function k(t,i){const s=M(i);if(s!=null){const i=V(t,s,true);return i}else{return i}}function V(t,i,s=false){const[e,...n]=i.split(".");if(s&&n.length===0){return t}else if(s&&n.length>0){return V(t,n.join("."),false)}else{const i=t[e];if(n.length>0){return V(i,n.join("."),false)}else{return i}}}class W{constructor(t,i){this.container=t;this.elementFactory=i;this.instanceMap=new Map;this.elements=[]}swapHeadToTail(t){const i=this.elements.splice(0,t);this.elements.splice(this.elements.length,0,...i);return this.elements.concat()}swapTailToHead(t){const i=this.elements.splice(-t,t);this.elements.splice(0,0,...i);return this.elements.concat()}updateElements(t){const i=t-this.elements.length;if(i>0){for(let t=0;t<i;t++){this.createElement()}}else{for(let t=0;t<-i;t++){this.deleteElement()}}return this.elements.concat()}updateData(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);const n=t(s);e===null||e===void 0?void 0:e.bindings.bind(n)}))}updateElementFactory(t){this.elementFactory=t;this.updateElements(0)}iterateElements(t){this.elements.forEach(((i,s)=>{const e=this.instanceMap.get(i);t(i,e.bindings,s)}))}createElement(){const t=this.elementFactory();this.elements.push(t.element);this.instanceMap.set(t.element,t);this.container.append(t.element);return t}deleteElement(){const t=this.elements.pop();if(t!=null){this.instanceMap.delete(t);t.remove()}}}function I(t){const i=t.content.cloneNode(true);const s=i.firstElementChild;const e=new R(H(i));return{element:s,bindings:e}}function j(t){var i;return(i=t.getBoundingClientRect().top)!==null&&i!==void 0?i:0}function A(t){return t.clientWidth}function N(t,i,s){t.scrollTo({top:i,...s})}class S{constructor(){this.onStateChange=new d}setHovered(t){this.onStateChange.emit(t)}stateChanged(t){return this.onStateChange.on(t)}}function U(t,i,s=200){window.clearTimeout(i);return window.setTimeout(t,s)}const O=()=>`:host{position:relative;display:flex;flex-direction:column;width:100%;height:100%;overflow:hidden;font-size:0.825rem;--scene-tree-table-row-padding:2px 0px;--scene-tree-table-column-gap:0.5rem;--scene-tree-table-column-resize-cursor:col-resize}.header{position:relative;display:grid;width:100%;border-bottom:var(--scene-tree-toolbar-separator)}.table{position:relative;display:grid;width:100%;height:100%;overflow:auto}.resize-overlay{position:absolute;top:0;cursor:var(--scene-tree-table-column-resize-cursor);z-index:1000;width:100%;height:100%}.divider-overlay{position:absolute;top:0;display:grid;pointer-events:none;z-index:2000;width:100%;height:100%}`;const G=i(class t extends s{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.layoutRendered=e(this,"layoutRendered");this.columnsResized=e(this,"columnsResized");this.rows=[];this.totalRows=0;this.rowHeight=24;this.overScanCount=25;this.layoutOffset=0;this.scrollOffset=0;this.viewportStartIndex=0;this.viewportEndIndex=0;this.columnGridLayout="1fr";this.columnGridFixedLayout="";this.isComputingCellHeight=true;this.isScrolling=false;this.stateMap={viewportRows:[],columnWidths:[],columnWidthPercentages:[]};this.lastStartIndex=0;this.columnElements=[];this.cellHoverController=new S;this.layoutColumns=()=>{const t=this.viewportEndIndex-this.viewportStartIndex+1;const i=this.viewportStartIndex-this.lastStartIndex;this.lastStartIndex=this.viewportStartIndex;this.iterateColumns(((s,e,n)=>{e.updateElements(t);if(i>0){e.swapHeadToTail(i)}else{e.swapTailToHead(-i)}s.style.minHeight=`${this.rowHeight*this.totalRows}px`;const o=n===0?t=>`calc(${t} * 0.5rem)`:()=>`0`;e.iterateElements(((t,i,s)=>{const e=this.stateMap.viewportRows[s];if(a(e)){this.updateCell(e,t,i,s,o)}}))}))};this.updateCell=(t,i,s,e,n)=>{i.style.position="absolute";i.style.top=`${(this.viewportStartIndex+e)*this.rowHeight}px`;i.style.boxSizing="border-box";i.style.height=`${this.rowHeight}px`;i.style.width="100%";i.style.paddingLeft=n(t.node.depth);i.tree=this.tree;i.node=t.node;i.hoverController=this.cellHoverController;i.isScrolling=this.isScrolling;s.bind(t)};this.updateLayoutPosition=()=>{l((()=>{if(this.tableElement!=null){this.layoutOffset=j(this.tableElement)}}))};this.recomputeColumnWidths=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidths=this.stateMap.columnWidthPercentages.map((i=>i*t));this.columnsResized.emit(this.stateMap.columnWidths)}};this.recomputeColumnPercentages=()=>{const t=this.getLayoutWidth();if(t!=null&&this.stateMap.columnWidths.length===this.stateMap.columnWidthPercentages.length){this.stateMap.columnWidthPercentages=this.stateMap.columnWidths.map((i=>i/t))}};this.computeInitialColumnWidths=()=>{this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}));const t=this.getLayoutWidth();if(t!=null){const i=this.stateMap.columnWidths.reduce(((t,i)=>t+i),0);const s=this.stateMap.columnWidths.map((s=>s*(t/i)));this.stateMap.columnWidthPercentages=s.map((i=>i/t));this.stateMap.columnWidths=s}};this.updateColumnElements=()=>{this.columnElements=Array.from(this.hostEl.querySelectorAll("vertex-scene-tree-table-column"))};this.computeCellHeight=async()=>{var t;if(this.isComputingCellHeight&&this.columnElements.length>0){const i={index:0,node:{id:{hex:""},name:"Dummy row",expanded:false,selected:false,visible:false,partiallyVisible:false,isLeaf:false,depth:0,columnsList:[],filterHit:false,hasGeometry:false,phantom:false,endItem:false},metadata:{},data:{}};const{bindings:s,element:e}=this.createColumnCellInstance(this.columnElements[0]);s.bind(i);e.style.visibility="hidden";(t=this.columnElements[0])===null||t===void 0?void 0:t.appendChild(e);if(typeof e.componentOnReady==="function"){await e.componentOnReady()}let n=e.clientHeight;if(n===0){n=await new Promise((t=>{setTimeout((()=>t(e.getBoundingClientRect().height)),5)}))}this.rowHeight=n!==null&&n!==void 0?n:this.rowHeight;e.remove();this.isComputingCellHeight=this.rowHeight===0}};this.computeHeaderHeight=()=>{var t;if(this.stateMap.headerHeight==null){this.stateMap.headerHeight=(t=this.headerElement)===null||t===void 0?void 0:t.getBoundingClientRect().height;this.hostEl.style.setProperty("--header-height",`${this.stateMap.headerHeight}px`)}};this.computeColumnGridLayout=()=>{if(this.stateMap.columnWidths.length===0){this.stateMap.columnWidths=this.columnElements.map((t=>{var i;return(i=t.initialWidth)!==null&&i!==void 0?i:100}))}const t=this.getLayoutWidth();if(t!=null){if(this.stateMap.columnWidthPercentages.length===0){this.stateMap.columnWidthPercentages=this.columnElements.map((i=>{var s;return((s=i.initialWidth)!==null&&s!==void 0?s:100)/t}))}}this.columnGridLayout=`${this.stateMap.columnWidths.slice(0,-1).reduce(((t,i)=>`${t} ${i}px`),"")} 1fr`;this.columnGridFixedLayout=`${this.stateMap.columnWidths.reduce(((t,i)=>`${t} ${i}px`),"")}`};this.bindHeaderData=()=>{if(this.stateMap.headerInstances==null){this.stateMap.headerInstances=this.columnElements.map(((t,i)=>{var s;const e=this.createHeaderInstance(t);if(e!=null){e.element.style.paddingRight=i===this.columnElements.length-1?`0`:`var(--scene-tree-table-column-gap)`;e.element.slot="header";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element)}return e})).filter((t=>t!=null))}if(this.stateMap.headerDividerInstances==null){this.stateMap.headerDividerInstances=this.columnElements.slice(0,-1).map(((t,i)=>{var s;const e=this.createDividerInstance();e.element.slot="divider";e.element.style.position="absolute";e.element.style.right="0";e.element.style.pointerEvents="auto";e.element.style.gridColumnStart=`${i+1}`;e.element.style.gridColumnEnd=`${i+2}`;(s=this.hostEl)===null||s===void 0?void 0:s.appendChild(e.element);return e}))}};this.rebindHeaderData=()=>{var t,i;this.removeDividerDragListeners();(t=this.stateMap.headerInstances)===null||t===void 0?void 0:t.forEach((t=>t.element.remove()));(i=this.stateMap.headerDividerInstances)===null||i===void 0?void 0:i.forEach((t=>t.element.remove()));this.stateMap.headerInstances=undefined;this.stateMap.headerDividerInstances=undefined;this.bindHeaderData();this.addDividerDragListeners()};this.createDividerPointerDownHandler=t=>i=>{var s,e;i.preventDefault();i.stopPropagation();this.lastDividerPointerPosition=h.create(Math.floor(i.clientX),Math.floor(i.clientY));this.resizingColumnIndex=t;(e=(s=this.stateMap.headerDividerInstances)===null||s===void 0?void 0:s[t])===null||e===void 0?void 0:e.element.classList.add("dragging");window.addEventListener("pointermove",this.handleDividerPointerMove);window.addEventListener("pointerup",this.handleDividerPointerUp)};this.handleDividerPointerMove=t=>{const i=h.create(Math.floor(t.clientX),Math.floor(t.clientY));if(this.lastDividerPointerPosition!=null&&this.resizingColumnIndex!=null){const t=this.resizingColumnIndex;const s=h.subtract(this.lastDividerPointerPosition,i);if(Math.abs(s.x)>=1&&this.isValidResize(s,t)){this.stateMap.columnWidths=this.stateMap.columnWidths.map(((i,e)=>e===t?i-s.x:i));if(t+1<this.stateMap.columnWidths.length){this.stateMap.columnWidths=this.stateMap.columnWidths.map(((i,e)=>e===t+1?i+s.x:i))}this.lastDividerPointerPosition=i;this.computeColumnGridLayout()}}};this.handleDividerPointerUp=()=>{var t,i;if(this.resizingColumnIndex!=null){(i=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t[this.resizingColumnIndex])===null||i===void 0?void 0:i.element.classList.remove("dragging")}this.lastDividerPointerPosition=undefined;this.resizingColumnIndex=undefined;this.recomputeColumnPercentages();this.recomputeColumnWidths();window.removeEventListener("pointermove",this.handleDividerPointerMove);window.removeEventListener("pointerup",this.handleDividerPointerUp)};this.isValidResize=(t,i)=>{var s,e,n,o;const h=this.columnElements[i];const r=this.columnElements[i+1];const l=this.stateMap.columnWidths[i];const a=this.stateMap.columnWidths[i+1];const d=(s=h.minWidth)!==null&&s!==void 0?s:0;const u=(e=h.maxWidth)!==null&&e!==void 0?e:Number.MAX_SAFE_INTEGER;const c=(n=r.minWidth)!==null&&n!==void 0?n:0;const f=(o=r.maxWidth)!==null&&o!==void 0?o:Number.MAX_SAFE_INTEGER;const v=l-t.x>d&&l-t.x<u;const p=r!=null?a+t.x>c&&a+t.x<f:true;return v&&p};this.handleScrollChanged=async t=>{this.isScrolling=true;this.scrollTimer=U((()=>{this.isScrolling=false}),this.scrollTimer);this.scrollOffset=t.target.scrollTop;await this.computeAndUpdateViewportRows()}}componentWillLoad(){this.updateColumnElements();this.createPools();this.initializeColumnLayout();this.headerResizeObserver=new ResizeObserver((()=>{this.stateMap.headerHeight=undefined;this.computeHeaderHeight();this.updateLayoutPosition()}));this.resizeObserver=new ResizeObserver((()=>{this.updateLayoutPosition();this.clearLayoutHeight();this.clearLayoutWidth();this.recomputeColumnWidths();this.computeColumnGridLayout()}))}async componentDidLoad(){var t,i,s;(t=this.tableElement)===null||t===void 0?void 0:t.addEventListener("scroll",this.handleScrollChanged,{passive:true});if(this.headerElement!=null){(i=this.headerResizeObserver)===null||i===void 0?void 0:i.observe(this.headerElement)}(s=this.resizeObserver)===null||s===void 0?void 0:s.observe(this.hostEl);await Promise.resolve();await this.initializeMeasuredLayout()}async componentWillRender(){await this.computeAndUpdateViewportRows()}componentDidRender(){this.layoutColumns();this.layoutRendered.emit()}async componentDidUpdate(){if(this.isComputingCellHeight){await this.computeCellHeight()}}disconnectedCallback(){var t,i,s;(t=this.tableElement)===null||t===void 0?void 0:t.removeEventListener("scroll",this.handleScrollChanged);this.removeDividerDragListeners();(i=this.headerResizeObserver)===null||i===void 0?void 0:i.disconnect();(s=this.resizeObserver)===null||s===void 0?void 0:s.disconnect();this.stateMap.columnWidths=[];this.stateMap.columnWidthPercentages=[]}async handleViewportRowsPropsChanged(){await this.computeAndUpdateViewportRows()}async scrollToPosition(t,i){if(this.tableElement!=null){N(this.tableElement,t,i)}}async attemptComputeCellHeight(){this.computeCellHeight()}render(){return n(o,{key:"fb503e5ce411669efe4549f3d8063fe630993341"},n("div",{key:"1b7acde237a9a7cf8d14f950cc664b82dd253486",class:"header",ref:t=>this.headerElement=t,style:{gridTemplateColumns:this.columnGridFixedLayout,display:this.columnElements.length<=1?"none":"grid"}},n("slot",{key:"ec62af4cb951011ed571418051d52b6cdf2dd152",name:"header"})),n("div",{key:"d3183a765e381d9899a00d4a70302a28bc7deddd",class:"table",ref:t=>this.tableElement=t,style:{gridTemplateColumns:this.columnGridLayout}},n("slot",{key:"5dcfa30b5f230987cd33d35e9011718c60786ad4",onSlotchange:()=>{this.ensureDividerTemplateDefined();this.updateColumnElements();this.recreateColumnPools();this.computeInitialColumnWidths();this.rebindHeaderData();this.computeColumnGridLayout()}})),n("div",{key:"df5e5e83a5d833c22e0234d36ae6b6be224b8504",class:"divider-overlay",style:{gridTemplateColumns:this.columnGridFixedLayout}},n("slot",{key:"98ea7728b5faf0dcf48464aebcb99aae0369b8cc",name:"divider"})),this.resizingColumnIndex!=null&&n("div",{key:"e146248e00f7e8c63de50efdc72bc93a02be4227",class:"resize-overlay"}))}computeViewportRows(){const t=this.getLayoutHeight();const i=t!=null&&t>0&&!this.isComputingCellHeight;if(i){const i=Math.ceil(t/this.rowHeight);const s=Math.floor(this.scrollOffset/this.rowHeight);const e=s+i;const n=Math.max(0,s-this.overScanCount);const o=Math.min(this.totalRows-1,e+this.overScanCount);const h=this.getViewportRows(n,o);this.viewportStartIndex=n;this.viewportEndIndex=o;this.stateMap.viewportRows=h}}initializeColumnLayout(){this.computeInitialColumnWidths();this.computeColumnGridLayout();this.ensureDividerTemplateDefined();this.rebindHeaderData()}async initializeMeasuredLayout(){await this.computeCellHeight();this.computeHeaderHeight()}async computeAndUpdateViewportRows(){var t;this.computeViewportRows();if(((t=this.controller)===null||t===void 0?void 0:t.isConnected)&&this.totalRows>0){await this.controller.updateActiveRowRange(this.viewportStartIndex,this.viewportEndIndex)}}createPools(){if(this.stateMap.columnElementPools==null){this.stateMap.columnElementPools=this.columnElements.reduce(((t,i)=>t.set(i,new W(i,(()=>this.createColumnCellInstance(i))))),new WeakMap)}}recreateColumnPools(){this.columnElements.forEach((t=>{var i,s,e;if(((i=this.stateMap.columnElementPools)===null||i===void 0?void 0:i.get(t))==null){(s=this.stateMap.columnElementPools)===null||s===void 0?void 0:s.set(t,new W(t,(()=>this.createColumnCellInstance(t))))}else{(e=this.stateMap.columnElementPools.get(t))===null||e===void 0?void 0:e.updateElementFactory((()=>this.createColumnCellInstance(t)))}}))}iterateColumns(t){this.columnElements.forEach(((i,s)=>{var e;const n=(e=this.stateMap.columnElementPools)===null||e===void 0?void 0:e.get(i);if(n!=null){t(i,n,s)}else{throw new Error("Cannot find pool for column")}}))}ensureDividerTemplateDefined(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t==null){const t=document.createElement("template");t.slot="divider";t.innerHTML=`\n <vertex-scene-tree-table-resize-divider slot="divider">\n </vertex-scene-tree-table-resize-divider>\n `;this.hostEl.appendChild(t)}}createHeaderInstance(t){const i=t.querySelector('template[slot="header"]');if(i!=null){return I(i)}}createDividerInstance(){const t=this.hostEl.querySelector('template[slot="divider"]');if(t!=null){return I(t)}else{throw new Error("Table is missing divider template element")}}createColumnCellInstance(t){const i=t.querySelector('template:not([slot="header"])');if(i!=null){return I(i)}else{throw new Error("Column is missing cell template element")}}addDividerDragListeners(){var t;this.stateMap.headerDividerListeners=(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.map(((t,i)=>{const s=this.createDividerPointerDownHandler(i);t.element.addEventListener("pointerdown",s);return s}))}removeDividerDragListeners(){var t;if(this.stateMap.headerDividerListeners!=null){const i=this.stateMap.headerDividerListeners;(t=this.stateMap.headerDividerInstances)===null||t===void 0?void 0:t.forEach(((t,s)=>{const e=i[s];if(e!=null){t.element.removeEventListener("pointerdown",e)}}));this.stateMap.headerDividerListeners=undefined}}getViewportRows(t,i){const s=this.rows.slice(t,i+1);return s.map((t=>t!=null?this.populateRowData(t):t))}populateRowData(t){var i;if(this.rowData!=null&&t!=null){const s=((i=this.rowData)===null||i===void 0?void 0:i.call(this,t))||{};return{...t,data:s}}else{return t}}getLayoutHeight(){if(this.layoutHeight==null&&this.tableElement!=null){this.layoutHeight=u(this.tableElement)}return this.layoutHeight}getLayoutWidth(){if(this.layoutWidth==null){const t=A(this.hostEl);if(t>0){this.layoutWidth=t}}return this.layoutWidth}clearLayoutHeight(){this.layoutHeight=undefined}clearLayoutWidth(){this.layoutWidth=undefined}get hostEl(){return this}static get watchers(){return{rows:[{handleViewportRowsPropsChanged:0}],totalRows:[{handleViewportRowsPropsChanged:0}],rowHeight:[{handleViewportRowsPropsChanged:0}]}}static get style(){return O()}},[257,"vertex-scene-tree-table-layout",{tree:[16],controller:[16],rows:[16],totalRows:[2,"total-rows"],rowHeight:[1026,"row-height"],overScanCount:[2,"over-scan-count"],rowData:[16],layoutOffset:[1026,"layout-offset"],scrollOffset:[1026,"scroll-offset"],layoutHeight:[1026,"layout-height"],layoutWidth:[1026,"layout-width"],viewportStartIndex:[1026,"viewport-start-index"],viewportEndIndex:[1026,"viewport-end-index"],columnGridLayout:[32],columnGridFixedLayout:[32],isComputingCellHeight:[32],lastDividerPointerPosition:[32],resizingColumnIndex:[32],isScrolling:[32],scrollTimer:[32],stateMap:[32],scrollToPosition:[64],attemptComputeCellHeight:[64]},undefined,{rows:[{handleViewportRowsPropsChanged:0}],totalRows:[{handleViewportRowsPropsChanged:0}],rowHeight:[{handleViewportRowsPropsChanged:0}]}]);function Z(){if(typeof customElements==="undefined"){return}const i=["vertex-scene-tree-table-layout"];i.forEach((i=>{switch(i){case"vertex-scene-tree-table-layout":if(!customElements.get(t(i))){customElements.define(t(i),G)}break}}))}Z();export{G as S,Z as d,c as g};
|
|
5
|
+
//# sourceMappingURL=p-BAuOB8M-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getSceneTreeViewportHeight","el","clientHeight","getSceneTreeContainsElement","other","contains","lowerCase","str","toLowerCase","DEFAULT_SPLIT_REGEXP","DEFAULT_STRIP_REGEXP","noCase","input","options","_a","splitRegexp","_b","stripRegexp","_c","transform","_d","delimiter","result","replace","start","end","length","charAt","slice","split","map","join","re","value","RegExp","reduce","pascalCaseTransform","index","firstChar","lowerChars","substr","toUpperCase","pascalCase","__assign","camelCaseTransform","camelCase","bindingRegEx","CollectionBinding","constructor","bindings","this","bind","data","forEach","binding","NodeBinding","node","expr","TextNodeBinding","super","newContent","replaceBindingString","textContent","AttributeBinding","attr","newValue","oldValue","getAttribute","setAttribute","PropertyBinding","prop","replaceBinding","EventHandlerBinding","eventName","path","extractBindingPath","disposable","dispose","listener","getBindableValue","addEventListener","removeEventListener","generateBindings","nodeType","Node","ELEMENT_NODE","bindableAttributes","getBindableAttributes","name","startsWith","push","propName","TEXT_NODE","test","i","childNodes","element","Array","from","attributes","filter","exec","undefined","toString","isHead","head","tail","ElementPool","container","elementFactory","instanceMap","Map","elements","swapHeadToTail","count","sliced","splice","concat","swapTailToHead","updateElements","diff","createElement","deleteElement","updateData","f","instance","get","updateElementFactory","iterateElements","set","append","pop","delete","remove","generateInstanceFromTemplate","template","fragment","content","cloneNode","firstElementChild","getSceneTreeTableOffsetTop","getBoundingClientRect","top","getSceneTreeTableViewportWidth","clientWidth","scrollToTop","scrollTo","SceneTreeCellHoverController","onStateChange","EventDispatcher","setHovered","id","emit","stateChanged","on","restartTimeout","fn","existingTimeout","delay","window","clearTimeout","setTimeout","sceneTreeTableLayoutCss","SceneTreeTableLayout","__stencil_proxyCustomElement","HTMLElement","registerHost","rows","totalRows","rowHeight","overScanCount","layoutOffset","scrollOffset","viewportStartIndex","viewportEndIndex","columnGridLayout","columnGridFixedLayout","isComputingCellHeight","isScrolling","stateMap","viewportRows","columnWidths","columnWidthPercentages","lastStartIndex","columnElements","cellHoverController","layoutColumns","visibleRowCount","iterateColumns","col","pool","colIndex","style","minHeight","cellPaddingLeft","depth","rowIndex","row","isLoadedRow","updateCell","cell","position","boxSizing","height","width","paddingLeft","tree","hoverController","updateLayoutPosition","readDOM","tableElement","recomputeColumnWidths","layoutWidth","getLayoutWidth","w","columnsResized","recomputeColumnPercentages","computeInitialColumnWidths","c","initialWidth","columnWidthSum","scaledColumnWidths","updateColumnElements","hostEl","querySelectorAll","computeCellHeight","async","dummyData","hex","expanded","selected","visible","partiallyVisible","isLeaf","columnsList","filterHit","hasGeometry","phantom","endItem","metadata","createColumnCellInstance","visibility","appendChild","componentOnReady","Promise","resolve","computeHeaderHeight","headerHeight","headerElement","setProperty","computeColumnGridLayout","res","bindHeaderData","headerInstances","createHeaderInstance","paddingRight","slot","gridColumnStart","gridColumnEnd","headerDividerInstances","_","createDividerInstance","right","pointerEvents","rebindHeaderData","removeDividerDragListeners","addDividerDragListeners","createDividerPointerDownHandler","event","preventDefault","stopPropagation","lastDividerPointerPosition","Point","create","Math","floor","clientX","clientY","resizingColumnIndex","classList","add","handleDividerPointerMove","handleDividerPointerUp","current","resizingIndex","subtract","abs","x","isValidResize","currentColumn","nextColumn","currentWidth","nextWidth","currentMinWidth","minWidth","currentMaxWidth","maxWidth","Number","MAX_SAFE_INTEGER","nextMinWidth","nextMaxWidth","currentIsValid","nextIsValid","handleScrollChanged","scrollTimer","target","scrollTop","computeAndUpdateViewportRows","componentWillLoad","createPools","initializeColumnLayout","headerResizeObserver","ResizeObserver","resizeObserver","clearLayoutHeight","clearLayoutWidth","componentDidLoad","passive","observe","initializeMeasuredLayout","componentWillRender","componentDidRender","layoutRendered","componentDidUpdate","disconnectedCallback","disconnect","handleViewportRowsPropsChanged","scrollToPosition","attemptComputeCellHeight","render","h","Host","key","class","ref","gridTemplateColumns","display","onSlotchange","ensureDividerTemplateDefined","recreateColumnPools","computeViewportRows","viewportHeight","getLayoutHeight","canComputeIndices","viewportCount","ceil","startIndex","max","endIndex","min","getViewportRows","controller","isConnected","updateActiveRowRange","columnElementPools","WeakMap","column","Error","querySelector","defaultDividerTemplate","document","innerHTML","headerDividerListeners","d","listeners","populateRowData","rowData","call","layoutHeight","computedWidth"],"sources":["src/components/scene-tree/lib/dom.ts","../html-templates/dist/bundle.js","src/components/scene-tree-table-layout/lib/dom.ts","src/components/scene-tree-table-layout/lib/hover-controller.ts","src/components/scene-tree-table-layout/lib/window.ts","src/components/scene-tree-table-layout/scene-tree-table-layout.css?tag=vertex-scene-tree-table-layout&encapsulation=shadow","src/components/scene-tree-table-layout/scene-tree-table-layout.tsx"],"sourcesContent":["export function getSceneTreeViewportHeight(el: HTMLElement): number {\n return el.clientHeight;\n}\n\nexport function getSceneTreeOffsetTop(el: HTMLElement): number {\n return el.offsetTop;\n}\n\nexport function getSceneTreeContainsElement(\n el: Element,\n other: Element,\n): boolean {\n return el.contains(other);\n}\n","import { __assign } from 'tslib';\n\n/**\n * Source: ftp://ftp.unicode.org/Public/UCD/latest/ucd/SpecialCasing.txt\n */\n/**\n * Lower case as a function.\n */\nfunction lowerCase(str) {\n return str.toLowerCase();\n}\n\n// Support camel case (\"camelCase\" -> \"camel Case\" and \"CAMELCase\" -> \"CAMEL Case\").\nvar DEFAULT_SPLIT_REGEXP = [/([a-z0-9])([A-Z])/g, /([A-Z])([A-Z][a-z])/g];\n// Remove all non-word characters.\nvar DEFAULT_STRIP_REGEXP = /[^A-Z0-9]+/gi;\n/**\n * Normalize the string into something other libraries can manipulate easier.\n */\nfunction noCase(input, options) {\n if (options === void 0) { options = {}; }\n var _a = options.splitRegexp, splitRegexp = _a === void 0 ? DEFAULT_SPLIT_REGEXP : _a, _b = options.stripRegexp, stripRegexp = _b === void 0 ? DEFAULT_STRIP_REGEXP : _b, _c = options.transform, transform = _c === void 0 ? lowerCase : _c, _d = options.delimiter, delimiter = _d === void 0 ? \" \" : _d;\n var result = replace(replace(input, splitRegexp, \"$1\\0$2\"), stripRegexp, \"\\0\");\n var start = 0;\n var end = result.length;\n // Trim the delimiter from around the output string.\n while (result.charAt(start) === \"\\0\")\n start++;\n while (result.charAt(end - 1) === \"\\0\")\n end--;\n // Transform each token independently.\n return result.slice(start, end).split(\"\\0\").map(transform).join(delimiter);\n}\n/**\n * Replace `re` in the input string with the replacement value.\n */\nfunction replace(input, re, value) {\n if (re instanceof RegExp)\n return input.replace(re, value);\n return re.reduce(function (input, re) { return input.replace(re, value); }, input);\n}\n\nfunction pascalCaseTransform(input, index) {\n var firstChar = input.charAt(0);\n var lowerChars = input.substr(1).toLowerCase();\n if (index > 0 && firstChar >= \"0\" && firstChar <= \"9\") {\n return \"_\" + firstChar + lowerChars;\n }\n return \"\" + firstChar.toUpperCase() + lowerChars;\n}\nfunction pascalCase(input, options) {\n if (options === void 0) { options = {}; }\n return noCase(input, __assign({ delimiter: \"\", transform: pascalCaseTransform }, options));\n}\n\nfunction camelCaseTransform(input, index) {\n if (index === 0)\n return input.toLowerCase();\n return pascalCaseTransform(input, index);\n}\nfunction camelCase(input, options) {\n if (options === void 0) { options = {}; }\n return pascalCase(input, __assign({ transform: camelCaseTransform }, options));\n}\n\nconst bindingRegEx = /{{(.+)}}/;\nclass CollectionBinding {\n constructor(bindings) {\n this.bindings = bindings;\n }\n bind(data) {\n this.bindings.forEach((binding) => binding.bind(data));\n }\n}\nclass NodeBinding {\n constructor(node, expr) {\n this.node = node;\n this.expr = expr;\n }\n}\nclass TextNodeBinding extends NodeBinding {\n constructor(node, expr) {\n super(node, expr);\n }\n bind(data) {\n const newContent = replaceBindingString(data, this.expr);\n if (newContent !== this.node.textContent) {\n this.node.textContent = newContent;\n }\n }\n}\nclass AttributeBinding extends NodeBinding {\n constructor(node, expr, attr) {\n super(node, expr);\n this.attr = attr;\n }\n bind(data) {\n const newValue = replaceBindingString(data, this.expr);\n const oldValue = this.node.getAttribute(this.attr);\n if (oldValue !== newValue) {\n this.node.setAttribute(this.attr, newValue);\n }\n }\n}\nclass PropertyBinding extends NodeBinding {\n constructor(node, expr, prop) {\n super(node, expr);\n this.prop = prop;\n }\n bind(data) {\n const newValue = replaceBinding(data, this.expr);\n /* eslint-disable @typescript-eslint/no-explicit-any */\n const oldValue = this.node[this.prop];\n if (oldValue !== newValue) {\n this.node[this.prop] = newValue;\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n }\n}\nclass EventHandlerBinding extends NodeBinding {\n constructor(node, expr, eventName) {\n super(node, expr);\n this.eventName = eventName;\n }\n bind(data) {\n var _a;\n const path = extractBindingPath(this.expr);\n if (path != null) {\n (_a = this.disposable) === null || _a === void 0 ? void 0 : _a.dispose();\n const listener = getBindableValue(data, path, true);\n this.node.addEventListener(this.eventName, listener);\n this.disposable = {\n dispose: () => {\n this.node.removeEventListener(this.eventName, listener);\n },\n };\n }\n }\n}\nfunction generateBindings(node) {\n const bindings = [];\n if (node.nodeType === Node.ELEMENT_NODE) {\n const el = node;\n const bindableAttributes = getBindableAttributes(el);\n bindableAttributes.forEach((attr) => {\n if (attr.name.startsWith('event:')) {\n const eventName = camelCase(attr.name.replace('event:', ''));\n bindings.push(new EventHandlerBinding(el, attr.value, eventName));\n }\n else if (attr.name.startsWith('attr:')) {\n bindings.push(new AttributeBinding(el, attr.value, attr.name.replace('attr:', '')));\n }\n else if (attr.name.startsWith('prop:')) {\n const propName = camelCase(attr.name.replace('prop:', ''));\n bindings.push(new PropertyBinding(el, attr.value, propName));\n }\n });\n }\n else if (node.nodeType === Node.TEXT_NODE &&\n node.textContent != null &&\n bindingRegEx.test(node.textContent)) {\n bindings.push(new TextNodeBinding(node, node.textContent));\n }\n for (let i = 0; i < node.childNodes.length; i++) {\n bindings.push(...generateBindings(node.childNodes[i]));\n }\n return bindings;\n}\nfunction getBindableAttributes(element) {\n return Array.from(element.attributes).filter((attr) => bindingRegEx.test(attr.value));\n}\nfunction extractBindingPath(expr) {\n const result = bindingRegEx.exec(expr);\n return result != null ? result[1] : undefined;\n}\nfunction replaceBindingString(data, expr) {\n const path = extractBindingPath(expr);\n if (path != null) {\n const value = getBindableValue(data, path, true);\n return expr.replace(`{{${path}}}`, value === null || value === void 0 ? void 0 : value.toString());\n }\n else {\n return expr;\n }\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction replaceBinding(data, expr) {\n const path = extractBindingPath(expr);\n if (path != null) {\n const value = getBindableValue(data, path, true);\n return value;\n }\n else {\n return expr;\n }\n}\nfunction getBindableValue(data, path, isHead = false) {\n const [head, ...tail] = path.split('.');\n if (isHead && tail.length === 0) {\n return data;\n }\n else if (isHead && tail.length > 0) {\n return getBindableValue(data, tail.join('.'), false);\n }\n else {\n const value = data[head];\n if (tail.length > 0) {\n return getBindableValue(value, tail.join('.'), false);\n }\n else {\n return value;\n }\n }\n}\n\nclass ElementPool {\n constructor(container, elementFactory) {\n this.container = container;\n this.elementFactory = elementFactory;\n this.instanceMap = new Map();\n this.elements = [];\n }\n swapHeadToTail(count) {\n const sliced = this.elements.splice(0, count);\n this.elements.splice(this.elements.length, 0, ...sliced);\n return this.elements.concat();\n }\n swapTailToHead(count) {\n const sliced = this.elements.splice(-count, count);\n this.elements.splice(0, 0, ...sliced);\n return this.elements.concat();\n }\n updateElements(count) {\n const diff = count - this.elements.length;\n if (diff > 0) {\n for (let i = 0; i < diff; i++) {\n this.createElement();\n }\n }\n else {\n for (let i = 0; i < -diff; i++) {\n this.deleteElement();\n }\n }\n return this.elements.concat();\n }\n updateData(f) {\n this.elements.forEach((el, i) => {\n const instance = this.instanceMap.get(el);\n const data = f(i);\n instance === null || instance === void 0 ? void 0 : instance.bindings.bind(data);\n });\n }\n updateElementFactory(elementFactory) {\n this.elementFactory = elementFactory;\n this.updateElements(0);\n }\n iterateElements(f) {\n this.elements.forEach((el, i) => {\n const instance = this.instanceMap.get(el);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n f(el, instance.bindings, i);\n });\n }\n createElement() {\n const instance = this.elementFactory();\n this.elements.push(instance.element);\n this.instanceMap.set(instance.element, instance);\n this.container.append(instance.element);\n return instance;\n }\n deleteElement() {\n const element = this.elements.pop();\n if (element != null) {\n this.instanceMap.delete(element);\n element.remove();\n }\n }\n}\n\nfunction append(container, element, data) {\n const bindings = new CollectionBinding(generateBindings(element));\n bindings.bind(data);\n container.appendChild(element);\n const created = container.lastElementChild;\n if (created != null) {\n return { element: created, bindings };\n }\n else {\n throw new Error('Failed to append element');\n }\n}\nfunction generateInstanceFromTemplate(template) {\n const fragment = template.content.cloneNode(true);\n const element = fragment.firstElementChild;\n const bindings = new CollectionBinding(generateBindings(fragment));\n return { element, bindings };\n}\n\nexport { AttributeBinding, CollectionBinding, ElementPool, EventHandlerBinding, NodeBinding, PropertyBinding, TextNodeBinding, append, generateBindings, generateInstanceFromTemplate };\n//# sourceMappingURL=bundle.js.map\n","export type DomScrollToOptions = ScrollToOptions;\n\nexport function getSceneTreeTableOffsetTop(el: HTMLElement): number {\n return el.getBoundingClientRect().top ?? 0;\n}\n\nexport function getSceneTreeTableViewportWidth(el: HTMLElement): number {\n return el.clientWidth;\n}\n\nexport function scrollToTop(\n el: HTMLElement,\n top: number,\n options: Pick<DomScrollToOptions, 'behavior'>,\n): void {\n el.scrollTo({ top, ...options });\n}\n","import { Disposable, EventDispatcher, Listener } from '@vertexvis/utils';\n\nexport class SceneTreeCellHoverController {\n public onStateChange = new EventDispatcher<string | undefined>();\n\n public setHovered(id?: string): void {\n this.onStateChange.emit(id);\n }\n\n public stateChanged(listener: Listener<string | undefined>): Disposable {\n return this.onStateChange.on(listener);\n }\n}\n","export function restartTimeout(\n fn: VoidFunction,\n existingTimeout?: number,\n delay = 200,\n): number {\n window.clearTimeout(existingTimeout);\n return window.setTimeout(fn, delay);\n}\n",":host {\n position: relative;\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n overflow: hidden;\n font-size: 0.825rem;\n\n /**\n * @prop --scene-tree-table-row-padding: CSS lengths that specifies the amount of\n * padding between the row's border and content.\n */\n --scene-tree-table-row-padding: 2px 0px;\n\n /**\n * @prop --scene-tree-table-column-gap: CSS length that specifies the amount of\n * padding between columns in the table.\n */\n --scene-tree-table-column-gap: 0.5rem;\n\n /**\n * @prop --scene-tree-table-column-resize-cursor: A CSS cursor value that will\n * be displayed when resizing a column. Defaults to `col-resize`.\n */\n --scene-tree-table-column-resize-cursor: col-resize;\n}\n\n.header {\n position: relative;\n display: grid;\n width: 100%;\n border-bottom: var(--scene-tree-toolbar-separator);\n}\n\n.table {\n position: relative;\n display: grid;\n width: 100%;\n height: 100%;\n overflow: auto;\n}\n\n.resize-overlay {\n position: absolute;\n top: 0;\n cursor: var(--scene-tree-table-column-resize-cursor);\n z-index: 1000;\n width: 100%;\n height: 100%;\n}\n\n.divider-overlay {\n position: absolute;\n top: 0;\n display: grid;\n pointer-events: none;\n z-index: 2000;\n width: 100%;\n height: 100%;\n}\n","import {\n Component,\n Element,\n Event,\n EventEmitter,\n h,\n Host,\n Method,\n Prop,\n State,\n Watch,\n} from '@stencil/core';\nimport { Point } from '@vertexvis/geometry';\nimport {\n Binding,\n ElementPool,\n generateInstanceFromTemplate,\n InstancedTemplate,\n} from '@vertexvis/html-templates';\n\nimport { readDOM } from '../../lib/stencil';\nimport { SceneTreeController } from '../scene-tree/lib/controller';\nimport { getSceneTreeViewportHeight } from '../scene-tree/lib/dom';\nimport { isLoadedRow, LoadedRow, Row } from '../scene-tree/lib/row';\nimport { RowDataProvider } from '../scene-tree/types';\nimport {\n DomScrollToOptions,\n getSceneTreeTableOffsetTop,\n getSceneTreeTableViewportWidth,\n scrollToTop,\n} from './lib/dom';\nimport { SceneTreeCellHoverController } from './lib/hover-controller';\nimport { restartTimeout } from './lib/window';\n\ninterface StateMap {\n columnElementPools?: WeakMap<\n HTMLVertexSceneTreeTableColumnElement,\n ElementPool\n >;\n headerInstances?: Array<InstancedTemplate<HTMLElement>>;\n headerDividerInstances?: Array<InstancedTemplate<HTMLElement>>;\n headerDividerListeners?: Array<(event: PointerEvent) => void>;\n\n viewportRows: Row[];\n\n headerHeight?: number;\n columnWidths: number[];\n columnWidthPercentages: number[];\n}\n\n@Component({\n tag: 'vertex-scene-tree-table-layout',\n styleUrl: 'scene-tree-table-layout.css',\n shadow: true,\n})\nexport class SceneTreeTableLayout {\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 * @internal\n */\n @Prop()\n public controller?: SceneTreeController;\n\n /**\n * @internal\n */\n @Prop()\n public rows: Row[] = [];\n\n /**\n * @internal\n */\n @Prop()\n public totalRows = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public rowHeight = 24;\n\n /**\n * The number of offscreen rows above and below the viewport to render. Having\n * a higher number reduces the chance of the browser not displaying a row\n * while scrolling.\n *\n * This prop will be automatically populated based on the `overScanCount` prop\n * specified in the parent `<vertex-scene-tree />` element.\n */\n @Prop()\n public overScanCount = 25;\n\n /**\n * A callback that is invoked immediately before a row is about to be rendered.\n * This callback can return additional data that can be bound to in a\n * template.\n *\n * This prop will be automatically populated based on the `rowData` prop\n * specified in the parent `<vertex-scene-tree />` element.\n *\n * @example\n *\n * ```html\n * <script>\n * const table = document.querySelector('vertex-scene-tree-table');\n * table.rowData = (row) => {\n * return { func: () => console.log('row', row.node.name) };\n * }\n * </script>\n *\n * <vertex-scene-tree>\n * <vertex-scene-tree-table>\n * <vertex-scene-tree-table-column>\n * <template>\n * <button event:click=\"{{row.data.func}}\">Hi</button>\n * </template>\n * </vertex-scene-tree-table-column>\n * </vertex-scene-tree-table>\n * </vertex-scene-tree>\n * ```\n */\n @Prop()\n public rowData?: RowDataProvider;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public layoutOffset = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public scrollOffset = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public layoutHeight?: number;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public layoutWidth?: number;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public viewportStartIndex = 0;\n\n /**\n * @internal\n */\n @Prop({ mutable: true })\n public viewportEndIndex = 0;\n\n /**\n * @internal\n */\n @Event()\n public layoutRendered!: EventEmitter<void>;\n\n /**\n * An event that is emitted when the columns of this `<vertex-scene-tree-table-layout>`\n * are resized with an array containing the widths of the columns in pixels.\n */\n @Event({ bubbles: true })\n public columnsResized!: EventEmitter<number[]>;\n\n @Element()\n private hostEl!: HTMLElement;\n\n @State()\n private columnGridLayout = '1fr';\n\n @State()\n private columnGridFixedLayout = '';\n\n @State()\n private isComputingCellHeight = true;\n\n @State()\n private lastDividerPointerPosition?: Point.Point;\n\n @State()\n private resizingColumnIndex?: number;\n\n @State()\n private isScrolling = false;\n\n @State()\n private scrollTimer: number | undefined;\n\n /**\n * This stores internal state that you want to preserve across live-reloads,\n * but shouldn't trigger a refresh if the data changes. Marking this with\n * @State to allow to preserve state across live-reloads.\n */\n @State()\n private stateMap: StateMap = {\n viewportRows: [],\n columnWidths: [],\n columnWidthPercentages: [],\n };\n\n private lastStartIndex = 0;\n private resizeObserver?: ResizeObserver;\n private headerResizeObserver?: ResizeObserver;\n\n private tableElement?: HTMLDivElement;\n private headerElement?: HTMLDivElement;\n private columnElements: HTMLVertexSceneTreeTableColumnElement[] = [];\n\n private cellHoverController = new SceneTreeCellHoverController();\n\n public componentWillLoad(): void {\n this.updateColumnElements();\n this.createPools();\n this.initializeColumnLayout();\n\n this.headerResizeObserver = new ResizeObserver(() => {\n this.stateMap.headerHeight = undefined;\n this.computeHeaderHeight();\n this.updateLayoutPosition();\n });\n\n this.resizeObserver = new ResizeObserver(() => {\n this.updateLayoutPosition();\n this.clearLayoutHeight();\n this.clearLayoutWidth();\n this.recomputeColumnWidths();\n this.computeColumnGridLayout();\n });\n }\n\n public async componentDidLoad(): Promise<void> {\n this.tableElement?.addEventListener('scroll', this.handleScrollChanged, {\n passive: true,\n });\n\n if (this.headerElement != null) {\n this.headerResizeObserver?.observe(this.headerElement);\n }\n\n this.resizeObserver?.observe(this.hostEl);\n\n // These measurements require rendered DOM, but mutating tracked values\n // directly in componentDidLoad triggers Stencil dev warnings.\n await Promise.resolve();\n await this.initializeMeasuredLayout();\n }\n\n public async componentWillRender(): Promise<void> {\n await this.computeAndUpdateViewportRows();\n }\n\n public componentDidRender(): void {\n this.layoutColumns();\n\n this.layoutRendered.emit();\n }\n\n public async componentDidUpdate(): Promise<void> {\n if (this.isComputingCellHeight) {\n await this.computeCellHeight();\n }\n }\n\n public disconnectedCallback(): void {\n this.tableElement?.removeEventListener('scroll', this.handleScrollChanged);\n this.removeDividerDragListeners();\n this.headerResizeObserver?.disconnect();\n this.resizeObserver?.disconnect();\n this.stateMap.columnWidths = [];\n this.stateMap.columnWidthPercentages = [];\n }\n\n @Watch('rows')\n @Watch('totalRows')\n @Watch('rowHeight')\n protected async handleViewportRowsPropsChanged(): Promise<void> {\n await this.computeAndUpdateViewportRows();\n }\n\n /**\n * Scrolls the table to the provided top value.\n *\n * @param top The position to scroll to.\n * @param options A set of options to configure the scrolling behavior.\n */\n @Method()\n public async scrollToPosition(\n top: number,\n options: Pick<DomScrollToOptions, 'behavior'>,\n ): Promise<void> {\n if (this.tableElement != null) {\n scrollToTop(this.tableElement, top, options);\n }\n }\n\n /**\n * Attempts to compute the height of templated cells. Used for internals\n * or testing.\n *\n * @internal\n * @ignore\n */\n @Method()\n public async attemptComputeCellHeight(): Promise<void> {\n this.computeCellHeight();\n }\n\n public render(): h.JSX.IntrinsicElements {\n return (\n <Host>\n <div\n class=\"header\"\n ref={(ref) => (this.headerElement = ref)}\n style={{\n gridTemplateColumns: this.columnGridFixedLayout,\n display: this.columnElements.length <= 1 ? 'none' : 'grid',\n }}\n >\n <slot name=\"header\" />\n </div>\n <div\n class=\"table\"\n ref={(ref) => (this.tableElement = ref)}\n style={{\n gridTemplateColumns: this.columnGridLayout,\n }}\n >\n <slot\n onSlotchange={() => {\n this.ensureDividerTemplateDefined();\n this.updateColumnElements();\n this.recreateColumnPools();\n this.computeInitialColumnWidths();\n this.rebindHeaderData();\n this.computeColumnGridLayout();\n }}\n />\n </div>\n <div\n class=\"divider-overlay\"\n style={{\n gridTemplateColumns: this.columnGridFixedLayout,\n }}\n >\n <slot name=\"divider\" />\n </div>\n {this.resizingColumnIndex != null && <div class=\"resize-overlay\" />}\n </Host>\n );\n }\n\n private computeViewportRows(): void {\n const viewportHeight = this.getLayoutHeight();\n const canComputeIndices =\n viewportHeight != null &&\n viewportHeight > 0 &&\n !this.isComputingCellHeight;\n\n if (canComputeIndices) {\n const viewportCount = Math.ceil(viewportHeight / this.rowHeight);\n\n const viewportStartIndex = Math.floor(this.scrollOffset / this.rowHeight);\n const viewportEndIndex = viewportStartIndex + viewportCount;\n\n const startIndex = Math.max(0, viewportStartIndex - this.overScanCount);\n const endIndex = Math.min(\n this.totalRows - 1,\n viewportEndIndex + this.overScanCount,\n );\n\n const rows = this.getViewportRows(startIndex, endIndex);\n\n this.viewportStartIndex = startIndex;\n this.viewportEndIndex = endIndex;\n this.stateMap.viewportRows = rows;\n }\n }\n\n private initializeColumnLayout(): void {\n this.computeInitialColumnWidths();\n this.computeColumnGridLayout();\n this.ensureDividerTemplateDefined();\n this.rebindHeaderData();\n }\n\n private async initializeMeasuredLayout(): Promise<void> {\n await this.computeCellHeight();\n this.computeHeaderHeight();\n }\n\n private async computeAndUpdateViewportRows(): Promise<void> {\n this.computeViewportRows();\n\n if (this.controller?.isConnected && this.totalRows > 0) {\n await this.controller.updateActiveRowRange(\n this.viewportStartIndex,\n this.viewportEndIndex,\n );\n }\n }\n\n private layoutColumns = (): void => {\n const visibleRowCount = this.viewportEndIndex - this.viewportStartIndex + 1;\n const diff = this.viewportStartIndex - this.lastStartIndex;\n this.lastStartIndex = this.viewportStartIndex;\n\n this.iterateColumns((col, pool, colIndex) => {\n pool.updateElements(visibleRowCount);\n\n if (diff > 0) {\n pool.swapHeadToTail(diff);\n } else {\n pool.swapTailToHead(-diff);\n }\n\n col.style.minHeight = `${this.rowHeight * this.totalRows}px`;\n\n const cellPaddingLeft =\n colIndex === 0\n ? (depth: number) => `calc(${depth} * 0.5rem)`\n : () => `0`;\n\n pool.iterateElements((el, binding, rowIndex) => {\n const row = this.stateMap.viewportRows[rowIndex];\n\n if (isLoadedRow(row)) {\n this.updateCell(row, el, binding, rowIndex, cellPaddingLeft);\n }\n });\n });\n };\n\n private updateCell = (\n row: LoadedRow,\n cell: HTMLElement,\n binding: Binding,\n rowIndex: number,\n cellPaddingLeft: (depth: number) => string,\n ): void => {\n cell.style.position = 'absolute';\n cell.style.top = `${(this.viewportStartIndex + rowIndex) * this.rowHeight}px`;\n cell.style.boxSizing = 'border-box';\n cell.style.height = `${this.rowHeight}px`;\n cell.style.width = '100%';\n cell.style.paddingLeft = cellPaddingLeft(row.node.depth);\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n (cell as any).tree = this.tree;\n (cell as any).node = row.node;\n (cell as any).hoverController = this.cellHoverController;\n (cell as any).isScrolling = this.isScrolling;\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n binding.bind(row);\n };\n\n private updateLayoutPosition = (): void => {\n readDOM(() => {\n if (this.tableElement != null) {\n this.layoutOffset = getSceneTreeTableOffsetTop(this.tableElement);\n }\n });\n };\n\n private recomputeColumnWidths = (): void => {\n const layoutWidth = this.getLayoutWidth();\n if (\n layoutWidth != null &&\n this.stateMap.columnWidths.length ===\n this.stateMap.columnWidthPercentages.length\n ) {\n this.stateMap.columnWidths = this.stateMap.columnWidthPercentages.map(\n (w) => w * layoutWidth,\n );\n\n this.columnsResized.emit(this.stateMap.columnWidths);\n }\n };\n\n private recomputeColumnPercentages = (): void => {\n const layoutWidth = this.getLayoutWidth();\n if (\n layoutWidth != null &&\n this.stateMap.columnWidths.length ===\n this.stateMap.columnWidthPercentages.length\n ) {\n this.stateMap.columnWidthPercentages = this.stateMap.columnWidths.map(\n (w) => w / layoutWidth,\n );\n }\n };\n\n private computeInitialColumnWidths = (): void => {\n this.stateMap.columnWidths = this.columnElements.map(\n (c) => c.initialWidth ?? 100,\n );\n\n const layoutWidth = this.getLayoutWidth();\n if (layoutWidth != null) {\n const columnWidthSum = this.stateMap.columnWidths.reduce(\n (result, w) => result + w,\n 0,\n );\n const scaledColumnWidths = this.stateMap.columnWidths.map(\n (w) => w * (layoutWidth / columnWidthSum),\n );\n\n this.stateMap.columnWidthPercentages = scaledColumnWidths.map(\n (w) => w / layoutWidth,\n );\n this.stateMap.columnWidths = scaledColumnWidths;\n }\n };\n\n private updateColumnElements = (): void => {\n this.columnElements = Array.from(\n this.hostEl.querySelectorAll('vertex-scene-tree-table-column'),\n ) as Array<HTMLVertexSceneTreeTableColumnElement>;\n };\n\n private createPools(): void {\n if (this.stateMap.columnElementPools == null) {\n this.stateMap.columnElementPools = this.columnElements.reduce(\n (map, c) =>\n map.set(\n c,\n new ElementPool(c, () => this.createColumnCellInstance(c)),\n ),\n new WeakMap(),\n );\n }\n }\n\n private recreateColumnPools(): void {\n this.columnElements.forEach((c) => {\n if (this.stateMap.columnElementPools?.get(c) == null) {\n this.stateMap.columnElementPools?.set(\n c,\n new ElementPool(c, () => this.createColumnCellInstance(c)),\n );\n } else {\n this.stateMap.columnElementPools\n .get(c)\n ?.updateElementFactory(() => this.createColumnCellInstance(c));\n }\n });\n }\n\n private iterateColumns(\n f: (\n column: HTMLVertexSceneTreeTableColumnElement,\n pool: ElementPool,\n index: number,\n ) => void,\n ): void {\n this.columnElements.forEach((column, i) => {\n const pool = this.stateMap.columnElementPools?.get(column);\n if (pool != null) {\n f(column, pool, i);\n } else {\n throw new Error('Cannot find pool for column');\n }\n });\n }\n\n private ensureDividerTemplateDefined(): void {\n const template = this.hostEl.querySelector(\n 'template[slot=\"divider\"]',\n ) as HTMLTemplateElement;\n if (template == null) {\n const defaultDividerTemplate = document.createElement('template');\n defaultDividerTemplate.slot = 'divider';\n defaultDividerTemplate.innerHTML = `\n <vertex-scene-tree-table-resize-divider slot=\"divider\">\n </vertex-scene-tree-table-resize-divider>\n `;\n this.hostEl.appendChild(defaultDividerTemplate);\n }\n }\n\n private createHeaderInstance(\n column: HTMLVertexSceneTreeTableColumnElement,\n ): InstancedTemplate<HTMLElement> | undefined {\n const template = column.querySelector(\n 'template[slot=\"header\"]',\n ) as HTMLTemplateElement;\n if (template != null) {\n return generateInstanceFromTemplate(template);\n }\n }\n\n private createDividerInstance(): InstancedTemplate<HTMLElement> {\n const template = this.hostEl.querySelector(\n 'template[slot=\"divider\"]',\n ) as HTMLTemplateElement;\n if (template != null) {\n return generateInstanceFromTemplate(template);\n } else {\n throw new Error('Table is missing divider template element');\n }\n }\n\n private createColumnCellInstance(\n column: HTMLVertexSceneTreeTableColumnElement,\n ): InstancedTemplate<HTMLElement> {\n const template = column.querySelector(\n 'template:not([slot=\"header\"])',\n ) as HTMLTemplateElement;\n if (template != null) {\n return generateInstanceFromTemplate(template);\n } else {\n throw new Error('Column is missing cell template element');\n }\n }\n\n private computeCellHeight = async (): Promise<void> => {\n if (this.isComputingCellHeight && this.columnElements.length > 0) {\n const dummyData: LoadedRow = {\n index: 0,\n node: {\n id: { hex: '' },\n name: 'Dummy row',\n expanded: false,\n selected: false,\n visible: false,\n partiallyVisible: false,\n isLeaf: false,\n depth: 0,\n columnsList: [],\n filterHit: false,\n hasGeometry: false,\n phantom: false,\n endItem: false,\n },\n metadata: {},\n data: {},\n };\n const { bindings, element } = this.createColumnCellInstance(\n this.columnElements[0],\n );\n bindings.bind(dummyData);\n element.style.visibility = 'hidden';\n\n this.columnElements[0]?.appendChild(element);\n\n /* eslint-disable @typescript-eslint/no-explicit-any */\n if (typeof (element as any).componentOnReady === 'function') {\n await (element as any).componentOnReady();\n }\n /* eslint-enable @typescript-eslint/no-explicit-any */\n\n let height = element.clientHeight;\n if (height === 0) {\n height = await new Promise((resolve) => {\n setTimeout(() => resolve(element.getBoundingClientRect().height), 5);\n });\n }\n\n this.rowHeight = height ?? this.rowHeight;\n element.remove();\n this.isComputingCellHeight = this.rowHeight === 0;\n }\n };\n\n private computeHeaderHeight = (): void => {\n if (this.stateMap.headerHeight == null) {\n this.stateMap.headerHeight =\n this.headerElement?.getBoundingClientRect().height;\n this.hostEl.style.setProperty(\n '--header-height',\n `${this.stateMap.headerHeight}px`,\n );\n }\n };\n\n private computeColumnGridLayout = (): void => {\n if (this.stateMap.columnWidths.length === 0) {\n this.stateMap.columnWidths = this.columnElements.map(\n (c) => c.initialWidth ?? 100,\n );\n }\n\n const layoutWidth = this.getLayoutWidth();\n if (layoutWidth != null) {\n if (this.stateMap.columnWidthPercentages.length === 0) {\n this.stateMap.columnWidthPercentages = this.columnElements.map(\n (c) => (c.initialWidth ?? 100) / layoutWidth,\n );\n }\n }\n\n /**\n * This layout uses `1fr` instead of the final column width to\n * allow the final column to shrink when a scrollbar appears.\n *\n * This flex behavior is not desired for the header and divider\n * elements since they are not scrollable, and `columnGridFixedLayout`\n * should be used instead.\n */\n this.columnGridLayout = `${this.stateMap.columnWidths\n .slice(0, -1)\n .reduce((res, w) => `${res} ${w}px`, '')} 1fr`;\n\n this.columnGridFixedLayout = `${this.stateMap.columnWidths.reduce(\n (res, w) => `${res} ${w}px`,\n '',\n )}`;\n };\n\n private bindHeaderData = (): void => {\n if (this.stateMap.headerInstances == null) {\n this.stateMap.headerInstances = this.columnElements\n .map((c, i) => {\n const instance = this.createHeaderInstance(c);\n\n if (instance != null) {\n instance.element.style.paddingRight =\n i === this.columnElements.length - 1\n ? `0`\n : `var(--scene-tree-table-column-gap)`;\n instance.element.slot = 'header';\n instance.element.style.gridColumnStart = `${i + 1}`;\n instance.element.style.gridColumnEnd = `${i + 2}`;\n this.hostEl?.appendChild(instance.element);\n }\n\n return instance;\n })\n .filter((i) => i != null) as Array<InstancedTemplate<HTMLElement>>;\n }\n\n if (this.stateMap.headerDividerInstances == null) {\n this.stateMap.headerDividerInstances = this.columnElements\n .slice(0, -1)\n .map((_, i) => {\n const instance = this.createDividerInstance();\n\n instance.element.slot = 'divider';\n instance.element.style.position = 'absolute';\n instance.element.style.right = '0';\n instance.element.style.pointerEvents = 'auto';\n instance.element.style.gridColumnStart = `${i + 1}`;\n instance.element.style.gridColumnEnd = `${i + 2}`;\n this.hostEl?.appendChild(instance.element);\n\n return instance;\n });\n }\n };\n\n private rebindHeaderData = (): void => {\n this.removeDividerDragListeners();\n\n this.stateMap.headerInstances?.forEach((i) => i.element.remove());\n this.stateMap.headerDividerInstances?.forEach((i) => i.element.remove());\n this.stateMap.headerInstances = undefined;\n this.stateMap.headerDividerInstances = undefined;\n\n this.bindHeaderData();\n this.addDividerDragListeners();\n };\n\n private addDividerDragListeners(): void {\n this.stateMap.headerDividerListeners =\n this.stateMap.headerDividerInstances?.map((d, i) => {\n const listener = this.createDividerPointerDownHandler(i);\n\n d.element.addEventListener('pointerdown', listener);\n\n return listener;\n });\n }\n\n private removeDividerDragListeners(): void {\n if (this.stateMap.headerDividerListeners != null) {\n const listeners = this.stateMap.headerDividerListeners;\n\n this.stateMap.headerDividerInstances?.forEach((d, i) => {\n const listener = listeners[i];\n if (listener != null) {\n d.element.removeEventListener('pointerdown', listener);\n }\n });\n this.stateMap.headerDividerListeners = undefined;\n }\n }\n\n private createDividerPointerDownHandler = (\n index: number,\n ): ((event: PointerEvent) => void) => {\n return (event: PointerEvent): void => {\n event.preventDefault();\n event.stopPropagation();\n\n this.lastDividerPointerPosition = Point.create(\n Math.floor(event.clientX),\n Math.floor(event.clientY),\n );\n this.resizingColumnIndex = index;\n this.stateMap.headerDividerInstances?.[index]?.element.classList.add(\n 'dragging',\n );\n\n window.addEventListener('pointermove', this.handleDividerPointerMove);\n window.addEventListener('pointerup', this.handleDividerPointerUp);\n };\n };\n\n private handleDividerPointerMove = (event: PointerEvent): void => {\n const current = Point.create(\n Math.floor(event.clientX),\n Math.floor(event.clientY),\n );\n\n if (\n this.lastDividerPointerPosition != null &&\n this.resizingColumnIndex != null\n ) {\n const resizingIndex = this.resizingColumnIndex;\n const diff = Point.subtract(this.lastDividerPointerPosition, current);\n\n if (Math.abs(diff.x) >= 1 && this.isValidResize(diff, resizingIndex)) {\n this.stateMap.columnWidths = this.stateMap.columnWidths.map((w, i) =>\n i === resizingIndex ? w - diff.x : w,\n );\n\n if (resizingIndex + 1 < this.stateMap.columnWidths.length) {\n this.stateMap.columnWidths = this.stateMap.columnWidths.map((w, i) =>\n i === resizingIndex + 1 ? w + diff.x : w,\n );\n }\n\n this.lastDividerPointerPosition = current;\n this.computeColumnGridLayout();\n }\n }\n };\n\n private handleDividerPointerUp = (): void => {\n if (this.resizingColumnIndex != null) {\n this.stateMap.headerDividerInstances?.[\n this.resizingColumnIndex\n ]?.element.classList.remove('dragging');\n }\n this.lastDividerPointerPosition = undefined;\n this.resizingColumnIndex = undefined;\n\n this.recomputeColumnPercentages();\n this.recomputeColumnWidths();\n\n window.removeEventListener('pointermove', this.handleDividerPointerMove);\n window.removeEventListener('pointerup', this.handleDividerPointerUp);\n };\n\n private isValidResize = (diff: Point.Point, index: number): boolean => {\n const currentColumn = this.columnElements[index];\n const nextColumn = this.columnElements[index + 1];\n const currentWidth = this.stateMap.columnWidths[index];\n const nextWidth = this.stateMap.columnWidths[index + 1];\n const currentMinWidth = currentColumn.minWidth ?? 0;\n const currentMaxWidth = currentColumn.maxWidth ?? Number.MAX_SAFE_INTEGER;\n const nextMinWidth = nextColumn.minWidth ?? 0;\n const nextMaxWidth = nextColumn.maxWidth ?? Number.MAX_SAFE_INTEGER;\n\n const currentIsValid =\n currentWidth - diff.x > currentMinWidth &&\n currentWidth - diff.x < currentMaxWidth;\n const nextIsValid =\n nextColumn != null\n ? nextWidth + diff.x > nextMinWidth && nextWidth + diff.x < nextMaxWidth\n : true;\n\n return currentIsValid && nextIsValid;\n };\n\n private handleScrollChanged = async (event: Event): Promise<void> => {\n this.isScrolling = true;\n\n this.scrollTimer = restartTimeout(() => {\n this.isScrolling = false;\n }, this.scrollTimer);\n\n this.scrollOffset = (event.target as HTMLElement).scrollTop;\n await this.computeAndUpdateViewportRows();\n };\n\n private getViewportRows(startIndex: number, endIndex: number): Row[] {\n const rows = this.rows.slice(startIndex, endIndex + 1);\n return rows.map((row) => (row != null ? this.populateRowData(row) : row));\n }\n\n private populateRowData(row: Row): Row {\n if (this.rowData != null && row != null) {\n const data = this.rowData?.(row) || {};\n return { ...row, data };\n } else {\n return row;\n }\n }\n\n private getLayoutHeight(): number | undefined {\n if (this.layoutHeight == null && this.tableElement != null) {\n this.layoutHeight = getSceneTreeViewportHeight(this.tableElement);\n }\n return this.layoutHeight;\n }\n\n private getLayoutWidth(): number | undefined {\n if (this.layoutWidth == null) {\n const computedWidth = getSceneTreeTableViewportWidth(this.hostEl);\n if (computedWidth > 0) {\n this.layoutWidth = computedWidth;\n }\n }\n return this.layoutWidth;\n }\n\n private clearLayoutHeight(): void {\n this.layoutHeight = undefined;\n }\n\n private clearLayoutWidth(): void {\n this.layoutWidth = undefined;\n }\n}\n"],"mappings":";;;sPAAM,SAAUA,EAA2BC,GACzC,OAAOA,EAAGC,YACZ,CAMM,SAAUC,EACdF,EACAG,GAEA,OAAOH,EAAGI,SAASD,EACrB,CCLA,SAASE,EAAUC,GACf,OAAOA,EAAIC,aACf,CAGA,IAAIC,EAAuB,CAAC,qBAAsB,wBAElD,IAAIC,EAAuB,eAI3B,SAASC,EAAOC,EAAOC,GACnB,GAAIA,SAAY,EAAQ,CAAEA,EAAU,EAAG,CACvC,IAAIC,EAAKD,EAAQE,YAAaA,EAAcD,SAAO,EAASL,EAAuBK,EAAIE,EAAKH,EAAQI,YAAaA,EAAcD,SAAO,EAASN,EAAuBM,EAAIE,EAAKL,EAAQM,UAAWA,EAAYD,SAAO,EAASZ,EAAYY,EAAIE,EAAKP,EAAQQ,UAAWA,EAAYD,SAAO,EAAS,IAAMA,EACxS,IAAIE,EAASC,EAAQA,EAAQX,EAAOG,EAAa,UAAWE,EAAa,MACzE,IAAIO,EAAQ,EACZ,IAAIC,EAAMH,EAAOI,OAEjB,MAAOJ,EAAOK,OAAOH,KAAW,KAC5BA,IACJ,MAAOF,EAAOK,OAAOF,EAAM,KAAO,KAC9BA,IAEJ,OAAOH,EAAOM,MAAMJ,EAAOC,GAAKI,MAAM,MAAMC,IAAIX,GAAWY,KAAKV,EACpE,CAIA,SAASE,EAAQX,EAAOoB,EAAIC,GACxB,GAAID,aAAcE,OACd,OAAOtB,EAAMW,QAAQS,EAAIC,GAC7B,OAAOD,EAAGG,QAAO,SAAUvB,EAAOoB,GAAM,OAAOpB,EAAMW,QAAQS,EAAIC,EAAO,GAAIrB,EAChF,CAEA,SAASwB,EAAoBxB,EAAOyB,GAChC,IAAIC,EAAY1B,EAAMe,OAAO,GAC7B,IAAIY,EAAa3B,EAAM4B,OAAO,GAAGhC,cACjC,GAAI6B,EAAQ,GAAKC,GAAa,KAAOA,GAAa,IAAK,CACnD,MAAO,IAAMA,EAAYC,CACjC,CACI,MAAO,GAAKD,EAAUG,cAAgBF,CAC1C,CACA,SAASG,EAAW9B,EAAOC,GACvB,GAAIA,SAAY,EAAQ,CAAEA,EAAU,EAAG,CACvC,OAAOF,EAAOC,EAAO+B,EAAS,CAAEtB,UAAW,GAAIF,UAAWiB,GAAuBvB,GACrF,CAEA,SAAS+B,EAAmBhC,EAAOyB,GAC/B,GAAIA,IAAU,EACV,OAAOzB,EAAMJ,cACjB,OAAO4B,EAAoBxB,EAAOyB,EACtC,CACA,SAASQ,EAAUjC,EAAOC,GACtB,GAAIA,SAAY,EAAQ,CAAEA,EAAU,EAAG,CACvC,OAAO6B,EAAW9B,EAAO+B,EAAS,CAAExB,UAAWyB,GAAsB/B,GACzE,CAEA,MAAMiC,EAAe,WACrB,MAAMC,EACF,WAAAC,CAAYC,GACRC,KAAKD,SAAWA,CACxB,CACI,IAAAE,CAAKC,GACDF,KAAKD,SAASI,SAASC,GAAYA,EAAQH,KAAKC,IACxD,EAEA,MAAMG,EACF,WAAAP,CAAYQ,EAAMC,GACdP,KAAKM,KAAOA,EACZN,KAAKO,KAAOA,CACpB,EAEA,MAAMC,UAAwBH,EAC1B,WAAAP,CAAYQ,EAAMC,GACdE,MAAMH,EAAMC,EACpB,CACI,IAAAN,CAAKC,GACD,MAAMQ,EAAaC,EAAqBT,EAAMF,KAAKO,MACnD,GAAIG,IAAeV,KAAKM,KAAKM,YAAa,CACtCZ,KAAKM,KAAKM,YAAcF,CACpC,CACA,EAEA,MAAMG,UAAyBR,EAC3B,WAAAP,CAAYQ,EAAMC,EAAMO,GACpBL,MAAMH,EAAMC,GACZP,KAAKc,KAAOA,CACpB,CACI,IAAAb,CAAKC,GACD,MAAMa,EAAWJ,EAAqBT,EAAMF,KAAKO,MACjD,MAAMS,EAAWhB,KAAKM,KAAKW,aAAajB,KAAKc,MAC7C,GAAIE,IAAaD,EAAU,CACvBf,KAAKM,KAAKY,aAAalB,KAAKc,KAAMC,EAC9C,CACA,EAEA,MAAMI,UAAwBd,EAC1B,WAAAP,CAAYQ,EAAMC,EAAMa,GACpBX,MAAMH,EAAMC,GACZP,KAAKoB,KAAOA,CACpB,CACI,IAAAnB,CAAKC,GACD,MAAMa,EAAWM,EAAenB,EAAMF,KAAKO,MAE3C,MAAMS,EAAWhB,KAAKM,KAAKN,KAAKoB,MAChC,GAAIJ,IAAaD,EAAU,CACvBf,KAAKM,KAAKN,KAAKoB,MAAQL,CACnC,CAEA,EAEA,MAAMO,UAA4BjB,EAC9B,WAAAP,CAAYQ,EAAMC,EAAMgB,GACpBd,MAAMH,EAAMC,GACZP,KAAKuB,UAAYA,CACzB,CACI,IAAAtB,CAAKC,GACD,IAAItC,EACJ,MAAM4D,EAAOC,EAAmBzB,KAAKO,MACrC,GAAIiB,GAAQ,KAAM,EACb5D,EAAKoC,KAAK0B,cAAgB,MAAQ9D,SAAO,OAAS,EAASA,EAAG+D,UAC/D,MAAMC,EAAWC,EAAiB3B,EAAMsB,EAAM,MAC9CxB,KAAKM,KAAKwB,iBAAiB9B,KAAKuB,UAAWK,GAC3C5B,KAAK0B,WAAa,CACdC,QAAS,KACL3B,KAAKM,KAAKyB,oBAAoB/B,KAAKuB,UAAWK,EAAS,EAG3E,CACA,EAEA,SAASI,EAAiB1B,GACtB,MAAMP,EAAW,GACjB,GAAIO,EAAK2B,WAAaC,KAAKC,aAAc,CACrC,MAAMpF,EAAKuD,EACX,MAAM8B,EAAqBC,EAAsBtF,GACjDqF,EAAmBjC,SAASW,IACxB,GAAIA,EAAKwB,KAAKC,WAAW,UAAW,CAChC,MAAMhB,EAAY5B,EAAUmB,EAAKwB,KAAKjE,QAAQ,SAAU,KACxD0B,EAASyC,KAAK,IAAIlB,EAAoBvE,EAAI+D,EAAK/B,MAAOwC,GACtE,MACiB,GAAIT,EAAKwB,KAAKC,WAAW,SAAU,CACpCxC,EAASyC,KAAK,IAAI3B,EAAiB9D,EAAI+D,EAAK/B,MAAO+B,EAAKwB,KAAKjE,QAAQ,QAAS,KAC9F,MACiB,GAAIyC,EAAKwB,KAAKC,WAAW,SAAU,CACpC,MAAME,EAAW9C,EAAUmB,EAAKwB,KAAKjE,QAAQ,QAAS,KACtD0B,EAASyC,KAAK,IAAIrB,EAAgBpE,EAAI+D,EAAK/B,MAAO0D,GAClE,IAEA,MACS,GAAInC,EAAK2B,WAAaC,KAAKQ,WAC5BpC,EAAKM,aAAe,MACpBhB,EAAa+C,KAAKrC,EAAKM,aAAc,CACrCb,EAASyC,KAAK,IAAIhC,EAAgBF,EAAMA,EAAKM,aACrD,CACI,IAAK,IAAIgC,EAAI,EAAGA,EAAItC,EAAKuC,WAAWrE,OAAQoE,IAAK,CAC7C7C,EAASyC,QAAQR,EAAiB1B,EAAKuC,WAAWD,IAC1D,CACI,OAAO7C,CACX,CACA,SAASsC,EAAsBS,GAC3B,OAAOC,MAAMC,KAAKF,EAAQG,YAAYC,QAAQpC,GAASlB,EAAa+C,KAAK7B,EAAK/B,QAClF,CACA,SAAS0C,EAAmBlB,GACxB,MAAMnC,EAASwB,EAAauD,KAAK5C,GACjC,OAAOnC,GAAU,KAAOA,EAAO,GAAKgF,SACxC,CACA,SAASzC,EAAqBT,EAAMK,GAChC,MAAMiB,EAAOC,EAAmBlB,GAChC,GAAIiB,GAAQ,KAAM,CACd,MAAMzC,EAAQ8C,EAAiB3B,EAAMsB,EAAM,MAC3C,OAAOjB,EAAKlC,QAAQ,KAAKmD,MAAUzC,IAAU,MAAQA,SAAU,OAAS,EAASA,EAAMsE,WAC/F,KACS,CACD,OAAO9C,CACf,CACA,CAEA,SAASc,EAAenB,EAAMK,GAC1B,MAAMiB,EAAOC,EAAmBlB,GAChC,GAAIiB,GAAQ,KAAM,CACd,MAAMzC,EAAQ8C,EAAiB3B,EAAMsB,EAAM,MAC3C,OAAOzC,CACf,KACS,CACD,OAAOwB,CACf,CACA,CACA,SAASsB,EAAiB3B,EAAMsB,EAAM8B,EAAS,OAC3C,MAAOC,KAASC,GAAQhC,EAAK7C,MAAM,KACnC,GAAI2E,GAAUE,EAAKhF,SAAW,EAAG,CAC7B,OAAO0B,CACf,MACS,GAAIoD,GAAUE,EAAKhF,OAAS,EAAG,CAChC,OAAOqD,EAAiB3B,EAAMsD,EAAK3E,KAAK,KAAM,MACtD,KACS,CACD,MAAME,EAAQmB,EAAKqD,GACnB,GAAIC,EAAKhF,OAAS,EAAG,CACjB,OAAOqD,EAAiB9C,EAAOyE,EAAK3E,KAAK,KAAM,MAC3D,KACa,CACD,OAAOE,CACnB,CACA,CACA,CAEA,MAAM0E,EACF,WAAA3D,CAAY4D,EAAWC,GACnB3D,KAAK0D,UAAYA,EACjB1D,KAAK2D,eAAiBA,EACtB3D,KAAK4D,YAAc,IAAIC,IACvB7D,KAAK8D,SAAW,EACxB,CACI,cAAAC,CAAeC,GACX,MAAMC,EAASjE,KAAK8D,SAASI,OAAO,EAAGF,GACvChE,KAAK8D,SAASI,OAAOlE,KAAK8D,SAAStF,OAAQ,KAAMyF,GACjD,OAAOjE,KAAK8D,SAASK,QAC7B,CACI,cAAAC,CAAeJ,GACX,MAAMC,EAASjE,KAAK8D,SAASI,QAAQF,EAAOA,GAC5ChE,KAAK8D,SAASI,OAAO,EAAG,KAAMD,GAC9B,OAAOjE,KAAK8D,SAASK,QAC7B,CACI,cAAAE,CAAeL,GACX,MAAMM,EAAON,EAAQhE,KAAK8D,SAAStF,OACnC,GAAI8F,EAAO,EAAG,CACV,IAAK,IAAI1B,EAAI,EAAGA,EAAI0B,EAAM1B,IAAK,CAC3B5C,KAAKuE,eACrB,CACA,KACa,CACD,IAAK,IAAI3B,EAAI,EAAGA,GAAK0B,EAAM1B,IAAK,CAC5B5C,KAAKwE,eACrB,CACA,CACQ,OAAOxE,KAAK8D,SAASK,QAC7B,CACI,UAAAM,CAAWC,GACP1E,KAAK8D,SAAS3D,SAAQ,CAACpD,EAAI6F,KACvB,MAAM+B,EAAW3E,KAAK4D,YAAYgB,IAAI7H,GACtC,MAAMmD,EAAOwE,EAAE9B,GACf+B,IAAa,MAAQA,SAAa,OAAS,EAASA,EAAS5E,SAASE,KAAKC,EAAK,GAE5F,CACI,oBAAA2E,CAAqBlB,GACjB3D,KAAK2D,eAAiBA,EACtB3D,KAAKqE,eAAe,EAC5B,CACI,eAAAS,CAAgBJ,GACZ1E,KAAK8D,SAAS3D,SAAQ,CAACpD,EAAI6F,KACvB,MAAM+B,EAAW3E,KAAK4D,YAAYgB,IAAI7H,GAEtC2H,EAAE3H,EAAI4H,EAAS5E,SAAU6C,EAAE,GAEvC,CACI,aAAA2B,GACI,MAAMI,EAAW3E,KAAK2D,iBACtB3D,KAAK8D,SAAStB,KAAKmC,EAAS7B,SAC5B9C,KAAK4D,YAAYmB,IAAIJ,EAAS7B,QAAS6B,GACvC3E,KAAK0D,UAAUsB,OAAOL,EAAS7B,SAC/B,OAAO6B,CACf,CACI,aAAAH,GACI,MAAM1B,EAAU9C,KAAK8D,SAASmB,MAC9B,GAAInC,GAAW,KAAM,CACjB9C,KAAK4D,YAAYsB,OAAOpC,GACxBA,EAAQqC,QACpB,CACA,EAeA,SAASC,EAA6BC,GAClC,MAAMC,EAAWD,EAASE,QAAQC,UAAU,MAC5C,MAAM1C,EAAUwC,EAASG,kBACzB,MAAM1F,EAAW,IAAIF,EAAkBmC,EAAiBsD,IACxD,MAAO,CAAExC,UAAS/C,WACtB,CCvSM,SAAU2F,EAA2B3I,G,MACzC,OAAOa,EAAAb,EAAG4I,wBAAwBC,OAAG,MAAAhI,SAAA,EAAAA,EAAI,CAC3C,CAEM,SAAUiI,EAA+B9I,GAC7C,OAAOA,EAAG+I,WACZ,C,SAEgBC,EACdhJ,EACA6I,EACAjI,GAEAZ,EAAGiJ,SAAS,CAAEJ,SAAQjI,GACxB,C,MCdasI,EAAb,WAAAnG,GACSE,KAAAkG,cAAgB,IAAIC,C,CAEpB,UAAAC,CAAWC,GAChBrG,KAAKkG,cAAcI,KAAKD,E,CAGnB,YAAAE,CAAa3E,GAClB,OAAO5B,KAAKkG,cAAcM,GAAG5E,E,ECV3B,SAAU6E,EACdC,EACAC,EACAC,EAAQ,KAERC,OAAOC,aAAaH,GACpB,OAAOE,OAAOE,WAAWL,EAAIE,EAC/B,CCPA,MAAMI,EAA0B,IAAM,opB,MCuDzBC,EAAoBC,EAAA,MAAAD,UAAAE,EALjC,WAAArH,CAAAsH,G,4JAuBSpH,KAAAqH,KAAc,GAMdrH,KAAAsH,UAAY,EAMZtH,KAAAuH,UAAY,GAWZvH,KAAAwH,cAAgB,GAsChBxH,KAAAyH,aAAe,EAMfzH,KAAA0H,aAAe,EAkBf1H,KAAA2H,mBAAqB,EAMrB3H,KAAA4H,iBAAmB,EAmBlB5H,KAAA6H,iBAAmB,MAGnB7H,KAAA8H,sBAAwB,GAGxB9H,KAAA+H,sBAAwB,KASxB/H,KAAAgI,YAAc,MAWdhI,KAAAiI,SAAqB,CAC3BC,aAAc,GACdC,aAAc,GACdC,uBAAwB,IAGlBpI,KAAAqI,eAAiB,EAMjBrI,KAAAsI,eAA0D,GAE1DtI,KAAAuI,oBAAsB,IAAItC,EAiM1BjG,KAAAwI,cAAgB,KACtB,MAAMC,EAAkBzI,KAAK4H,iBAAmB5H,KAAK2H,mBAAqB,EAC1E,MAAMrD,EAAOtE,KAAK2H,mBAAqB3H,KAAKqI,eAC5CrI,KAAKqI,eAAiBrI,KAAK2H,mBAE3B3H,KAAK0I,gBAAe,CAACC,EAAKC,EAAMC,KAC9BD,EAAKvE,eAAeoE,GAEpB,GAAInE,EAAO,EAAG,CACZsE,EAAK7E,eAAeO,E,KACf,CACLsE,EAAKxE,gBAAgBE,E,CAGvBqE,EAAIG,MAAMC,UAAY,GAAG/I,KAAKuH,UAAYvH,KAAKsH,cAE/C,MAAM0B,EACJH,IAAa,EACRI,GAAkB,QAAQA,cAC3B,IAAM,IAEZL,EAAK9D,iBAAgB,CAAC/H,EAAIqD,EAAS8I,KACjC,MAAMC,EAAMnJ,KAAKiI,SAASC,aAAagB,GAEvC,GAAIE,EAAYD,GAAM,CACpBnJ,KAAKqJ,WAAWF,EAAKpM,EAAIqD,EAAS8I,EAAUF,E,IAE9C,GACF,EAGIhJ,KAAAqJ,WAAa,CACnBF,EACAG,EACAlJ,EACA8I,EACAF,KAEAM,EAAKR,MAAMS,SAAW,WACtBD,EAAKR,MAAMlD,IAAM,IAAI5F,KAAK2H,mBAAqBuB,GAAYlJ,KAAKuH,cAChE+B,EAAKR,MAAMU,UAAY,aACvBF,EAAKR,MAAMW,OAAS,GAAGzJ,KAAKuH,cAC5B+B,EAAKR,MAAMY,MAAQ,OACnBJ,EAAKR,MAAMa,YAAcX,EAAgBG,EAAI7I,KAAK2I,OAGjDK,EAAaM,KAAO5J,KAAK4J,KACzBN,EAAahJ,KAAO6I,EAAI7I,KACxBgJ,EAAaO,gBAAkB7J,KAAKuI,oBACpCe,EAAatB,YAAchI,KAAKgI,YAGjC5H,EAAQH,KAAKkJ,EAAI,EAGXnJ,KAAA8J,qBAAuB,KAC7BC,GAAQ,KACN,GAAI/J,KAAKgK,cAAgB,KAAM,CAC7BhK,KAAKyH,aAAe/B,EAA2B1F,KAAKgK,a,IAEtD,EAGIhK,KAAAiK,sBAAwB,KAC9B,MAAMC,EAAclK,KAAKmK,iBACzB,GACED,GAAe,MACflK,KAAKiI,SAASE,aAAa3J,SACzBwB,KAAKiI,SAASG,uBAAuB5J,OACvC,CACAwB,KAAKiI,SAASE,aAAenI,KAAKiI,SAASG,uBAAuBxJ,KAC/DwL,GAAMA,EAAIF,IAGblK,KAAKqK,eAAe/D,KAAKtG,KAAKiI,SAASE,a,GAInCnI,KAAAsK,2BAA6B,KACnC,MAAMJ,EAAclK,KAAKmK,iBACzB,GACED,GAAe,MACflK,KAAKiI,SAASE,aAAa3J,SACzBwB,KAAKiI,SAASG,uBAAuB5J,OACvC,CACAwB,KAAKiI,SAASG,uBAAyBpI,KAAKiI,SAASE,aAAavJ,KAC/DwL,GAAMA,EAAIF,G,GAKTlK,KAAAuK,2BAA6B,KACnCvK,KAAKiI,SAASE,aAAenI,KAAKsI,eAAe1J,KAC9C4L,IAAK,IAAA5M,EAAC,OAAAA,EAAA4M,EAAEC,gBAAY,MAAA7M,SAAA,EAAAA,EAAI,GAAG,IAG9B,MAAMsM,EAAclK,KAAKmK,iBACzB,GAAID,GAAe,KAAM,CACvB,MAAMQ,EAAiB1K,KAAKiI,SAASE,aAAalJ,QAChD,CAACb,EAAQgM,IAAMhM,EAASgM,GACxB,GAEF,MAAMO,EAAqB3K,KAAKiI,SAASE,aAAavJ,KACnDwL,GAAMA,GAAKF,EAAcQ,KAG5B1K,KAAKiI,SAASG,uBAAyBuC,EAAmB/L,KACvDwL,GAAMA,EAAIF,IAEblK,KAAKiI,SAASE,aAAewC,C,GAIzB3K,KAAA4K,qBAAuB,KAC7B5K,KAAKsI,eAAiBvF,MAAMC,KAC1BhD,KAAK6K,OAAOC,iBAAiB,kCACkB,EAkG3C9K,KAAA+K,kBAAoBC,U,MAC1B,GAAIhL,KAAK+H,uBAAyB/H,KAAKsI,eAAe9J,OAAS,EAAG,CAChE,MAAMyM,EAAuB,CAC3B9L,MAAO,EACPmB,KAAM,CACJ+F,GAAI,CAAE6E,IAAK,IACX5I,KAAM,YACN6I,SAAU,MACVC,SAAU,MACVC,QAAS,MACTC,iBAAkB,MAClBC,OAAQ,MACRtC,MAAO,EACPuC,YAAa,GACbC,UAAW,MACXC,YAAa,MACbC,QAAS,MACTC,QAAS,OAEXC,SAAU,GACV3L,KAAM,IAER,MAAMH,SAAEA,EAAQ+C,QAAEA,GAAY9C,KAAK8L,yBACjC9L,KAAKsI,eAAe,IAEtBvI,EAASE,KAAKgL,GACdnI,EAAQgG,MAAMiD,WAAa,UAE3BnO,EAAAoC,KAAKsI,eAAe,MAAE,MAAA1K,SAAA,SAAAA,EAAEoO,YAAYlJ,GAGpC,UAAYA,EAAgBmJ,mBAAqB,WAAY,OACpDnJ,EAAgBmJ,kB,CAIzB,IAAIxC,EAAS3G,EAAQ9F,aACrB,GAAIyM,IAAW,EAAG,CAChBA,QAAe,IAAIyC,SAASC,IAC1BpF,YAAW,IAAMoF,EAAQrJ,EAAQ6C,wBAAwB8D,SAAS,EAAE,G,CAIxEzJ,KAAKuH,UAAYkC,IAAM,MAANA,SAAM,EAANA,EAAUzJ,KAAKuH,UAChCzE,EAAQqC,SACRnF,KAAK+H,sBAAwB/H,KAAKuH,YAAc,C,GAI5CvH,KAAAoM,oBAAsB,K,MAC5B,GAAIpM,KAAKiI,SAASoE,cAAgB,KAAM,CACtCrM,KAAKiI,SAASoE,cACZzO,EAAAoC,KAAKsM,iBAAa,MAAA1O,SAAA,SAAAA,EAAE+H,wBAAwB8D,OAC9CzJ,KAAK6K,OAAO/B,MAAMyD,YAChB,kBACA,GAAGvM,KAAKiI,SAASoE,iB,GAKfrM,KAAAwM,wBAA0B,KAChC,GAAIxM,KAAKiI,SAASE,aAAa3J,SAAW,EAAG,CAC3CwB,KAAKiI,SAASE,aAAenI,KAAKsI,eAAe1J,KAC9C4L,IAAK,IAAA5M,EAAC,OAAAA,EAAA4M,EAAEC,gBAAY,MAAA7M,SAAA,EAAAA,EAAI,GAAG,G,CAIhC,MAAMsM,EAAclK,KAAKmK,iBACzB,GAAID,GAAe,KAAM,CACvB,GAAIlK,KAAKiI,SAASG,uBAAuB5J,SAAW,EAAG,CACrDwB,KAAKiI,SAASG,uBAAyBpI,KAAKsI,eAAe1J,KACxD4L,IAAK,IAAA5M,EAAC,QAACA,EAAA4M,EAAEC,gBAAY,MAAA7M,SAAA,EAAAA,EAAI,KAAOsM,CAAW,G,EAalDlK,KAAK6H,iBAAmB,GAAG7H,KAAKiI,SAASE,aACtCzJ,MAAM,GAAG,GACTO,QAAO,CAACwN,EAAKrC,IAAM,GAAGqC,KAAOrC,OAAO,UAEvCpK,KAAK8H,sBAAwB,GAAG9H,KAAKiI,SAASE,aAAalJ,QACzD,CAACwN,EAAKrC,IAAM,GAAGqC,KAAOrC,OACtB,KACC,EAGGpK,KAAA0M,eAAiB,KACvB,GAAI1M,KAAKiI,SAAS0E,iBAAmB,KAAM,CACzC3M,KAAKiI,SAAS0E,gBAAkB3M,KAAKsI,eAClC1J,KAAI,CAAC4L,EAAG5H,K,MACP,MAAM+B,EAAW3E,KAAK4M,qBAAqBpC,GAE3C,GAAI7F,GAAY,KAAM,CACpBA,EAAS7B,QAAQgG,MAAM+D,aACrBjK,IAAM5C,KAAKsI,eAAe9J,OAAS,EAC/B,IACA,qCACNmG,EAAS7B,QAAQgK,KAAO,SACxBnI,EAAS7B,QAAQgG,MAAMiE,gBAAkB,GAAGnK,EAAI,IAChD+B,EAAS7B,QAAQgG,MAAMkE,cAAgB,GAAGpK,EAAI,KAC9ChF,EAAAoC,KAAK6K,UAAM,MAAAjN,SAAA,SAAAA,EAAEoO,YAAYrH,EAAS7B,Q,CAGpC,OAAO6B,CAAQ,IAEhBzB,QAAQN,GAAMA,GAAK,M,CAGxB,GAAI5C,KAAKiI,SAASgF,wBAA0B,KAAM,CAChDjN,KAAKiI,SAASgF,uBAAyBjN,KAAKsI,eACzC5J,MAAM,GAAG,GACTE,KAAI,CAACsO,EAAGtK,K,MACP,MAAM+B,EAAW3E,KAAKmN,wBAEtBxI,EAAS7B,QAAQgK,KAAO,UACxBnI,EAAS7B,QAAQgG,MAAMS,SAAW,WAClC5E,EAAS7B,QAAQgG,MAAMsE,MAAQ,IAC/BzI,EAAS7B,QAAQgG,MAAMuE,cAAgB,OACvC1I,EAAS7B,QAAQgG,MAAMiE,gBAAkB,GAAGnK,EAAI,IAChD+B,EAAS7B,QAAQgG,MAAMkE,cAAgB,GAAGpK,EAAI,KAC9ChF,EAAAoC,KAAK6K,UAAM,MAAAjN,SAAA,SAAAA,EAAEoO,YAAYrH,EAAS7B,SAElC,OAAO6B,CAAQ,G,GAKf3E,KAAAsN,iBAAmB,K,QACzBtN,KAAKuN,8BAEL3P,EAAAoC,KAAKiI,SAAS0E,mBAAe,MAAA/O,SAAA,SAAAA,EAAEuC,SAASyC,GAAMA,EAAEE,QAAQqC,YACxDrH,EAAAkC,KAAKiI,SAASgF,0BAAsB,MAAAnP,SAAA,SAAAA,EAAEqC,SAASyC,GAAMA,EAAEE,QAAQqC,WAC/DnF,KAAKiI,SAAS0E,gBAAkBvJ,UAChCpD,KAAKiI,SAASgF,uBAAyB7J,UAEvCpD,KAAK0M,iBACL1M,KAAKwN,yBAAyB,EA4BxBxN,KAAAyN,gCACNtO,GAEQuO,I,QACNA,EAAMC,iBACND,EAAME,kBAEN5N,KAAK6N,2BAA6BC,EAAMC,OACtCC,KAAKC,MAAMP,EAAMQ,SACjBF,KAAKC,MAAMP,EAAMS,UAEnBnO,KAAKoO,oBAAsBjP,GAC3BrB,GAAAF,EAAAoC,KAAKiI,SAASgF,0BAAsB,MAAArP,SAAA,SAAAA,EAAGuB,MAAM,MAAArB,SAAA,SAAAA,EAAEgF,QAAQuL,UAAUC,IAC/D,YAGFzH,OAAO/E,iBAAiB,cAAe9B,KAAKuO,0BAC5C1H,OAAO/E,iBAAiB,YAAa9B,KAAKwO,uBAAuB,EAI7DxO,KAAAuO,yBAA4Bb,IAClC,MAAMe,EAAUX,EAAMC,OACpBC,KAAKC,MAAMP,EAAMQ,SACjBF,KAAKC,MAAMP,EAAMS,UAGnB,GACEnO,KAAK6N,4BAA8B,MACnC7N,KAAKoO,qBAAuB,KAC5B,CACA,MAAMM,EAAgB1O,KAAKoO,oBAC3B,MAAM9J,EAAOwJ,EAAMa,SAAS3O,KAAK6N,2BAA4BY,GAE7D,GAAIT,KAAKY,IAAItK,EAAKuK,IAAM,GAAK7O,KAAK8O,cAAcxK,EAAMoK,GAAgB,CACpE1O,KAAKiI,SAASE,aAAenI,KAAKiI,SAASE,aAAavJ,KAAI,CAACwL,EAAGxH,IAC9DA,IAAM8L,EAAgBtE,EAAI9F,EAAKuK,EAAIzE,IAGrC,GAAIsE,EAAgB,EAAI1O,KAAKiI,SAASE,aAAa3J,OAAQ,CACzDwB,KAAKiI,SAASE,aAAenI,KAAKiI,SAASE,aAAavJ,KAAI,CAACwL,EAAGxH,IAC9DA,IAAM8L,EAAgB,EAAItE,EAAI9F,EAAKuK,EAAIzE,G,CAI3CpK,KAAK6N,2BAA6BY,EAClCzO,KAAKwM,yB,IAKHxM,KAAAwO,uBAAyB,K,QAC/B,GAAIxO,KAAKoO,qBAAuB,KAAM,EACpCtQ,GAAAF,EAAAoC,KAAKiI,SAASgF,0BAAsB,MAAArP,SAAA,SAAAA,EAClCoC,KAAKoO,wBACN,MAAAtQ,SAAA,SAAAA,EAAEgF,QAAQuL,UAAUlJ,OAAO,W,CAE9BnF,KAAK6N,2BAA6BzK,UAClCpD,KAAKoO,oBAAsBhL,UAE3BpD,KAAKsK,6BACLtK,KAAKiK,wBAELpD,OAAO9E,oBAAoB,cAAe/B,KAAKuO,0BAC/C1H,OAAO9E,oBAAoB,YAAa/B,KAAKwO,uBAAuB,EAG9DxO,KAAA8O,cAAgB,CAACxK,EAAmBnF,K,YAC1C,MAAM4P,EAAgB/O,KAAKsI,eAAenJ,GAC1C,MAAM6P,EAAahP,KAAKsI,eAAenJ,EAAQ,GAC/C,MAAM8P,EAAejP,KAAKiI,SAASE,aAAahJ,GAChD,MAAM+P,EAAYlP,KAAKiI,SAASE,aAAahJ,EAAQ,GACrD,MAAMgQ,GAAkBvR,EAAAmR,EAAcK,YAAQ,MAAAxR,SAAA,EAAAA,EAAI,EAClD,MAAMyR,GAAkBvR,EAAAiR,EAAcO,YAAQ,MAAAxR,SAAA,EAAAA,EAAIyR,OAAOC,iBACzD,MAAMC,GAAezR,EAAAgR,EAAWI,YAAQ,MAAApR,SAAA,EAAAA,EAAI,EAC5C,MAAM0R,GAAexR,EAAA8Q,EAAWM,YAAQ,MAAApR,SAAA,EAAAA,EAAIqR,OAAOC,iBAEnD,MAAMG,EACJV,EAAe3K,EAAKuK,EAAIM,GACxBF,EAAe3K,EAAKuK,EAAIQ,EAC1B,MAAMO,EACJZ,GAAc,KACVE,EAAY5K,EAAKuK,EAAIY,GAAgBP,EAAY5K,EAAKuK,EAAIa,EAC1D,KAEN,OAAOC,GAAkBC,CAAW,EAG9B5P,KAAA6P,oBAAsB7E,MAAO0C,IACnC1N,KAAKgI,YAAc,KAEnBhI,KAAK8P,YAAcrJ,GAAe,KAChCzG,KAAKgI,YAAc,KAAK,GACvBhI,KAAK8P,aAER9P,KAAK0H,aAAgBgG,EAAMqC,OAAuBC,gBAC5ChQ,KAAKiQ,8BAA8B,CAyC5C,CA1sBQ,iBAAAC,GACLlQ,KAAK4K,uBACL5K,KAAKmQ,cACLnQ,KAAKoQ,yBAELpQ,KAAKqQ,qBAAuB,IAAIC,gBAAe,KAC7CtQ,KAAKiI,SAASoE,aAAejJ,UAC7BpD,KAAKoM,sBACLpM,KAAK8J,sBAAsB,IAG7B9J,KAAKuQ,eAAiB,IAAID,gBAAe,KACvCtQ,KAAK8J,uBACL9J,KAAKwQ,oBACLxQ,KAAKyQ,mBACLzQ,KAAKiK,wBACLjK,KAAKwM,yBAAyB,G,CAI3B,sBAAMkE,G,WACX9S,EAAAoC,KAAKgK,gBAAY,MAAApM,SAAA,SAAAA,EAAEkE,iBAAiB,SAAU9B,KAAK6P,oBAAqB,CACtEc,QAAS,OAGX,GAAI3Q,KAAKsM,eAAiB,KAAM,EAC9BxO,EAAAkC,KAAKqQ,wBAAoB,MAAAvS,SAAA,SAAAA,EAAE8S,QAAQ5Q,KAAKsM,c,EAG1CtO,EAAAgC,KAAKuQ,kBAAc,MAAAvS,SAAA,SAAAA,EAAE4S,QAAQ5Q,KAAK6K,cAI5BqB,QAAQC,gBACRnM,KAAK6Q,0B,CAGN,yBAAMC,SACL9Q,KAAKiQ,8B,CAGN,kBAAAc,GACL/Q,KAAKwI,gBAELxI,KAAKgR,eAAe1K,M,CAGf,wBAAM2K,GACX,GAAIjR,KAAK+H,sBAAuB,OACxB/H,KAAK+K,mB,EAIR,oBAAAmG,G,WACLtT,EAAAoC,KAAKgK,gBAAY,MAAApM,SAAA,SAAAA,EAAEmE,oBAAoB,SAAU/B,KAAK6P,qBACtD7P,KAAKuN,8BACLzP,EAAAkC,KAAKqQ,wBAAoB,MAAAvS,SAAA,SAAAA,EAAEqT,cAC3BnT,EAAAgC,KAAKuQ,kBAAc,MAAAvS,SAAA,SAAAA,EAAEmT,aACrBnR,KAAKiI,SAASE,aAAe,GAC7BnI,KAAKiI,SAASG,uBAAyB,E,CAM/B,oCAAMgJ,SACRpR,KAAKiQ,8B,CAUN,sBAAMoB,CACXzL,EACAjI,GAEA,GAAIqC,KAAKgK,cAAgB,KAAM,CAC7BjE,EAAY/F,KAAKgK,aAAcpE,EAAKjI,E,EAYjC,8BAAM2T,GACXtR,KAAK+K,mB,CAGA,MAAAwG,GACL,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CACEC,MAAM,SACNC,IAAMA,GAAS5R,KAAKsM,cAAgBsF,EACpC9I,MAAO,CACL+I,oBAAqB7R,KAAK8H,sBAC1BgK,QAAS9R,KAAKsI,eAAe9J,QAAU,EAAI,OAAS,SAGtDgT,EAAA,QAAAE,IAAA,2CAAMpP,KAAK,YAEbkP,EAAA,OAAAE,IAAA,2CACEC,MAAM,QACNC,IAAMA,GAAS5R,KAAKgK,aAAe4H,EACnC9I,MAAO,CACL+I,oBAAqB7R,KAAK6H,mBAG5B2J,EAAA,QAAAE,IAAA,2CACEK,aAAc,KACZ/R,KAAKgS,+BACLhS,KAAK4K,uBACL5K,KAAKiS,sBACLjS,KAAKuK,6BACLvK,KAAKsN,mBACLtN,KAAKwM,yBAAyB,KAIpCgF,EAAA,OAAAE,IAAA,2CACEC,MAAM,kBACN7I,MAAO,CACL+I,oBAAqB7R,KAAK8H,wBAG5B0J,EAAA,QAAAE,IAAA,2CAAMpP,KAAK,aAEZtC,KAAKoO,qBAAuB,MAAQoD,EAAA,OAAAE,IAAA,2CAAKC,MAAM,mB,CAK9C,mBAAAO,GACN,MAAMC,EAAiBnS,KAAKoS,kBAC5B,MAAMC,EACJF,GAAkB,MAClBA,EAAiB,IAChBnS,KAAK+H,sBAER,GAAIsK,EAAmB,CACrB,MAAMC,EAAgBtE,KAAKuE,KAAKJ,EAAiBnS,KAAKuH,WAEtD,MAAMI,EAAqBqG,KAAKC,MAAMjO,KAAK0H,aAAe1H,KAAKuH,WAC/D,MAAMK,EAAmBD,EAAqB2K,EAE9C,MAAME,EAAaxE,KAAKyE,IAAI,EAAG9K,EAAqB3H,KAAKwH,eACzD,MAAMkL,EAAW1E,KAAK2E,IACpB3S,KAAKsH,UAAY,EACjBM,EAAmB5H,KAAKwH,eAG1B,MAAMH,EAAOrH,KAAK4S,gBAAgBJ,EAAYE,GAE9C1S,KAAK2H,mBAAqB6K,EAC1BxS,KAAK4H,iBAAmB8K,EACxB1S,KAAKiI,SAASC,aAAeb,C,EAIzB,sBAAA+I,GACNpQ,KAAKuK,6BACLvK,KAAKwM,0BACLxM,KAAKgS,+BACLhS,KAAKsN,kB,CAGC,8BAAMuD,SACN7Q,KAAK+K,oBACX/K,KAAKoM,qB,CAGC,kCAAM6D,G,MACZjQ,KAAKkS,sBAEL,KAAItU,EAAAoC,KAAK6S,cAAU,MAAAjV,SAAA,SAAAA,EAAEkV,cAAe9S,KAAKsH,UAAY,EAAG,OAChDtH,KAAK6S,WAAWE,qBACpB/S,KAAK2H,mBACL3H,KAAK4H,iB,EA4HH,WAAAuI,GACN,GAAInQ,KAAKiI,SAAS+K,oBAAsB,KAAM,CAC5ChT,KAAKiI,SAAS+K,mBAAqBhT,KAAKsI,eAAerJ,QACrD,CAACL,EAAK4L,IACJ5L,EAAImG,IACFyF,EACA,IAAI/G,EAAY+G,GAAG,IAAMxK,KAAK8L,yBAAyBtB,OAE3D,IAAIyI,Q,EAKF,mBAAAhB,GACNjS,KAAKsI,eAAenI,SAASqK,I,UAC3B,KAAI5M,EAAAoC,KAAKiI,SAAS+K,sBAAkB,MAAApV,SAAA,SAAAA,EAAEgH,IAAI4F,KAAM,KAAM,EACpD1M,EAAAkC,KAAKiI,SAAS+K,sBAAkB,MAAAlV,SAAA,SAAAA,EAAEiH,IAChCyF,EACA,IAAI/G,EAAY+G,GAAG,IAAMxK,KAAK8L,yBAAyBtB,K,KAEpD,EACLxM,EAAAgC,KAAKiI,SAAS+K,mBACXpO,IAAI4F,MAAE,MAAAxM,SAAA,SAAAA,EACL6G,sBAAqB,IAAM7E,KAAK8L,yBAAyBtB,I,KAK3D,cAAA9B,CACNhE,GAMA1E,KAAKsI,eAAenI,SAAQ,CAAC+S,EAAQtQ,K,MACnC,MAAMgG,GAAOhL,EAAAoC,KAAKiI,SAAS+K,sBAAkB,MAAApV,SAAA,SAAAA,EAAEgH,IAAIsO,GACnD,GAAItK,GAAQ,KAAM,CAChBlE,EAAEwO,EAAQtK,EAAMhG,E,KACX,CACL,MAAM,IAAIuQ,MAAM,8B,KAKd,4BAAAnB,GACN,MAAM3M,EAAWrF,KAAK6K,OAAOuI,cAC3B,4BAEF,GAAI/N,GAAY,KAAM,CACpB,MAAMgO,EAAyBC,SAAS/O,cAAc,YACtD8O,EAAuBvG,KAAO,UAC9BuG,EAAuBE,UAAY,+HAInCvT,KAAK6K,OAAOmB,YAAYqH,E,EAIpB,oBAAAzG,CACNsG,GAEA,MAAM7N,EAAW6N,EAAOE,cACtB,2BAEF,GAAI/N,GAAY,KAAM,CACpB,OAAOD,EAA6BC,E,EAIhC,qBAAA8H,GACN,MAAM9H,EAAWrF,KAAK6K,OAAOuI,cAC3B,4BAEF,GAAI/N,GAAY,KAAM,CACpB,OAAOD,EAA6BC,E,KAC/B,CACL,MAAM,IAAI8N,MAAM,4C,EAIZ,wBAAArH,CACNoH,GAEA,MAAM7N,EAAW6N,EAAOE,cACtB,iCAEF,GAAI/N,GAAY,KAAM,CACpB,OAAOD,EAA6BC,E,KAC/B,CACL,MAAM,IAAI8N,MAAM,0C,EAuJZ,uBAAA3F,G,MACNxN,KAAKiI,SAASuL,wBACZ5V,EAAAoC,KAAKiI,SAASgF,0BAAsB,MAAArP,SAAA,SAAAA,EAAEgB,KAAI,CAAC6U,EAAG7Q,KAC5C,MAAMhB,EAAW5B,KAAKyN,gCAAgC7K,GAEtD6Q,EAAE3Q,QAAQhB,iBAAiB,cAAeF,GAE1C,OAAOA,CAAQ,G,CAIb,0BAAA2L,G,MACN,GAAIvN,KAAKiI,SAASuL,wBAA0B,KAAM,CAChD,MAAME,EAAY1T,KAAKiI,SAASuL,wBAEhC5V,EAAAoC,KAAKiI,SAASgF,0BAAsB,MAAArP,SAAA,SAAAA,EAAEuC,SAAQ,CAACsT,EAAG7Q,KAChD,MAAMhB,EAAW8R,EAAU9Q,GAC3B,GAAIhB,GAAY,KAAM,CACpB6R,EAAE3Q,QAAQf,oBAAoB,cAAeH,E,KAGjD5B,KAAKiI,SAASuL,uBAAyBpQ,S,EAuGnC,eAAAwP,CAAgBJ,EAAoBE,GAC1C,MAAMrL,EAAOrH,KAAKqH,KAAK3I,MAAM8T,EAAYE,EAAW,GACpD,OAAOrL,EAAKzI,KAAKuK,GAASA,GAAO,KAAOnJ,KAAK2T,gBAAgBxK,GAAOA,G,CAG9D,eAAAwK,CAAgBxK,G,MACtB,GAAInJ,KAAK4T,SAAW,MAAQzK,GAAO,KAAM,CACvC,MAAMjJ,IAAOtC,EAAAoC,KAAK4T,WAAO,MAAAhW,SAAA,SAAAA,EAAAiW,KAAA7T,KAAGmJ,KAAQ,GACpC,MAAO,IAAKA,EAAKjJ,O,KACZ,CACL,OAAOiJ,C,EAIH,eAAAiJ,GACN,GAAIpS,KAAK8T,cAAgB,MAAQ9T,KAAKgK,cAAgB,KAAM,CAC1DhK,KAAK8T,aAAehX,EAA2BkD,KAAKgK,a,CAEtD,OAAOhK,KAAK8T,Y,CAGN,cAAA3J,GACN,GAAInK,KAAKkK,aAAe,KAAM,CAC5B,MAAM6J,EAAgBlO,EAA+B7F,KAAK6K,QAC1D,GAAIkJ,EAAgB,EAAG,CACrB/T,KAAKkK,YAAc6J,C,EAGvB,OAAO/T,KAAKkK,W,CAGN,iBAAAsG,GACNxQ,KAAK8T,aAAe1Q,S,CAGd,gBAAAqN,GACNzQ,KAAKkK,YAAc9G,S","ignoreList":[]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
|
+
*/
|
|
4
|
+
import{t as e,p as i,H as t,h as n,e as o}from"./p-Bb32XUUS.js";import{g as s}from"./p-D1akPoVm.js";const l=()=>`:host{--viewer-annotations-pin-label-line-color:var( --viewer-annotations-pin-primary-color );--viewer-annotations-pin-label-line-width:1;overflow:hidden;pointer-events:none}.label-line{pointer-events:auto;stroke:var(--viewer-annotations-pin-label-line-color);stroke-width:var(--viewer-annotations-pin-label-line-width);cursor:default}.svg{position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden;pointer-events:none;height:100%;width:100%}`;const a=i(class e extends t{constructor(e){super();if(e!==false){this.__registerHost()}}render(){var e,i,t,l;const{primaryColor:a}=s(this.pin);return n(o,{key:"daf863da93b542c252fdedcf3a6effc95d86942c"},n("svg",{key:"4a1b04fd9fb7a04b3a46cdbaf2b5ded7efa0bc2c",class:"svg"},n("line",{key:"809a20f602e6c459f3d8988b931406ca63770337",class:"label-line",style:{stroke:a},x1:(e=this.labelPoint)===null||e===void 0?void 0:e.x,y1:(i=this.labelPoint)===null||i===void 0?void 0:i.y,x2:(t=this.pinPoint)===null||t===void 0?void 0:t.x,y2:(l=this.pinPoint)===null||l===void 0?void 0:l.y})))}static get style(){return l()}},[0,"vertex-viewer-pin-label-line",{pinPoint:[16],labelPoint:[16],pin:[16]}]);function r(){if(typeof customElements==="undefined"){return}const i=["vertex-viewer-pin-label-line"];i.forEach((i=>{switch(i){case"vertex-viewer-pin-label-line":if(!customElements.get(e(i))){customElements.define(e(i),a)}break}}))}r();export{a as V,r as d};
|
|
5
|
+
//# sourceMappingURL=p-BFEV_v80.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["viewerPinLabelLineCss","VertexPinLabelLine","__stencil_proxyCustomElement","HTMLElement","render","primaryColor","getPinColors","this","pin","h","Host","key","class","style","stroke","x1","_a","labelPoint","x","y1","_b","y","x2","_c","pinPoint","y2","_d"],"sources":["src/components/viewer-pin-label-line/viewer-pin-label-line.css?tag=vertex-viewer-pin-label-line","src/components/viewer-pin-label-line/viewer-pin-label-line.tsx"],"sourcesContent":[":host {\n /**\n * @prop --viewer-annotations-pin-label-line-color: A CSS color that\n * specifies the color of the label line\n */\n --viewer-annotations-pin-label-line-color: var(\n --viewer-annotations-pin-primary-color\n );\n\n /**\n * @prop --viewer-annotations-pin-label-line-width: A CSS color that\n * specifies the width of the label line\n */\n --viewer-annotations-pin-label-line-width: 1;\n\n overflow: hidden;\n pointer-events: none;\n}\n\n.label-line {\n pointer-events: auto;\n stroke: var(--viewer-annotations-pin-label-line-color);\n stroke-width: var(--viewer-annotations-pin-label-line-width);\n cursor: default;\n}\n\n.svg {\n position: absolute;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n overflow: hidden;\n pointer-events: none;\n height: 100%;\n width: 100%;\n}\n","import {\n Component,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n h,\n Host,\n JSX,\n Prop,\n} from '@stencil/core';\nimport { Point } from '@vertexvis/geometry';\n\nimport { getPinColors, Pin } from '../../lib/pins/model';\n\n@Component({\n tag: 'vertex-viewer-pin-label-line',\n styleUrl: 'viewer-pin-label-line.css',\n shadow: false,\n})\nexport class VertexPinLabelLine {\n @Prop()\n public pinPoint: Point.Point | undefined;\n\n @Prop()\n public labelPoint: Point.Point | undefined;\n\n @Prop()\n public pin: Pin | undefined;\n\n protected render(): JSX.Element {\n const { primaryColor } = getPinColors(this.pin);\n return (\n <Host>\n <svg class=\"svg\">\n <line\n class=\"label-line\"\n style={{\n stroke: primaryColor,\n }}\n x1={this.labelPoint?.x}\n y1={this.labelPoint?.y}\n x2={this.pinPoint?.x}\n y2={this.pinPoint?.y}\n />\n </svg>\n </Host>\n );\n }\n}\n"],"mappings":";;;oGAAA,MAAMA,EAAwB,IAAM,wc,MCiBvBC,EAAkBC,EAAA,MAAAD,UAAAE,E,4DAUnB,MAAAC,G,YACR,MAAMC,aAAEA,GAAiBC,EAAaC,KAAKC,KAC3C,OACEC,EAACC,EAAI,CAAAC,IAAA,4CACHF,EAAA,OAAAE,IAAA,2CAAKC,MAAM,OACTH,EAAA,QAAAE,IAAA,2CACEC,MAAM,aACNC,MAAO,CACLC,OAAQT,GAEVU,IAAIC,EAAAT,KAAKU,cAAU,MAAAD,SAAA,SAAAA,EAAEE,EACrBC,IAAIC,EAAAb,KAAKU,cAAU,MAAAG,SAAA,SAAAA,EAAEC,EACrBC,IAAIC,EAAAhB,KAAKiB,YAAQ,MAAAD,SAAA,SAAAA,EAAEL,EACnBO,IAAIC,EAAAnB,KAAKiB,YAAQ,MAAAE,SAAA,SAAAA,EAAEL,K","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* Copyright (c) 2026 Vertex Software LLC. All rights reserved.
|
|
3
3
|
*/
|
|
4
|
-
import{t,p as e,H as n,d as
|
|
5
|
-
//# sourceMappingURL=p-
|
|
4
|
+
import{t,p as e,H as n,d as s,h as i,e as a}from"./p-Bb32XUUS.js";import{v as o,q as h,m as d,h as r}from"./p-2UsvOTHJ.js";import{o as l}from"./p-CDM7zNn0.js";const c=()=>`:host{position:absolute;pointer-events:none;visibility:hidden}:host([hydrated]){visibility:hidden}:host(.ready){visibility:inherit}:host(:not([interactions-off]))>*{pointer-events:auto}`;const u=e(class t extends n{constructor(t){super();if(t!==false){this.__registerHost()}this.__attachShadow();this.occlusionStateChanged=s(this,"occlusionStateChanged");this.detachedStateChanged=s(this,"detachedStateChanged");this.propertyChange=s(this,"propertyChange");this.position=o.origin();this.positionJson="";this.quaternion=h.create();this.quaternionJson="";this.scale=o.create(1,1,1);this.scaleJson="";this.matrix=d.makeIdentity();this.occlusionOff=false;this.occluded=false;this.detachedOff=true;this.detached=false;this.billboardOff=false;this.interactionsOff=false}connectedCallback(){this.syncProperties()}componentShouldUpdate(t,e,n){return n==="occluded"}handleMatrixPropertyChange(){this.syncMatrix()}handlePositionJsonChanged(){this.syncPosition()}handleRotationChanged(){this.syncQuaternionWithRotation()}handleRotationJsonChanged(){this.syncRotation()}handleQuaternionJsonChanged(){this.syncQuaternion()}handleScaleJsonChanged(){this.syncScale()}handleMatrixChanged(t,e){if(!l.isEqual(t,e)){this.propertyChange.emit()}}handleOcclusionStateChanged(){this.occlusionStateChanged.emit(this.occluded)}handleDetachedStateChanged(){this.detachedStateChanged.emit(this.detached)}syncProperties(){this.syncPosition();this.syncRotation();this.syncQuaternion();this.syncScale();this.syncMatrix()}syncPosition(){this.position=this.positionJson.length>0?this.parseJson("positionJson",this.positionJson,o.fromJson):this.position}syncRotation(){this.rotation=this.rotationJson!=null&&this.rotationJson.length>0?this.parseJson("rotationJson",this.rotationJson,r.fromJson):this.rotation;this.syncQuaternionWithRotation()}syncQuaternionWithRotation(){this.quaternion=this.rotation!=null?h.fromEuler(this.rotation):this.quaternion}syncQuaternion(){this.quaternion=this.quaternionJson.length>0?this.parseJson("quaternionJson",this.quaternionJson,h.fromJson):this.quaternion}syncScale(){this.scale=this.scaleJson.length>0?this.parseJson("scaleJson",this.scaleJson,o.fromJson):this.scale}syncMatrix(){if(this.position!=null&&this.quaternion!=null&&this.scale!=null){this.matrix=d.makeTRS(this.position,this.quaternion,this.scale)}}parseJson(t,e,n){try{return n(e)}catch(e){console.warn(`Could not parse \`${t}\`. Invalid JSON.`);throw e}}render(){return i(a,{key:"d4276b146b15c6f0653737e3735fb75d06d73c35"},i("slot",{key:"a72b8436b34d5eb59573cafda8e1a29ead576017"}))}static get watchers(){return{position:[{handleMatrixPropertyChange:1}],quaternion:[{handleMatrixPropertyChange:1}],scale:[{handleMatrixPropertyChange:1}],positionJson:[{handlePositionJsonChanged:1}],rotation:[{handleRotationChanged:1}],rotationJson:[{handleRotationJsonChanged:1}],quaternionJson:[{handleQuaternionJsonChanged:1}],scaleJson:[{handleScaleJsonChanged:1}],matrix:[{handleMatrixChanged:0}],occluded:[{handleOcclusionStateChanged:0}],detached:[{handleDetachedStateChanged:0}]}}static get style(){return c()}},[257,"vertex-viewer-dom-element",{position:[1040],positionJson:[1,"position"],rotation:[1040],rotationJson:[1,"rotation"],quaternion:[1040],quaternionJson:[1,"quaternion"],scale:[1040],scaleJson:[1,"scale"],matrix:[1040],occlusionOff:[4,"occlusion-off"],occluded:[516],detachedOff:[4,"detached-off"],detached:[516],billboardOff:[4,"billboard-off"],interactionsOff:[516,"interactions-off"]},undefined,{position:[{handleMatrixPropertyChange:1}],quaternion:[{handleMatrixPropertyChange:1}],scale:[{handleMatrixPropertyChange:1}],positionJson:[{handlePositionJsonChanged:1}],rotation:[{handleRotationChanged:1}],rotationJson:[{handleRotationJsonChanged:1}],quaternionJson:[{handleQuaternionJsonChanged:1}],scaleJson:[{handleScaleJsonChanged:1}],matrix:[{handleMatrixChanged:0}],occluded:[{handleOcclusionStateChanged:0}],detached:[{handleDetachedStateChanged:0}]}]);function f(){if(typeof customElements==="undefined"){return}const e=["vertex-viewer-dom-element"];e.forEach((e=>{switch(e){case"vertex-viewer-dom-element":if(!customElements.get(t(e))){customElements.define(t(e),u)}break}}))}f();export{u as V,f as d};
|
|
5
|
+
//# sourceMappingURL=p-BHyxBmg6.js.map
|