diff --git a/packages/primeng/src/multiselect/multiselect.ts b/packages/primeng/src/multiselect/multiselect.ts index 8bf24c5ceda..cf3694166cc 100755 --- a/packages/primeng/src/multiselect/multiselect.ts +++ b/packages/primeng/src/multiselect/multiselect.ts @@ -1916,7 +1916,7 @@ export class MultiSelect extends BaseEditableHolder { onOptionMouseEnter(event, index) { if (this.focusOnHover) { - this.changeFocusedOptionIndex(event, index); + this.focusedOptionIndex.set(index); } } @@ -2007,7 +2007,7 @@ export class MultiSelect extends BaseEditableHolder { } partialSelected() { - return this.selectedOptions && this.selectedOptions.length > 0 && this.selectedOptions.length < (this.options?.length || 0); + return this.hasSelectedOption() && !this.allSelected(); } /** @@ -2052,12 +2052,14 @@ export class MultiSelect extends BaseEditableHolder { if (this.options && this.options.length) { if (this.virtualScroll) { - const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1; + const selectedIndex = this.modelValue() ? this.findSelectedOptionIndex() : -1; if (selectedIndex !== -1) { - this.scroller?.scrollToIndex(selectedIndex); + setTimeout(() => { + this.scroller?.scrollToIndex(selectedIndex); + }, 20); } } else { - let selectedListItem = findSingle(this.itemsWrapper, '[data-pc-section="option"][data-p-selected="true"]'); + let selectedListItem = findSingle(this.itemsWrapper, '[data-p-selected="true"]'); if (selectedListItem) { selectedListItem.scrollIntoView({ block: 'nearest', inline: 'nearest' }); diff --git a/packages/primeng/src/select/select.ts b/packages/primeng/src/select/select.ts index 320c7463e1e..da506834e87 100755 --- a/packages/primeng/src/select/select.ts +++ b/packages/primeng/src/select/select.ts @@ -1241,7 +1241,7 @@ export class Select extends BaseInput implements AfterViewIni onOptionMouseEnter(event, index) { if (this.focusOnHover) { - this.changeFocusedOptionIndex(event, index); + this.focusedOptionIndex.set(index); } } @@ -1419,7 +1419,7 @@ export class Select extends BaseInput implements AfterViewIni if (this.options && this.options.length) { if (this.virtualScroll) { - const selectedIndex = this.modelValue() ? this.focusedOptionIndex() : -1; + const selectedIndex = this.modelValue() ? this.findSelectedOptionIndex() : -1; if (selectedIndex !== -1) { setTimeout(() => { this.scroller?.scrollToIndex(selectedIndex);