1.0.35 • Published 3 years ago

@bublikus/native-suggestions v1.0.35

Weekly downloads
83
License
MIT
Repository
github
Last release
3 years ago

Native Suggestions

Datalist with native suggestions for text input fields.

You can customize native autocomplete suggestions with your own values.

  • For mobile devices suggestions take part of the browser native keyboard.
  • For desktop it expands native autocomplete dropdown.
SafariSafariChromeChrome

Demo

Live demo

Installing

npm i @bublikus/native-suggestions

Usage

How to use:

with React
with Vue
with Svelte

...or pure js:

import NativeSuggestions from '@bublikus/native-suggestions'

const form = document.getElementById('form')
const inputs = form.querySelectorAll('input')

inputs.forEach(input => new NativeSuggestions(input))

Template example

<form id="form">
    <input name="name1" type="text"/>
    <input name="name2" type="email"/>
    <input name="name3" type="tel"/>
    <input name="name4" type="search"/>
    <input name="name5" type="number"/>
</form>

Config

new NativeSuggestions(input: HTMLInputElement, config?: Config)

// Default Config:
{
    storageKey: 'native-suggestions',
    folder: 'other',
    inputKey: null,
    listLength: 10,
    saveLength: 10,
    mobileOnly: true,
    addOnInput: true,
    inputTypes: ['text', 'number', 'search', 'email', 'tel'],
}
PropDescription
storageKeyGeneral key in localStorage
folderSpecific key for a set of inputs
inputKeyCustom or generated from an input name attribute!
listLengthHow many suggestions to show in select
saveLengthHow many suggestions to save for 1 input
mobileOnlyI want to see only within keyboard (not dropdown)
addOnInputTurn off if you want to use only your own values
inputTypesAllowed types for suggestions

Custom suggestions

You can setup your own suggestions in the storage.

Turn off addOnInput if you don't want to add new values on input.

NativeSuggestions.setStore(values, config?)

// Values:
{
    name1: ['value 1'],
    name2: ['value 2', 'value 3'],
}

// Default Config:
{
    storageKey: 'native-suggestions',
    folder: 'other',
}

Behavior

On change event it puts an array of your last typed values to the localStorage under [storageKey] key and [folder] subkey specifically tying to an input based on its name attribute.

It creates next structure:

{
  [storageKey]: {
    [folder]: {
      [inputKey]: ['value 1']
    },
    other: {
      [inputKey]: ['value 2', 'value 3']
    }
  }
}

The benefit of that structure is that you can define specific suggestions for an active organization or a user.

1.0.33

3 years ago

1.0.35

3 years ago

1.0.31

3 years ago

1.0.30

3 years ago

1.0.18

3 years ago

1.0.21

3 years ago

1.0.20

3 years ago

1.0.26

3 years ago

1.0.25

3 years ago

1.0.24

3 years ago

1.0.23

3 years ago

1.0.12

3 years ago

1.0.11

3 years ago

1.0.10

3 years ago

1.0.8

3 years ago

1.0.7

3 years ago

1.0.6

3 years ago

1.0.5

3 years ago

1.0.3

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago