From 047be469d1f9616bd56224c26d1950ff3a6285f1 Mon Sep 17 00:00:00 2001 From: Mykola Voinikov Date: Tue, 16 Sep 2025 00:30:53 +0300 Subject: [PATCH] fix(7521): use composedPath to correctly detect the event target --- packages/primevue/src/multiselect/MultiSelect.vue | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/primevue/src/multiselect/MultiSelect.vue b/packages/primevue/src/multiselect/MultiSelect.vue index 7748c55c5e..9adf169f28 100755 --- a/packages/primevue/src/multiselect/MultiSelect.vue +++ b/packages/primevue/src/multiselect/MultiSelect.vue @@ -777,7 +777,8 @@ export default { bindOutsideClickListener() { if (!this.outsideClickListener) { this.outsideClickListener = (event) => { - if (this.overlayVisible && this.isOutsideClicked(event)) { + const composedPath = event.composedPath(); + if (this.overlayVisible && this.overlay && !composedPath.includes(this.$el) && !composedPath.includes(this.overlay)) { this.hide(); } }; @@ -824,9 +825,6 @@ export default { this.resizeListener = null; } }, - isOutsideClicked(event) { - return !(this.$el.isSameNode(event.target) || this.$el.contains(event.target) || (this.overlay && this.overlay.contains(event.target))); - }, getLabelByValue(value) { const options = this.optionGroupLabel ? this.flatOptions(this.options) : this.options || []; const matchedOption = options.find((option) => !this.isOptionGroup(option) && equals(this.getOptionValue(option), value, this.equalityKey));