mirror of
https://github.com/Hopiu/vue-material.git
synced 2026-05-22 14:01:52 +00:00
58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
export default {
|
|
props: {
|
|
debounce: {
|
|
type: Number,
|
|
default: 1E3
|
|
},
|
|
disabled: Boolean,
|
|
fetch: {
|
|
type: Function
|
|
},
|
|
filterList: Function,
|
|
list: {
|
|
type: Array,
|
|
default() {
|
|
return [];
|
|
}
|
|
},
|
|
minChars: {
|
|
type: Number,
|
|
default: 1
|
|
},
|
|
name: String,
|
|
prepareResponseData: Function,
|
|
printAttribute: {
|
|
type: String,
|
|
default: 'name'
|
|
},
|
|
queryParam: {
|
|
type: String,
|
|
default: 'q'
|
|
},
|
|
required: Boolean
|
|
},
|
|
methods: {
|
|
onFocus() {
|
|
if (this.parentContainer) {
|
|
this.parentContainer.isFocused = true;
|
|
}
|
|
},
|
|
onBlur() {
|
|
this.parentContainer.isFocused = false;
|
|
this.setParentValue();
|
|
},
|
|
verifyProps() {
|
|
if (!this.parentContainer) {
|
|
return this.throwErrorDestroy('You should wrap the md-input in a md-input-container');
|
|
} else if (this.listIsEmpty && this.filterList) {
|
|
return this.throwErrorDestroy('You should use a `filterList` function prop with the `list` prop');
|
|
} else if (!this.fetch && this.listIsEmpty) {
|
|
return this.throwErrorDestroy('You should use a `fetch` function prop');
|
|
}
|
|
},
|
|
throwErrorDestroy(errorMessage) {
|
|
this.$destroy();
|
|
throw new Error(errorMessage);
|
|
}
|
|
}
|
|
};
|