Select
TkSelect component description.
- React
- Vue
- Angular
import { TkSelect } from '@takeoff-ui/react'
import { TkSelect } from '@takeoff-ui/vue'
import { TkSelect } from '@takeoff-ui/angular'
Basic
- React
- Vue
- Angular
<TkSelect
label="Text Input"
options={[
{ value: "female", label: "Female" },
{ value: "male", label: "Male" },
{ value: "other", label: "Other" },
]}
hint="Hint text"
placeholder="Placeholder text"
/>
<TkSelect
label="Text Input"
:options.prop="[
{ value: 'female', label: 'Female' },
{ value: 'male', label: 'Male' },
{ value: 'other', label: 'Other' },
]"
hint="Hint text"
placeholder="Placeholder text"
/>
Filter
You can perform filtering either server-side or client-side using the filter emit.
- React
- Vue
- Angular
const selectOptions = [
{ value: "female", label: "Female", searchField: "XX" },
{ value: "male", label: "Male", searchField: "XY" },
{ value: "other", label: "Other", searchField: "00" },
];
const [value, setValue] = useState();
const [value1, setValue1] = useState();
return (
<div>
<TkSelect
editable
label="Default Filter"
options={selectOptions}
value={value}
onTkChange={(e) => setValue(e.detail)}
/>
<br />
<TkSelect
editable
label="Custom Filter Function"
options={selectOptions}
filter={async (text: string, options: any[]) => {
return options.filter(
(item) =>
item.searchField.toLowerCase().indexOf(text.toLowerCase()) > -1
);
}}
value={value1}
onTkChange={(e) => setValue1(e.detail)}
/>
</div>
);
<script setup>
import { TkSelect } from '@takeoff-ui/vue';
const selectOptions = [
{ value: 'female', label: 'Female', searchField: 'XX' },
{ value: 'male', label: 'Male', searchField: 'XY' },
{ value: 'other', label: 'Other', searchField: '00' },
];
</script>
<template>
<div>
<TkSelect
editable
label="Default Filter"
:options.prop="selectOptions"
/>
<TkSelect
editable
label="Custom Filter Function"
:options.prop="selectOptions"
filter="async (text: string, options: any[]) => {
return options.filter(
(item) =>
item.searchField.toLowerCase().indexOf(text.toLowerCase()) > -1
);
}"
/>
</div>
</template>