Home

Awesome

advanced-select

CircleCI (all branches) npm (scoped) NpmLicense npm bundle size (minified + gzip) David David

What's this

Component to render a "select" with advanced interactions (search, select/deselect all, etc) for websites built with Vue and Bootstrap 3

Install

npm install @myena/advanced-select

Dependencies

Demo

https://myena-advanced-select.netlify.app/

Usage

Options can be passed as props

<AdvancedSelect
  v-model="value"
  :options="options"
  :disabled="disabled"
  />

Or as the default slot

<AdvancedSelect
  v-model="secondValue"
  :disabled="disabled"
  >
  <option value="1">Text</option>
  <option value="2">Text 2</option>
</AdvancedSelect>
import AdvancedSelect from 'advanced-select';

export default {
  components: {
    AdvancedSelect,
  },
  data: () => ({
    options: [
      { value: 1, text: 'One' },
      { value: 2, text: 'Two' },
    ],
    value: null,
    secondValue: '1',
    disabled: false,
  }),
};

Props

PropTypeDefaultDescription
v-modelanynullPass v-model to the component to have the reference to the current selected value
:optionsArray[]The options to display. A list of objects in the form: { value: 1, text: 'One' } or { label: 'Group 1', options: [ { value: 1, text: 'One' } ]. If not passed as prop, it tries to read them from the component default slot, where they can be specified as HTML standard `option
:searchBooleanfalseShow or not a search field to filter the options
:multipleBooleanfalseSingle or multiple select
:controlsBooleanfalseShow or not a couple control buttons at the top for (de)selecting all items
:collapseHeadersBooleanfalseShow or not a link on the headers to toggle items under them
:displayMaxNumber0How many selected items to display on the button in multiple mode. 0 means all
:displayTextString"{0} items selected"Text to display if displayMax is reached. "{0}" will be replaced by the total number
:dropdownClassString''Class to use for the dropdown menu. EG: 'dropdown-menu-right'
:textsObject{ placeholder: 'Nothing selected', empty: 'No results', selectAll: 'Select all', selectNone: 'Select none', }Texts used

All other DOM attributes are inherited by the component button. For example: :disabled="true" will disable the button.