npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

vue-weblineindia-multiselect

v1.0.0

Published

> **Everything you wish the HTML `<select>` element could do, wrapped up into a lightweight, zero > dependency, extensible Vue component.**

Downloads

15

Readme

VueJS Multiselect Dropdown Component

vue-weblineindia-multiselect is a feature rich select / dropdown / typeahead component. It provides a default template that fits most use cases for a filterable multi-select dropdown. A lightweight component with easy accessibility and customization.

  • Tagging
  • Filtering / Searching
  • Accessible
  • Vuex Support
  • AJAX Support
  • SSR Support
  • Zero dependencies
  • Select Single/Multiple Options
  • Customizable with slots and SCSS variables

Table of contents

Browser Support

Chrome | Firefox | Safari | Edge | IE | --- | --- | --- | --- | --- | 83.0 ✔ | 77.0 ✔ | 13.1.1 ✔ | 83.0 ✔ | 11.9 ✔ |

Demo

Getting started

yarn add vue-weblineindia-multiselect

# or use npm

npm install vue-weblineindia-multiselect

Then, import and register the component:

import Vue from "vue";
import multiSelect from "vue-weblineindia-multiselect";

Vue.component("v-multiselect", multiSelect);

The component itself does not include any CSS. You'll need to include it separately:

import "vue-weblineindia-multiselect/lib/vue-select.css";

Alternatively, you can import the scss for complete control of the component styles:

@import "vue-weblineindia-multiselect/src/scss/vue-select.scss";

Usage

<template>
  <div id="app">
    <v-multiselect v-model="value" :options="optionArray" multiple :placeholder="'Select'"/>
  </div>
</template>
export default {
  data() {
    return {
      value: [],
      optionArray: ["option 1", "option 2", "option 3", "option 4"]
    };
  },
}

Available Props

| Prop | Data Type |Default| Description | | ---------------- | ---------|-------|------------------ | | append-icon | string | '$dropdown' | Appends an icon to the component, uses the same syntax as v-icon | | append-outer-icon | string | undefined | Appends an icon to the outside the component's input, uses same syntax as v-icon | | attach | any | false | Specifies which DOM element that this component should detach to.String can be any valid querySelector and Object can be any valid Node. This will attach to the root v-app component by default. | | autofocus | boolean | false | Enables autofocus | | background-color | string | undefined | Changes the background-color of the input | | cache-items | boolean | false | Keeps a local unique copy of all items that have been passed through the items prop. | | chips | boolean | false | Changes display of selections to chips. | | clear-icon | string | '$clear' | Applied when using clearable and the input is dirty. | | clearable | boolean | false | Add input clear functionality, default icon is Material Icons clear. | | color | string | undefined | Applies specified color to the control - it can be the name of material color (for example success or purple) or css color (#033 or rgba(255, 0, 0, 0.5)). | | counter | boolean/number/string | undefined | Creates counter for input length; if no number is specified, it defaults to 25. Does not apply any validation. | | counter-value | function | null | | | dark | boolean | false | Applies the dark theme variant to the component | | deletable-chips | boolean | false | Adds a remove icon to selected chips | | dense | boolean | false | Reduces the input height | | disable-lookup | boolean | false | Disables keyboard lookup | | disabled | boolean | false | Disables the input | | eager | boolean | false | Will force the components content to render on mounted. This is useful if you have content that will not be rendered in the DOM that you want crawled for SEO. | | error | boolean | false | Puts the input in a manual error state | | error-count | number/string | 1 | The total number of errors that should display at once | | error-messages | string/array | [] | Puts the input in an error state and passes through custom error messages. Will be combined with any validations that occur from the rules prop. This field will not trigger validation | | filled | boolean | false | Applies the alternate filled input style | | filter | | (item: object, queryText: string, itemText: string): boolean | The function used for filtering items | | flat | boolean | false | Removes elevation (shadow) added to element when using the solo or solo-inverted props | | full-width | boolean | false | Designates input type as full-width | | height | number/string | undefined | Sets the height of the input | | hide-details | boolean/string | undefined | Hides hint and validation errors. When set to auto messages will be rendered only if there's a message (hint, error message, counter value etc) to display | | hide-selected | boolean | false | Do not display in the select menu items that are already selected | | hint | string | undefined | Hint text | | id | string | undefined | Sets the DOM id on the component | | item-color | string | 'primary' | Sets color of selected items | | item-disabled | array/string/function | disabled | Set property of items's disabled value | | item-text | array/string/function | text | Set property of items's text value | | item-value | array/string/function | value | Set property of items's value | | items | array | [] | Can be an array of objects or array of strings. When using objects, will look for a text and value field. This can be changed using the item-text and item-value props. Objects that have a header or divider property are considered special cases and generate a list header or divider; these items are not selectable. | | label | string | | Sets input label | | light | boolean | false | Applies the light theme variant to the component. | | loader-height | number/string | 2 | Specifies the height of the loader | | loading | boolean/string | false | Displays linear progress bar. Can either be a String which specifies which color is applied to the progress bar (any material color or theme color - primary, secondary, success, info, warning, error) or a Boolean which uses the component color (set by color prop - if it's supported by the component) or the primary color | | menu-props | array/string/object | { "closeOnClick": false, "closeOnContentClick": false, "disableKeys": true, "openOnClick": false, "maxHeight": 304 } | Pass props through to the v-menu component. Accepts either a string for boolean props menu-props="auto, overflowY", or an object :menu-props="{ auto: true, overflowY: true }". | | messages | string/array | [] | Displays a list of messages or message if using a string. | | multiple | boolean | true | Changes select to multiple. Accepts array for value. | | no-data-text | string | '$vuetify.noDataText' | Display text when there is no data. | | open-on-clear | boolean | false |When using the clearable prop, once cleared, the select menu will either open or stay open, depending on the current state. | | outlined | boolean | false | Applies the outlined style to the input. | | persistent-hint | boolean | false | Forces hint to always be visible. | | placeholder | string | Select | Sets the input’s placeholder text. | | prefix | string | undefined | Displays prefix text. | | prepend-icon | string | undefined | Prepends an icon to the component, uses the same syntax as v-icon. | | prepend-inner-icon | string | undefined | Prepends an icon inside the component's input, uses the same syntax as v-icon. | | readonly | boolean | false | Puts input in readonly state. | | return-object | boolean | false |Changes the selection behavior to return the object directly rather than the value specified with item-value. | | reverse | boolean | false | Reverses the input orientation. | | rounded | boolean | false | Adds a border radius to the input. | | rules | array | [] | Accepts an array of functions that take an input value as an argument and return either true / false or a string with an error message. | | shaped | boolean | false | Round if outlined and increase border-radius if filled. Must be used with either outlined or filled.| | single-line | boolean | false |Label does not move on focus/dirty. | | small-chips | boolean | false | Changes display of selections to chips with the small property. | | solo | boolean | false | Changes the style of the input. | | solo-inverted | boolean | false |Reduces element opacity until focused. | | success | boolean | false | Puts the input in a manual success state. | | success-messages | string/array | [] | Puts the input in a success state and passes through custom success messages.. | | suffix | string | undefined | Displays suffix text. | | type | string | text | Sets input type. | | validate-on-blur | boolean | false | Delays validation until blur event. | | value | any | default | The input's value. | | value-comparator | function | (a: any, b: any): boolean | The comparison algorithm used for values. |

Events

| Name | Description | Value | | ----------------------- | --------------- | -| | blur | Emitted when the input is blurred | Event | | change | Emitted when the input is changed by user interaction | any | | click | Emitted when input is clicked | MouseEvent | | click:append | Emitted when appended icon is clicked | Event | | click:append-outer | Emitted when appended outer icon is clicked | Event | | click:clear | Emitted when clearable icon clicked | Event | | click:prepend | Emitted when prepended icon is clicked | Event | | click:prepend-inner | Emitted when prepended inner icon is clicked | Event | | focus | Emitted when component is focused | Event | | input | The updated bound model | any | | keydown | Emitted when any key is pressed | KeyboardEvent | | mousedown | Emitted when click is pressed | MouseEvent | | mouseup | Emitted when click is released | MouseEvent | | update:error | The error.sync event | boolean | | update:list-index | Emitted when menu item is selected using keyboard arrows | number | | update:search-input | The search-input.sync event | string |

Slots

| Name | Description | | ----------------------- | -| | append | Adds an item inside the input and after input content | | append-item | Adds an item after menu content | | append-outer | Adds an item outside the input and after input content | | default | The default Vue slot. | | item | Define a custom item appearance | | label | Replaces the default label | | message |Customize the messages slot. | | no-data |Displayed when there are no filtered items. | | prepend |Adds an item outside the input and before input content. | | prepend-inner |Adds an item inside the input and before input content. | | prepend-item |Adds an item before menu content. | | progress |Slot for custom progress linear (displayed when loading prop is not equal to Boolean False). | | selection |Define a custom selection appearance. |

Sass

| Name | Default | | ----------------------- | -| | $select-active-chip-opacity | 0.2 !default; | | $select-active-icon-flip | true !default; | | $select-chip-margin | 4px !default; | | $select-chips-box-enclosed-selections-min-height | 68px !default; | | $select-chips-dense-selections-min-height | 40px !default; | | $select-chips-dense-selections-padding-top | 40px !default; | | $select-chips-selections-padding-top | 42px !default; | | $select-dense-chip-margin | 0 4px 0 4px !default; | | $select-dense-selections-margin | 5px 4px 3px 0 !default; | | $select-outlined-dense-selections-padding-top | 4px 0 !default; | | $select-outlined-selections-padding-top | 8px 0 !default; | | $select-prefix-line-height |20px !default; | | $select-selected-chip-opacity | .22 !default; | | $select-selections-line-height | 18px !default; | | $select-selections-margin |7px 4px 7px 0 !default; | | $select-selections-padding-top | 20px !default; | | $select-small-chips-dense-selections-min-height | 38px !default; | | $select-small-chips-selections-min-height | 26px !default; |

Want to Contribute?

  • Created something awesome, made this code better, added some functionality, or whatever (this is the hardest part).
  • Fork it.
  • Create new branch to contribute your changes.
  • Commit all your changes to your branch.
  • Submit a pull request.

Need Help?

We also provide a free, basic support for all users who want to use this VueJS based Multiselect Dropdown component in their software project. In case you want to customize this Multiselect dropdown component to suit your development needs, then feel free to contact our VueJS developers.


Collection of Components

We have built many other components and free resources for software development in various programming languages. Kindly click here to view our Free Resources for Software Development.


Changelog

Detailed changes for each release are documented in CHANGELOG.md.

Credits

vue-weblineindia-multiselect is inspired by vue-select.

License

MIT

Keywords

vue-weblineindia-multiselect,multiselect,select,vue components,vuejs,vuejs component