Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/elcobvg/svelte-autocomplete

A lightweight typeahead / autocomplete component made with Svelte.js
https://github.com/elcobvg/svelte-autocomplete

auto-complete autocomplete autosuggest javascript svelte svelte-components sveltejs typeahead

Last synced: 4 months ago
JSON representation

A lightweight typeahead / autocomplete component made with Svelte.js

Awesome Lists containing this project

README

        

# svelte-autocomplete
Lightweight typeahead / autocomplete component made with [Svelte.js](https://svelte.technology/)

* no dependencies
* can handle asynchronous data
* use plain lists or key / value pairs

#### Try the demo at http://svelte-autocomplete.surge.sh/

## Install

`npm install svelte-autocomplete`

## Usage

Import the component directly in your Svelte project.

````javascript
import AutoComplete from 'svelte-autocomplete'

export default {
components: {
AutoComplete,
...
}
}
````
And then use it like so:

````html

Loading data from API...

````

### Options

| Prop | Type | Default | Description |
|------|------|---------|-------------|
| name | String | - | Form input name
| class | String | - | Additional styles for input element
| items | Array | - | Array with items, can be a plain list or key, value pairs
| isAsync | Boolean | false | If retrieving API data asynchronously
| minChar | Number | 2 | Min. characters to type before popup shows
| maxItems | Number | 10 | Max. items to show in popup
| fromStart | Boolean | true | Match from the start or anywhere in the string

### Slots

| Slot | Prop dependencies | Description |
|------|-------------------|-------------|
| default | isAsync | custom loading indication |

## Made with Svelte
It's made with [Svelte](https://svelte.technology/), which means you don't need any JS framework. Just use the `dist/index.js` file in any Javascript project:

**include the bundle:**

````html

````
**create component like so:**

````javascript
const myComponent = new AutoComplete({
target: document.querySelector('#app'),
data: {
name: 'fruits',
itemStart: 1,
items: [...]
}
})
````