Skip to content

Commit 36e8701

Browse files
authored
Merge pull request moreta#31 from Eder87rh/master
improves MultiSelect
2 parents 6f696d5 + 9e26579 commit 36e8701

File tree

1 file changed

+34
-5
lines changed

1 file changed

+34
-5
lines changed

src/components/lib/MultiSelect.vue

+34-5
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,10 @@
5959
type: Boolean,
6060
default: false
6161
},
62+
cleanSearch:{
63+
type: Boolean,
64+
default: true
65+
},
6266
placeholder: {
6367
type: String,
6468
default: ''
@@ -114,7 +118,12 @@
114118
filteredOptions () {
115119
if (this.searchText) {
116120
return this.nonSelectOptions.filter(option => {
117-
return option.text.match(new RegExp(this.searchText, 'i'))
121+
if(this.cleanSearch){
122+
var cleanedText = this.accentsTidy(option.text)
123+
return cleanedText.match(new RegExp(this.searchText, 'i'))
124+
}else{
125+
return option.text.match(new RegExp(this.searchText, 'i'))
126+
}
118127
})
119128
} else {
120129
return this.nonSelectOptions
@@ -138,9 +147,13 @@
138147
},
139148
prevItem () {
140149
common.prevItem(this)
150+
this.closeOptions();
151+
this.openOptions();
141152
},
142153
nextItem () {
143154
common.nextItem(this)
155+
this.closeOptions();
156+
this.openOptions();
144157
},
145158
enterItem () {
146159
common.enterItem(this)
@@ -156,13 +169,29 @@
156169
},
157170
selectItem (option) {
158171
const selectedOptions = _.unionWith(this.selectedOptions, [option], _.isEqual)
159-
this.closeOptions()
160-
this.$emit('select', selectedOptions, option)
172+
this.closeOptions();
173+
this.openOptions();
174+
this.searchText='';
175+
this.$emit('select', selectedOptions,option,'insert')
161176
},
162177
deleteItem (option) {
163178
const selectedOptions = _.reject(this.selectedOptions, option)
164-
this.$emit('select', selectedOptions, option)
165-
}
179+
this.$emit('select', selectedOptions,option,'delete')
180+
},
181+
accentsTidy(s){
182+
var r=s.toString().toLowerCase();
183+
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
184+
r = r.replace(new RegExp("æ", 'g'),"ae");
185+
r = r.replace(new RegExp("ç", 'g'),"c");
186+
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
187+
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
188+
r = r.replace(new RegExp("ñ", 'g'),"n");
189+
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
190+
r = r.replace(new RegExp("œ", 'g'),"oe");
191+
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
192+
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
193+
return r;
194+
}
166195
}
167196
}
168197
</script>

0 commit comments

Comments
 (0)