Skip to content

myENA/advanced-select

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jul 27, 2022
0a442c9 · Jul 27, 2022
Apr 2, 2021
Jul 27, 2022
Nov 24, 2018
Jul 26, 2022
Jun 28, 2021
Nov 24, 2018
Nov 24, 2018
Nov 24, 2018
Sep 28, 2020
Jan 12, 2019
Sep 30, 2020
Jan 27, 2021
Jan 13, 2019
Nov 10, 2021
Apr 2, 2021
Sep 30, 2020
Nov 24, 2018
Jan 12, 2019
Apr 2, 2021
Jul 27, 2022
Jul 27, 2022
Nov 24, 2018
Nov 25, 2018
Nov 24, 2018
May 17, 2020

Repository files navigation

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

  • Vue 2*/3
    • *For Vue 2 it depends on @vue/composition-api, via vue-demi
  • Bootstrap 3

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

Prop Type Default Description
v-model any null Pass v-model to the component to have the reference to the current selected value
:options Array [] 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
:search Boolean false Show or not a search field to filter the options
:multiple Boolean false Single or multiple select
:controls Boolean false Show or not a couple control buttons at the top for (de)selecting all items
:collapseHeaders Boolean false Show or not a link on the headers to toggle items under them
:displayMax Number 0 How many selected items to display on the button in multiple mode. 0 means all
:displayText String "{0} items selected" Text to display if displayMax is reached. "{0}" will be replaced by the total number
:dropdownClass String '' Class to use for the dropdown menu. EG: 'dropdown-menu-right'
:texts Object { 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.