🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
DemoInstallSign in
Socket

vue-suggestion

Package Overview
Dependencies
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-suggestion

Suggestion list input for Vue.js

0.1.7
Source
npm
Version published
Weekly downloads
632
-5.53%
Maintainers
1
Weekly downloads
 
Created
Source

vue-suggestion

Suggestion list input for Vue.js, inspired by v-autocomplete.
Your search engine, your CSS, your everything...

Checkout demo.

In-action GIF

Installation

  • yarn: yarn add vue-suggestion
  • npm: npm i --save vue-suggestion

Usage

  • Import default CSS to your project:
    import 'vue-suggestion/dist/vue-suggestion.css';
    
  • Import vue-suggestion into your Vue component and use it as normal:
    <template>
    ...
      <vue-suggestion></vue-suggestion>
    ...
    <template>
    <script>
    import VueSuggestion from 'vue-suggestion'   
    export default {
      ...
      components: {
        VueSuggestion
      }
    }
    </script>
    

!! You can also use it as a custom field of vue-form-generator.

Props

Property valueTypeDefault valueDescription
itemTemplatevue componentTemplate for item in suggestion list
setLabelfunctionValue of choosen input, be shown in the input
itemsArray[]Suggestion array, should be updated dynamically after onInputChange()
minLenInterger2Minimun number of characters inputted to start searching
disabledBooleanfalseDisable the input
placeholderString''Placeholder of the input

Events

Property valueArgumentsDescription
onInputChangeStringFires when the input changes with the argument is the current input text.
onItemSelectedObjectFires when user selects a suggestion

Slots

NameDescription
searchSlotNext to the input, for the custom search icon or button...

Style

Just overwrite their css classes:

.vue-suggestion
  .vue-suggestion-input-group
    .vue-suggestion-input
  .vue-suggestion-list
    .vue-suggestion-list-item
      &.vue-suggestion-item-active

Example

<template>
  <vue-suggestion :items="items" 
                  v-model="item", 
                  :setLabel="setLabel",
                  :itemTemplate="itemTemplate", 
                  @onInputChange="inputChange", 
                  @onItemSelected="itemSelected">
  </vue-suggestion>
</template>

<script>
import itemTemplate from './item-template.vue';
export default {
  data () {
    return {
      item: {},
      items: [
        { id: 1, name: 'Golden Retriever'},
        { id: 2, name: 'Cat'},
        { id: 3, name: 'Squirrel'},
      ],
      itemTemplate,
    }
  },
  methods: {
    itemSelected (item) {
      this.item = item;
    },
    setLabel (item) {
      return item.name;
    },
    inputChange (text) {
      // your search method
      this.items = items.filter(item => item.name.contains(text));
      // now `items` will be showed in the suggestion list
    },
  },
};
</script>

ItemTemplate example:

<template>
  <div>
    <b>#{{item.id}}</b>
    <span>{{ item.name }}</span>
  </div>
</template>

<script>
export default {
  props: {
    item: { required: true },
  }
}
</script>

Demo Usage


# install dependencies
$ yarn/npm install

# compile demo for development
$ yarn/npm dev

# open Browser and start serve in demo
$ yarn/npm demo:open

# compile dist demo
$ yarn/npm dist:demo

# compile dist
$ yarn/npm dist

Credits

made with ❤ by Steven.

Keywords

vue

FAQs

Package last updated on 30 Apr 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts