A dropdown and auto-complete component with filtering and keyboard
revo-dropdown
Minimalistic dropdown webcomponent. After long search we couldn't find any cross platform and had to build our own inspired by the latest trends.
Autocomplete |
Regular select |
---|---|
Getting Started
To start building a new web component using Stencil, clone this repo to a new directory:
git clone https://github.com/revolist/revodropdown.git revo-dropdown
cd revo-dropdown
git remote rm origin
and run:
npm install
npm start
To build the component for production, run:
npm run build
To run the unit tests for the components, run:
npm test
Need help? Check out docs here.
Script tag
- Put a script tag similar to this
<script src='https://unpkg.com/revo-dropdown@latest/dist/revo-dropdown.js'></script>
in the head of your index.html - Then you can use the element anywhere in your template, JSX, html etc
API
Properties
Property | Attribute | Description | Type | Default |
---|---|---|---|---|
appendTo |
append-to |
Where to append element | "body" \| "current" |
'body' |
autoClose |
auto-close |
Should dropdown autoclose on changeValue | boolean |
true |
dataId |
data-id |
Define object mapping for id/value | string |
undefined |
dataLabel |
data-label |
Define object mapping for labels | string |
undefined |
filter |
filter |
Filter criteria | "contains" \| "start" |
'contains' |
hasFilter |
has-filter |
boolean |
true |
|
placeholder |
placeholder |
Placeholder text | string |
'Select' |
source |
-- | Define object mapping for id/value | any[] |
undefined |
value |
value |
Selected value | any |
undefined |
Events
Event | Description | Type |
---|---|---|
changeValue |
When value changed | CustomEvent<{ val: any; originalEvent?: MouseEvent; }> |
close |
Before element close, can be prevented | CustomEvent<any> |
open |
Before element open, can be prevented | CustomEvent<any> |
Methods
doChange(val: any, originalEvent?: MouseEvent) => Promise<void>
Change value
Returns
Type: Promise<void>
doClose() => Promise<void>
Close dropdown
Returns
Type: Promise<void>
doOpen() => Promise<void>
Open dropdown
Returns
Type: Promise<void>
Dependencies
Depends on
Graph
graph TD;
revo-dropdown --> revo-list
style revo-dropdown fill:#f9f,stroke:#333,stroke-width:4px