This commit is contained in:
tugcekucukoglu 2024-05-10 14:50:11 +03:00
parent b37dd8d4d6
commit be1cf3625b
5 changed files with 124 additions and 43 deletions

View file

@ -86,7 +86,7 @@ export interface AutoCompleteChangeEvent {
* Custom item select event.
* @see {@link AutoCompleteEmits['item-select']}
*/
export interface AutoCompleteItemSelectEvent {
export interface AutoCompleteOptionSelectEvent {
/**
* Browser event
*/
@ -100,9 +100,9 @@ export interface AutoCompleteItemSelectEvent {
/**
* Custom item unselect event.
* @see {@link AutoCompleteEmits['item-unselect']}
* @extends AutoCompleteItemSelectEvent
* @extends AutoCompleteOptionSelectEvent
*/
export interface AutoCompleteItemUnselectEvent extends AutoCompleteItemSelectEvent {}
export interface AutoCompleteOptionUnselectEvent extends AutoCompleteOptionSelectEvent {}
/**
* Custom dropdown click event.
@ -795,15 +795,27 @@ export interface AutoCompleteEmits {
*/
blur(event: Event): void;
/**
* @deprecated since v4.0. Use 'option-select' emit.
* Callback to invoke when a suggestion is selected.
* @param {AutoCompleteItemSelectEvent} event - Custom item select event.
* @param {AutoCompleteOptionSelectEvent} event - Custom option select event.
*/
'item-select'(event: AutoCompleteItemSelectEvent): void;
'item-select'(event: AutoCompleteOptionSelectEvent): void;
/**
* @deprecated since v4.0. Use 'option-unselect' emit.
* Callback to invoke when a selected value is removed.
* @param {AutoCompleteOptionUnselectEvent} event - Custom option unselect event.
*/
'item-unselect'(event: AutoCompleteOptionUnselectEvent): void;
/**
* Callback to invoke when a suggestion is selected.
* @param {AutoCompleteOptionSelectEvent} event - Custom option select event.
*/
'option-select'(event: AutoCompleteOptionSelectEvent): void;
/**
* Callback to invoke when a selected value is removed.
* @param {AutoCompleteItemUnselectEvent} event - Custom item unselect event.
* @param {AutoCompleteOptionUnselectEvent} event - Custom option unselect event.
*/
'item-unselect'(event: AutoCompleteItemUnselectEvent): void;
'option-unselect'(event: AutoCompleteOptionUnselectEvent): void;
/**
* Callback to invoke to when dropdown button is clicked.
* @param {AutoCompleteDropdownClickEvent} event - Custom dropdown click event.

View file

@ -197,7 +197,7 @@ export default {
name: 'AutoComplete',
extends: BaseAutoComplete,
inheritAttrs: false,
emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],
emits: ['update:modelValue', 'change', 'focus', 'blur', 'item-select', 'item-unselect', 'option-select', 'option-unselect', 'dropdown-click', 'clear', 'complete', 'before-show', 'before-hide', 'show', 'hide'],
outsideClickListener: null,
resizeListener: null,
scrollHandler: null,
@ -531,6 +531,7 @@ export default {
}
this.$emit('item-select', { originalEvent: event, value: option });
this.$emit('option-select', { originalEvent: event, value: option });
isHide && this.hide(true);
},
@ -662,6 +663,7 @@ export default {
this.$emit('update:modelValue', newValue);
this.$emit('item-unselect', { originalEvent: event, value: removedValue });
this.$emit('option-unselect', { originalEvent: event, value: removedValue });
}
event.stopPropagation(); // To prevent onBackspaceKeyOnMultiple method
@ -843,6 +845,7 @@ export default {
this.updateModel(event, value);
this.$emit('item-unselect', { originalEvent: event, value: removedOption });
this.$emit('option-unselect', { originalEvent: event, value: removedOption });
this.dirty = true;
DomHandler.focus(this.multiple ? this.$refs.focusInput : this.$refs.focusInput.$el);
},