From 2f421aa8ef37b104e0fb0113b42c4f75addc236c Mon Sep 17 00:00:00 2001 From: Tariq Soliman Date: Tue, 5 Sep 2023 15:21:01 -0700 Subject: [PATCH] #422 Removed event blocking popup functions (#423) --- src/css/mmgis.css | 1 + src/essence/Basics/Layers_/Layers_.js | 42 +++++++++++++++++++++++++++ src/essence/Tools/Draw/DrawTool.js | 28 ++++++++++-------- 3 files changed, 59 insertions(+), 12 deletions(-) diff --git a/src/css/mmgis.css b/src/css/mmgis.css index d67ce010..8f53a7e7 100644 --- a/src/css/mmgis.css +++ b/src/css/mmgis.css @@ -910,6 +910,7 @@ body { white-space: nowrap; user-select: none; cursor: pointer; + user-select: none; transition: all 0.2s cubic-bezier(0.445, 0.05, 0.55, 0.95), transform 0s ease-in-out; } diff --git a/src/essence/Basics/Layers_/Layers_.js b/src/essence/Basics/Layers_/Layers_.js index 7fee3b4b..48e098fc 100644 --- a/src/essence/Basics/Layers_/Layers_.js +++ b/src/essence/Basics/Layers_/Layers_.js @@ -1351,6 +1351,8 @@ const L_ = { closeOnClick: false, autoPan: false, offset: new L.point(0, 3), + interactive: true, + bubblingMouseEvents: true }) .setLatLng( new L.LatLng( @@ -1371,6 +1373,11 @@ const L_ = { '' ) + if (popup?._contentNode?._leaflet_events) + Object.keys(popup._contentNode._leaflet_events).forEach((ev) => { + delete popup._contentNode._leaflet_events[ev] + }) + popup._isAnnotation = true popup._annotationParams = { feature, @@ -1386,13 +1393,48 @@ const L_ = { popup.toGeoJSON = function () { return feature } + if (andAddToMap) { popup.addTo(L_.Map_.map) + L_.removePopupStopPropogationFunctions(popup) L_.layers.layer[layerId].push(popup) + } else { + setTimeout(() => { + L_.removePopupStopPropogationFunctions(popup) + }, 2000) } return popup }, + removePopupStopPropogationFunctions(popup) { + if (popup?._contentNode?._leaflet_events) + Object.keys(popup._contentNode._leaflet_events).forEach((ev) => { + document + .querySelectorAll('.leaflet-popup-content') + .forEach(function (elm) { + // Now do something with my button + elm.removeEventListener( + 'wheel', + popup._contentNode._leaflet_events[ev] + ) + }) + }) + + if (popup?._container?.children?.[0]?._leaflet_events) + Object.keys(popup._container.children[0]._leaflet_events).forEach( + (ev) => { + document + .querySelectorAll('.leaflet-popup-content-wrapper') + .forEach(function (elm) { + // Now do something with my button + elm.removeEventListener( + ev.replace(/\d+$/, ''), + popup._container.children[0]._leaflet_events[ev] + ) + }) + } + ) + }, setLayerOpacity: function (name, newOpacity) { newOpacity = parseFloat(newOpacity) if (L_.Globe_) L_.Globe_.litho.setLayerOpacity(name, newOpacity) diff --git a/src/essence/Tools/Draw/DrawTool.js b/src/essence/Tools/Draw/DrawTool.js index 9270939f..3d7ff010 100644 --- a/src/essence/Tools/Draw/DrawTool.js +++ b/src/essence/Tools/Draw/DrawTool.js @@ -1361,18 +1361,22 @@ var DrawTool = { $( `#drawToolShapeLiItem_DrawTool_${fileId}_${index}` ).removeClass('temporallyHidden') - if (l.temporallyHidden) { - l.setStyle({ - opacity: 0, - fillOpacity: 0, - }) - if (l._path?.style) l._path.style.pointerEvents = 'none' - } else if (l.savedOptions) { - l.setStyle({ - opacity: l.savedOptions.opacity, - fillOpacity: l.savedOptions.fillOpacity, - }) - if (l._path?.style) l._path.style.pointerEvents = 'all' + if (l.setStyle) { + if (l.temporallyHidden) { + l.setStyle({ + opacity: 0, + fillOpacity: 0, + }) + if (l._path?.style) + l._path.style.pointerEvents = 'none' + } else if (l.savedOptions) { + l.setStyle({ + opacity: l.savedOptions.opacity, + fillOpacity: l.savedOptions.fillOpacity, + }) + if (l._path?.style) + l._path.style.pointerEvents = 'all' + } } } })