.u-select
u-dropdown(
:class="{ filterable }",
@show="onDropdownShow",
ref="dropdown",
:disabled="disabled"
)
input.w-100.p-0.u-select-filter(
slot="toggle",
v-model="filter",
ref="filter",
v-if="filterable",
:placeholder="placeholder",
@keydown="onKeydown",
@focus="$refs.dropdown.show()",
@compositionstart="handleComposition(isComposition = true)",
@compositionend="handleComposition(isComposition = false)"
)
.u-select-current.form-control(
slot="toggle",
:class="{ placeholder: current === placeholder, 'is-invalid': !!error }",
v-else
) {{ current }}
.dropdown-menu.u-select-options(ref="menu")
.u-select-options-wrapper(v-if="filteredOptions.length")
a.dropdown-item(
@mouseenter="hover = key",
@click.prevent.stop="select(option.value)",
:class="{ hover: hover == key, disabled: option.disabled }",
v-for="(option, key) in filteredOptions",
:key="key",
ref="options"
) {{ option.text }}
.u-select-options-wrapper(v-else)
a.dropdown-item
| {{ empty }}
.invalid-feedback(v-if="error") {{ error }}