fix: muliselect optional props
also adds name and id props
This commit is contained in:
parent
6064d72aa7
commit
0a81855bc1
@ -44,6 +44,8 @@
|
|||||||
v-model="query"
|
v-model="query"
|
||||||
type="text"
|
type="text"
|
||||||
class="input"
|
class="input"
|
||||||
|
:id="id"
|
||||||
|
:name="name"
|
||||||
:placeholder="placeholder"
|
:placeholder="placeholder"
|
||||||
:autocomplete="autocompleteEnabled ? undefined : 'off'"
|
:autocomplete="autocompleteEnabled ? undefined : 'off'"
|
||||||
:spellcheck="autocompleteEnabled ? undefined : 'false'"
|
:spellcheck="autocompleteEnabled ? undefined : 'false'"
|
||||||
@ -128,42 +130,46 @@ import BaseButton from '@/components/base/BaseButton.vue'
|
|||||||
import CustomTransition from '@/components/misc/CustomTransition.vue'
|
import CustomTransition from '@/components/misc/CustomTransition.vue'
|
||||||
|
|
||||||
const props = withDefaults(defineProps<{
|
const props = withDefaults(defineProps<{
|
||||||
/** When true, shows a loading spinner */
|
|
||||||
loading: boolean
|
|
||||||
/** The placeholder of the search input */
|
|
||||||
placeholder: string
|
|
||||||
/** The search results where the @search listener needs to put the results into */
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
||||||
searchResults: { [id: string]: any }[]
|
|
||||||
/** The name of the property of the searched object to show the user. If empty the component will show all raw data of an entry */
|
|
||||||
label: string
|
|
||||||
/** The object with the value, updated every time an entry is selected */
|
/** The object with the value, updated every time an entry is selected */
|
||||||
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
modelValue: { [id: string]: any }
|
modelValue: { [id: string]: any } | null
|
||||||
|
/** When true, shows a loading spinner */
|
||||||
|
loading?: boolean
|
||||||
|
/** The placeholder of the search input */
|
||||||
|
placeholder?: string
|
||||||
|
/** The search results where the @search listener needs to put the results into */
|
||||||
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
||||||
|
searchResults?: { [id: string]: any }[]
|
||||||
|
/** The name of the property of the searched object to show the user. If empty the component will show all raw data of an entry */
|
||||||
|
label?: string
|
||||||
|
/** The id attribute of the input element */
|
||||||
|
id?: string
|
||||||
|
/** The name attribute of the input element */
|
||||||
|
name?: string
|
||||||
/** If true, will provide an 'add this as a new value' entry which fires an @create event when clicking on it. */
|
/** If true, will provide an 'add this as a new value' entry which fires an @create event when clicking on it. */
|
||||||
creatable: boolean
|
creatable?: boolean
|
||||||
/** The text shown next to the new value option. */
|
/** The text shown next to the new value option. */
|
||||||
createPlaceholder: string
|
createPlaceholder?: string
|
||||||
/** The text shown next to an option. */
|
/** The text shown next to an option. */
|
||||||
selectPlaceholder: string
|
selectPlaceholder: string
|
||||||
/** If true, allows for selecting multiple items. v-model will be an array with all selected values in that case. */
|
/** If true, allows for selecting multiple items. v-model will be an array with all selected values in that case. */
|
||||||
multiple: boolean
|
multiple?: boolean
|
||||||
/** If true, displays the search results inline instead of using a dropdown. */
|
/** If true, displays the search results inline instead of using a dropdown. */
|
||||||
inline: boolean
|
inline?: boolean
|
||||||
/** If true, shows search results when no query is specified. */
|
/** If true, shows search results when no query is specified. */
|
||||||
showEmpty: boolean
|
showEmpty?: boolean
|
||||||
/** The delay in ms after which the search event will be fired. Used to avoid hitting the network on every keystroke. */
|
/** The delay in ms after which the search event will be fired. Used to avoid hitting the network on every keystroke. */
|
||||||
searchDelay: number
|
searchDelay?: number
|
||||||
/** If true, closes the dropdown after an entry is selected */
|
/** If true, closes the dropdown after an entry is selected */
|
||||||
closeAfterSelect: boolean
|
closeAfterSelect?: boolean
|
||||||
/** If false, the search input will get the autocomplete="off" attributes attached to it. */
|
/** If false, the search input will get the autocomplete="off" attributes attached to it. */
|
||||||
autocompleteEnabled: boolean
|
autocompleteEnabled?: boolean
|
||||||
}>(), {
|
}>(), {
|
||||||
|
modelValue: null,
|
||||||
loading: false,
|
loading: false,
|
||||||
placeholder: '',
|
placeholder: '',
|
||||||
searchResults: () => [],
|
searchResults: () => [],
|
||||||
label: '',
|
label: '',
|
||||||
modelValue: null,
|
|
||||||
creatable: false,
|
creatable: false,
|
||||||
createPlaceholder: () => useI18n().t('input.multiselect.createPlaceholder'),
|
createPlaceholder: () => useI18n().t('input.multiselect.createPlaceholder'),
|
||||||
selectPlaceholder: () => useI18n().t('input.multiselect.selectPlaceholder'),
|
selectPlaceholder: () => useI18n().t('input.multiselect.selectPlaceholder'),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user