From 31bd5f2147ded9adb69db0248261ae4d2152b042 Mon Sep 17 00:00:00 2001 From: Mario Trageser Date: Fri, 14 Jun 2024 15:17:01 +0200 Subject: [PATCH] Make q-select work in shadow dom --- ui/src/composables/private.use-field/use-field.js | 3 ++- ui/src/utils/private.click-outside/click-outside.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ui/src/composables/private.use-field/use-field.js b/ui/src/composables/private.use-field/use-field.js index 4fde6525655..be61f63ce0e 100644 --- a/ui/src/composables/private.use-field/use-field.js +++ b/ui/src/composables/private.use-field/use-field.js @@ -304,12 +304,13 @@ export default function (state) { focusoutTimer = setTimeout(() => { focusoutTimer = null + const rootNode = state.rootRef.value.getRootNode() if ( document.hasFocus() === true && ( state.hasPopupOpen === true || state.controlRef === void 0 || state.controlRef.value === null - || state.controlRef.value.contains(document.activeElement) !== false + || state.controlRef.value.contains(rootNode.activeElement) !== false ) ) { return diff --git a/ui/src/utils/private.click-outside/click-outside.js b/ui/src/utils/private.click-outside/click-outside.js index 758933bf157..16f5a1adb21 100644 --- a/ui/src/utils/private.click-outside/click-outside.js +++ b/ui/src/utils/private.click-outside/click-outside.js @@ -14,6 +14,7 @@ function globalHandler (evt) { } const target = evt.target + const composedPath = evt.composedPath() if ( target === void 0 @@ -53,7 +54,7 @@ function globalHandler (evt) { if ( ( state.anchorEl.value === null - || state.anchorEl.value.contains(target) === false + || composedPath.includes(target) === false ) && ( target === document.body