Fixes for Geocoder when hosted via web components #8425
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The Geocoder suggestion box does not currently work if hosted inside of a web component. I tracked it down to the use of
container.contains(e.target)
in_onInputBegin
. Because of the shadow DOM, this check always evaluates to false inside of web components and search suggestions are never shown.I'm not sure it's possible to make
container.contains(e.target)
work in a web components the way we were relying on it, but the entire thing way we were handling this seemed a little convoluted to begin with so I removed the use of document pointer/mouse events and made it use standard blur/focus events instead. As far as I can tell behavior is identical but now the code should be more portable.