office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
54 lines • 2.33 kB
JavaScript
define(["require", "exports", "tslib", "../../../Utilities"], function (require, exports, tslib_1, Utilities_1) {
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
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([
Utilities_1.autobind
], SuggestionsStore.prototype, "_isSuggestionModel", null);
tslib_1.__decorate([
Utilities_1.autobind
], SuggestionsStore.prototype, "_ensureSuggestionModel", null);
return SuggestionsStore;
}());
exports.SuggestionsStore = SuggestionsStore;
});
//# sourceMappingURL=SuggestionsStore.js.map