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

GitHub