xmpp.chapril.org-conversejs/src/shared/autocomplete/suggestion.js
JC Brand bb3f52d2f2 Move the autocomplete code into ./shared
And remove it as a plugin.
2020-12-10 11:17:57 +01:00

37 lines
923 B
JavaScript

/**
* An autocomplete suggestion
*/
class Suggestion extends String {
/**
* @param { Any } data - The auto-complete data. Ideally an object e.g. { label, value },
* which specifies the value and human-presentable label of the suggestion.
* @param { string } query - The query string being auto-completed
*/
constructor (data, query) {
super();
const o = Array.isArray(data)
? { label: data[0], value: data[1] }
: typeof data === 'object' && 'label' in data && 'value' in data
? data
: { label: data, value: data };
this.label = o.label || o.value;
this.value = o.value;
this.query = query;
}
get lenth () {
return this.label.length;
}
toString () {
return '' + this.label;
}
valueOf () {
return this.toString();
}
}
export default Suggestion;