2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-06-22 10:30:34 +03:00

Fix code style issues

This commit is contained in:
Lexxus
2017-12-29 12:07:15 +02:00
parent a54c4123e9
commit 4bf6c0ce44
7 changed files with 1353 additions and 1340 deletions
+2 -1
View File
@@ -11,7 +11,8 @@
"env": { "env": {
"browser": true, "browser": true,
"node": true, "node": true,
"es6": true "es6": true,
"jasmine": true
}, },
"extends": "standard" "extends": "standard"
+22 -14
View File
@@ -372,7 +372,7 @@
type: Array, type: Array,
default () { default () {
return [] return []
}, }
}, },
/** /**
@@ -475,7 +475,7 @@
return option[this.label] return option[this.label]
} }
} }
return option; return option
} }
}, },
@@ -583,7 +583,7 @@
dir: { dir: {
type: String, type: String,
default: 'auto' default: 'auto'
}, }
}, },
data () { data () {
@@ -614,9 +614,9 @@
*/ */
mutableValue (val, old) { mutableValue (val, old) {
if (this.multiple) { if (this.multiple) {
this.onChange ? this.onChange(val) : null if (this.onChange) this.onChange(val)
} else { } else {
this.onChange && val !== old ? this.onChange(val) : null if (this.onChange && val !== old) this.onChange(val)
} }
}, },
@@ -700,11 +700,11 @@
if (this.multiple) { if (this.multiple) {
let ref = -1 let ref = -1
this.mutableValue.forEach((val) => { this.mutableValue.forEach((val) => {
if (val === option || typeof val === 'object' && val[this.label] === option[this.label]) { if (val === option || (typeof val === 'object' && val[this.label] === option[this.label])) {
ref = val ref = val
} }
}) })
var index = this.mutableValue.indexOf(ref) const index = this.mutableValue.indexOf(ref)
this.mutableValue.splice(index, 1) this.mutableValue.splice(index, 1)
} else { } else {
this.mutableValue = null this.mutableValue = null
@@ -733,7 +733,8 @@
* @return {void} * @return {void}
*/ */
toggleDropdown (e) { toggleDropdown (e) {
if (e.target === this.$refs.openIndicator || e.target === this.$refs.search || e.target === this.$refs.toggle || e.target === this.$el) { if (e.target === this.$refs.openIndicator || e.target === this.$refs.search ||
e.target === this.$refs.toggle || e.target === this.$el) {
if (this.open) { if (this.open) {
this.$refs.search.blur() // dropdown will close on blur this.$refs.search.blur() // dropdown will close on blur
} else { } else {
@@ -758,8 +759,7 @@
selected = true selected = true
} else if (typeof opt === 'object' && opt[this.label] === option) { } else if (typeof opt === 'object' && opt[this.label] === option) {
selected = true selected = true
} } else if (opt === option) {
else if (opt === option) {
selected = true selected = true
} }
}) })
@@ -811,9 +811,17 @@
* @return {this.value} * @return {this.value}
*/ */
maybeDeleteValue () { maybeDeleteValue () {
let value = null
if (!this.$refs.search.value.length && this.mutableValue) { if (!this.$refs.search.value.length && this.mutableValue) {
return this.multiple ? this.mutableValue.pop() : this.mutableValue = null if (this.multiple) {
value = this.mutableValue.pop()
} else {
value = this.mutableValue = null
} }
}
return value
}, },
/** /**
@@ -903,7 +911,7 @@
*/ */
searchPlaceholder () { searchPlaceholder () {
if (this.isValueEmpty && this.placeholder) { if (this.isValueEmpty && this.placeholder) {
return this.placeholder; return this.placeholder
} }
}, },
@@ -945,7 +953,7 @@
return !this.mutableValue.length return !this.mutableValue.length
} }
return true; return true
}, },
/** /**
@@ -961,7 +969,7 @@
return [] return []
} }
}, }
} }
</script> </script>
+1 -1
View File
@@ -14,7 +14,7 @@ Vue.config.devtools = true
new Vue({ new Vue({
el: '#app', el: '#app',
data: { data: {
placeholder: "placeholder", placeholder: 'placeholder',
value: null, value: null,
options: countries, options: countries,
ajaxRes: [], ajaxRes: [],
+5 -2
View File
@@ -64,9 +64,12 @@ module.exports = {
*/ */
toggleLoading (toggle = null) { toggleLoading (toggle = null) {
if (toggle == null) { if (toggle == null) {
return this.mutableLoading = !this.mutableLoading this.mutableLoading = !this.mutableLoading
} else {
this.mutableLoading = toggle
} }
return this.mutableLoading = toggle
return this.mutableLoading
} }
} }
} }
+9 -2
View File
@@ -32,6 +32,7 @@ module.exports = {
*/ */
pixelsToPointerTop () { pixelsToPointerTop () {
let pixelsToPointerTop = 0 let pixelsToPointerTop = 0
if (this.$refs.dropdownMenu) { if (this.$refs.dropdownMenu) {
for (let i = 0; i < this.typeAheadPointer; i++) { for (let i = 0; i < this.typeAheadPointer; i++) {
pixelsToPointerTop += this.$refs.dropdownMenu.children[i].offsetHeight pixelsToPointerTop += this.$refs.dropdownMenu.children[i].offsetHeight
@@ -75,7 +76,13 @@ module.exports = {
* @returns {*} * @returns {*}
*/ */
scrollTo (position) { scrollTo (position) {
return this.$refs.dropdownMenu ? this.$refs.dropdownMenu.scrollTop = position : null let result = null
},
if (this.$refs.dropdownMenu) {
result = this.$refs.dropdownMenu.scrollTop = position
}
return result
}
} }
} }
+3 -3
View File
@@ -47,14 +47,14 @@ module.exports = {
*/ */
typeAheadSelect () { typeAheadSelect () {
if (this.filteredOptions[ this.typeAheadPointer ]) { if (this.filteredOptions[ this.typeAheadPointer ]) {
this.select( this.filteredOptions[ this.typeAheadPointer ] ); this.select(this.filteredOptions[this.typeAheadPointer])
} else if (this.taggable && this.search.length) { } else if (this.taggable && this.search.length) {
this.select(this.search) this.select(this.search)
} }
if (this.clearSearchOnSelect) { if (this.clearSearchOnSelect) {
this.search = ""; this.search = ''
} }
}, }
} }
} }
+25 -31
View File
@@ -18,7 +18,7 @@ Vue.component('v-select', vSelect)
* @returns {Event} * @returns {Event}
*/ */
function trigger (target, event, process) { function trigger (target, event, process) {
var e = document.createEvent('HTMLEvents') const e = document.createEvent('HTMLEvents')
e.initEvent(event, true, true) e.initEvent(event, true, true)
if (process) process(e) if (process) process(e)
target.dispatchEvent(e) target.dispatchEvent(e)
@@ -33,7 +33,7 @@ function trigger(target, event, process) {
* @returns {Event} * @returns {Event}
*/ */
function triggerMouse (target, event, process) { function triggerMouse (target, event, process) {
var e = document.createEvent('MouseEvent') const e = document.createEvent('MouseEvent')
e.initEvent('event', true, true) e.initEvent('event', true, true)
if (process) process(e) if (process) process(e)
target.dispatchEvent(e) target.dispatchEvent(e)
@@ -48,7 +48,7 @@ function triggerMouse(target, event, process) {
* @returns {Event} * @returns {Event}
*/ */
function triggerFocusEvent (target, event, process) { function triggerFocusEvent (target, event, process) {
var e = document.createEvent('FocusEvent') const e = document.createEvent('FocusEvent')
e.initEvent('event', true, true) e.initEvent('event', true, true)
if (process) process(e) if (process) process(e)
target.dispatchEvent(e) target.dispatchEvent(e)
@@ -71,7 +71,6 @@ function searchSubmit(vm, search = false) {
} }
describe('Select.vue', () => { describe('Select.vue', () => {
describe('Selecting values', () => { describe('Selecting values', () => {
it('can accept an array with pre-selected values', () => { it('can accept an array with pre-selected values', () => {
const vm = new Vue({ const vm = new Vue({
@@ -131,11 +130,11 @@ describe('Select.vue', () => {
}).$mount() }).$mount()
vm.$children[0].select('foo') vm.$children[0].select('foo')
expect(vm.$children[0].mutableValue.length).toEqual(1) expect(vm.$children[0].mutableValue.length).toEqual(1)
}), })
it('can deselect an option when multiple is false', () => { it('can deselect an option when multiple is false', () => {
const vm = new Vue({ const vm = new Vue({
template: `<div><v-select :value="'foo'"></v-select></div>`, template: `<div><v-select :value="'foo'"></v-select></div>`
}).$mount() }).$mount()
vm.$children[0].deselect('foo') vm.$children[0].deselect('foo')
expect(vm.$children[0].mutableValue).toEqual(null) expect(vm.$children[0].mutableValue).toEqual(null)
@@ -240,14 +239,14 @@ describe('Select.vue', () => {
expect(vm.value).toEqual('bar') expect(vm.value).toEqual('bar')
done() done()
}) })
}), })
it('can check if a string value is selected when the value is an object and multiple is true', () => { it('can check if a string value is selected when the value is an object and multiple is true', () => {
const vm = new Vue({ const vm = new Vue({
template: `<div><v-select multiple :value="[{label: 'foo', value: 'bar'}]"></v-select></div>`, template: `<div><v-select multiple :value="[{label: 'foo', value: 'bar'}]"></v-select></div>`
}).$mount() }).$mount()
expect(vm.$children[0].isOptionSelected('foo')).toEqual(true) expect(vm.$children[0].isOptionSelected('foo')).toEqual(true)
}), })
describe('change Event', () => { describe('change Event', () => {
it('will trigger the input event when the selection changes', (done) => { it('will trigger the input event when the selection changes', (done) => {
@@ -280,7 +279,6 @@ describe('Select.vue', () => {
expect(vm.foo).toEqual(['foo', 'bar']) expect(vm.foo).toEqual(['foo', 'bar'])
done() done()
}) })
}) })
}) })
}) })
@@ -365,7 +363,7 @@ describe('Select.vue', () => {
it('can close the dropdown when the el is clicked', (done) => { it('can close the dropdown when the el is clicked', (done) => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select></v-select></div>', template: '<div><v-select></v-select></div>',
components: {vSelect}, components: {vSelect}
}).$mount() }).$mount()
spyOn(vm.$children[0].$refs.search, 'blur') spyOn(vm.$children[0].$refs.search, 'blur')
@@ -379,7 +377,6 @@ describe('Select.vue', () => {
}) })
}) })
it('closes the dropdown when an option is selected, multiple is true, and closeOnSelect option is true', (done) => { it('closes the dropdown when an option is selected, multiple is true, and closeOnSelect option is true', (done) => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select ref="select" :options="options" multiple :value="value"></v-select></div>', template: '<div><v-select ref="select" :options="options" multiple :value="value"></v-select></div>',
@@ -418,7 +415,6 @@ describe('Select.vue', () => {
}) })
}) })
it('should close the dropdown on search blur', () => { it('should close the dropdown on search blur', () => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select :options="options" multiple :value="value"></v-select></div>', template: '<div><v-select :options="options" multiple :value="value"></v-select></div>',
@@ -436,7 +432,7 @@ describe('Select.vue', () => {
it('will close the dropdown and emit the search:blur event from onSearchBlur', () => { it('will close the dropdown and emit the search:blur event from onSearchBlur', () => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select></v-select></div>', template: '<div><v-select></v-select></div>'
}).$mount() }).$mount()
spyOn(vm.$children[0], '$emit') spyOn(vm.$children[0], '$emit')
@@ -449,7 +445,7 @@ describe('Select.vue', () => {
it('will open the dropdown and emit the search:focus event from onSearchFocus', () => { it('will open the dropdown and emit the search:focus event from onSearchFocus', () => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select></v-select></div>', template: '<div><v-select></v-select></div>'
}).$mount() }).$mount()
spyOn(vm.$children[0], '$emit') spyOn(vm.$children[0], '$emit')
@@ -462,7 +458,7 @@ describe('Select.vue', () => {
it('will close the dropdown on escape, if search is empty', (done) => { it('will close the dropdown on escape, if search is empty', (done) => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select></v-select></div>', template: '<div><v-select></v-select></div>',
components: {vSelect}, components: {vSelect}
}).$mount() }).$mount()
spyOn(vm.$children[0].$refs.search, 'blur') spyOn(vm.$children[0].$refs.search, 'blur')
@@ -529,7 +525,7 @@ describe('Select.vue', () => {
vm.$children[0].typeAheadPointer = 1 vm.$children[0].typeAheadPointer = 1
trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 38) trigger(vm.$children[0].$refs.search, 'keydown', (e) => { e.keyCode = 38 })
expect(vm.$children[0].typeAheadPointer).toEqual(0) expect(vm.$children[0].typeAheadPointer).toEqual(0)
}) })
@@ -543,7 +539,7 @@ describe('Select.vue', () => {
}).$mount() }).$mount()
vm.$children[0].typeAheadPointer = 1 vm.$children[0].typeAheadPointer = 1
trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 40) trigger(vm.$children[0].$refs.search, 'keydown', (e) => { e.keyCode = 40 })
expect(vm.$children[0].typeAheadPointer).toEqual(2) expect(vm.$children[0].typeAheadPointer).toEqual(2)
}) })
@@ -573,7 +569,7 @@ describe('Select.vue', () => {
vm.$children[0].typeAheadPointer = 1 vm.$children[0].typeAheadPointer = 1
spyOn(vm.$children[0], 'maybeAdjustScroll') spyOn(vm.$children[0], 'maybeAdjustScroll')
trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 38) trigger(vm.$children[0].$refs.search, 'keydown', (e) => { e.keyCode = 38 })
expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled() expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled()
}) })
@@ -587,7 +583,7 @@ describe('Select.vue', () => {
}).$mount() }).$mount()
spyOn(vm.$children[0], 'maybeAdjustScroll') spyOn(vm.$children[0], 'maybeAdjustScroll')
trigger(vm.$children[0].$refs.search, 'keydown', (e) => e.keyCode = 40) trigger(vm.$children[0].$refs.search, 'keydown', (e) => { e.keyCode = 40 })
expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled() expect(vm.$children[0].maybeAdjustScroll).toHaveBeenCalled()
}) })
@@ -624,7 +620,7 @@ describe('Select.vue', () => {
'v-select': Mock({ 'v-select': Mock({
'../mixins/pointerScroll': {methods} '../mixins/pointerScroll': {methods}
}) })
}, }
}).$mount() }).$mount()
spyOn(vm.$children[0], 'scrollTo') spyOn(vm.$children[0], 'scrollTo')
@@ -652,7 +648,7 @@ describe('Select.vue', () => {
'v-select': Mock({ 'v-select': Mock({
'../mixins/pointerScroll': {methods} '../mixins/pointerScroll': {methods}
}) })
}, }
}).$mount() }).$mount()
spyOn(vm.$children[0], 'scrollTo') spyOn(vm.$children[0], 'scrollTo')
@@ -664,7 +660,7 @@ describe('Select.vue', () => {
describe('Measuring pixel distances', () => { describe('Measuring pixel distances', () => {
it('should calculate pointerHeight as the offsetHeight of the pointer element if it exists', () => { it('should calculate pointerHeight as the offsetHeight of the pointer element if it exists', () => {
const vm = new Vue({ const vm = new Vue({
template: `<div><v-select :options="['one', 'two', 'three']"></v-select></div>`, template: `<div><v-select :options="['one', 'two', 'three']"></v-select></div>`
}).$mount() }).$mount()
// dropdown must be open for $refs to exist // dropdown must be open for $refs to exist
@@ -719,7 +715,6 @@ describe('Select.vue', () => {
}) })
it('should remove the last item in the value array on delete keypress when multiple is true', () => { it('should remove the last item in the value array on delete keypress when multiple is true', () => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select :options="options" v-model="value" :multiple="true"></v-select></div>', template: '<div><v-select :options="options" v-model="value" :multiple="true"></v-select></div>',
components: {vSelect}, components: {vSelect},
@@ -766,7 +761,7 @@ describe('Select.vue', () => {
it('will console.warn when options contain objects without a valid label key', (done) => { it('will console.warn when options contain objects without a valid label key', (done) => {
spyOn(console, 'warn') spyOn(console, 'warn')
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select :options="[{}]"></v-select></div>', template: '<div><v-select :options="[{}]"></v-select></div>'
}).$mount() }).$mount()
Vue.nextTick(() => { Vue.nextTick(() => {
expect(console.warn).toHaveBeenCalledWith( expect(console.warn).toHaveBeenCalledWith(
@@ -1038,7 +1033,7 @@ describe('Select.vue', () => {
it('should not allow duplicate tags when using string options', (done) => { it('should not allow duplicate tags when using string options', (done) => {
const vm = new Vue({ const vm = new Vue({
template: `<div><v-select ref="select" taggable multiple></v-select></div>`, template: `<div><v-select ref="select" taggable multiple></v-select></div>`
}).$mount() }).$mount()
vm.$refs.select.search = 'one' vm.$refs.select.search = 'one'
searchSubmit(vm) searchSubmit(vm)
@@ -1057,7 +1052,7 @@ describe('Select.vue', () => {
it('should not allow duplicate tags when using object options', (done) => { it('should not allow duplicate tags when using object options', (done) => {
const vm = new Vue({ const vm = new Vue({
template: `<div><v-select ref="select" taggable multiple></v-select></div>`, template: `<div><v-select ref="select" taggable multiple></v-select></div>`
}).$mount() }).$mount()
vm.$refs.select.search = 'one' vm.$refs.select.search = 'one'
searchSubmit(vm) searchSubmit(vm)
@@ -1072,14 +1067,13 @@ describe('Select.vue', () => {
done() done()
}) })
}) })
}) })
}) })
describe('Asynchronous Loading', () => { describe('Asynchronous Loading', () => {
it('can toggle the loading class', () => { it('can toggle the loading class', () => {
const vm = new Vue({ const vm = new Vue({
template: '<div><v-select ref="select"></v-select></div>', template: '<div><v-select ref="select"></v-select></div>'
}).$mount() }).$mount()
vm.$refs.select.toggleLoading() vm.$refs.select.toggleLoading()
@@ -1268,7 +1262,7 @@ describe('Select.vue', () => {
}).$mount() }).$mount()
vm.$children[0].open = true vm.$children[0].open = true
vm.$refs.select.search = "t" vm.$refs.select.search = 't'
expect(vm.$refs.select.search).toEqual('t') expect(vm.$refs.select.search).toEqual('t')
vm.$children[0].onSearchBlur() vm.$children[0].onSearchBlur()
@@ -1289,7 +1283,7 @@ describe('Select.vue', () => {
expect(vm.$refs.select.clearSearchOnSelect).toEqual(false) expect(vm.$refs.select.clearSearchOnSelect).toEqual(false)
vm.$children[0].open = true vm.$children[0].open = true
vm.$refs.select.search = "t" vm.$refs.select.search = 't'
expect(vm.$refs.select.search).toEqual('t') expect(vm.$refs.select.search).toEqual('t')
vm.$children[0].onSearchBlur() vm.$children[0].onSearchBlur()