office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
52 lines • 1.97 kB
JavaScript
import * as tslib_1 from "tslib";
import { autobind } from '../../../Utilities';
var SuggestionsStore = /** @class */ (function () {
function SuggestionsStore() {
this.suggestions = [];
}
SuggestionsStore.prototype.updateSuggestions = function (newSuggestions) {
if (newSuggestions && newSuggestions.length > 0) {
this.suggestions = this.convertSuggestionsToSuggestionItems(newSuggestions);
}
else {
this.suggestions = [];
}
};
SuggestionsStore.prototype.getSuggestions = function () {
return this.suggestions;
};
SuggestionsStore.prototype.getSuggestionAtIndex = function (index) {
return this.suggestions[index];
};
SuggestionsStore.prototype.removeSuggestion = function (index) {
this.suggestions.splice(index, 1);
};
SuggestionsStore.prototype.convertSuggestionsToSuggestionItems = function (suggestions) {
return Array.isArray(suggestions) ? suggestions.map(this._ensureSuggestionModel) : [];
};
SuggestionsStore.prototype._isSuggestionModel = function (value) {
return value.item !== undefined;
};
SuggestionsStore.prototype._ensureSuggestionModel = function (suggestion) {
if (this._isSuggestionModel(suggestion)) {
return suggestion;
}
else {
return {
item: suggestion,
selected: false,
// tslint:disable-next-line:no-any
ariaLabel: suggestion.name || suggestion.primaryText
};
}
};
tslib_1.__decorate([
autobind
], SuggestionsStore.prototype, "_isSuggestionModel", null);
tslib_1.__decorate([
autobind
], SuggestionsStore.prototype, "_ensureSuggestionModel", null);
return SuggestionsStore;
}());
export { SuggestionsStore };
//# sourceMappingURL=SuggestionsStore.js.map