Vue-multiselect

Example fiddle for issue reproduction usage

by ksoncan34

HTML

<script src="https://unpkg.com/[email protected]/dist/vue-multiselect.min.js"></script>
<link rel="stylesheet" href="https://unpkg.com/[email protected]/dist/vue-multiselect.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.6/vue.common.dev.js"></script>
<div id="app">
  <multiselect 
    v-model="value" 
    :options="options" 
    :close-on-select="false" 
    :clear-on-select="false" 
    :hide-selected="true" 
    :preserve-search="true" 
    placeholder="Pick some" 
    label="name" 
    track-by="name" 
    :preselect-first="true"
    id="example"
    @select="onSelect"
  >
      <template #singleLabel="props">
        <div style="display: flex; align-items: center;">
          <img :src="`/global/images/flags/${props.option.code.toLowerCase()}.png`" alt="flag"
               style="margin-right: 10px;">
          ${ props.option.name }
        </div>
    </template>
    <template #option="props">
      <div style="display: flex; align-items: center;">
        <img :src="`/global/images/flags/${props.option.code.toLowerCase()}.png`" alt="flag"
             style="margin-right: 10px;">
        ${ props.option.name }
      </div>
    </template>
  
  </multiselect>
  <pre class="language-json"><code>{{ value  }}</code></pre>
</div>

CSS

* {
  font-family: 'Lato', 'Avenir', sans-serif;
}

Babel + JSX

new Vue({
	components: {
  	Multiselect: window.VueMultiselect.default
	},
	data: {
  	value: '',
  	options: [
        { name: 'Vue.js', language: 'JavaScript' },
        { name: 'Rails', language: 'Ruby' },
        { name: 'Sinatra', language: 'Ruby' },
        { name: 'Laravel', language: 'PHP', $isDisabled: true }
      ]
	},
  methods: {
  	customLabel (option) {
      return `${option.library} - ${option.language}`
    },
    onSelect (option, id) {
    	console.log(option, id)
    }
  }
}).$mount('#app')