diff --git a/src/runtime/components/InputMenu.vue b/src/runtime/components/InputMenu.vue index 9fd19b9aaf..2856599966 100644 --- a/src/runtime/components/InputMenu.vue +++ b/src/runtime/components/InputMenu.vue @@ -145,6 +145,7 @@ extendDevtoolsMeta({ defaultProps: { items: ['Option 1', 'Option 2', 'Option 3'] import { computed, ref, toRef, onMounted, toRaw } from 'vue' import { ComboboxRoot, ComboboxArrow, ComboboxAnchor, ComboboxInput, ComboboxTrigger, ComboboxPortal, ComboboxContent, ComboboxViewport, ComboboxEmpty, ComboboxGroup, ComboboxLabel, ComboboxSeparator, ComboboxItem, ComboboxItemIndicator, TagsInputRoot, TagsInputItem, TagsInputItemText, TagsInputItemDelete, TagsInputInput, useForwardPropsEmits, useFilter } from 'reka-ui' import { defu } from 'defu' +import { isEqual } from 'ohash' import { reactivePick, createReusableTemplate } from '@vueuse/core' import { useAppConfig } from '#imports' import { useButtonGroup } from '../composables/useButtonGroup' @@ -291,6 +292,14 @@ function onUpdateOpen(value: boolean) { } } +function onRemoveTag(event: any) { + if (props.multiple) { + const modelValue = props.modelValue as SelectModelValue + const filteredValue = modelValue.filter(value => !isEqual(value, event)) + emits('update:modelValue', filteredValue as SelectModelValue) + } +} + defineExpose({ inputRef }) @@ -337,6 +346,7 @@ defineExpose({ as-child @blur="onBlur" @focus="onFocus" + @remove-tag="onRemoveTag" >