@zegal/react-inline-suggest
Version:
A simple inline autosuggest input
29 lines (28 loc) • 1.19 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var lodash_escaperegexp_1 = tslib_1.__importDefault(require("lodash.escaperegexp"));
function filterSuggestions(value, suggestions, ignoreCase, getSuggestionValue) {
if (!value) {
return [];
}
var rx = RegExp("^" + lodash_escaperegexp_1.default(value), ignoreCase ? 'i' : undefined);
return suggestions.filter(function (suggestion) {
return getSuggestionValue
? rx.test(getSuggestionValue(suggestion))
: rx.test(String(suggestion));
});
}
exports.filterSuggestions = filterSuggestions;
function getNeedleFromString(text, current) {
return text.replace(text.substr(0, current.length), '');
}
exports.getNeedleFromString = getNeedleFromString;
function getNextSafeIndexFromArray(array, current) {
return current + 1 > array.length - 1 ? 0 : current + 1;
}
exports.getNextSafeIndexFromArray = getNextSafeIndexFromArray;
function getPreviousSafeIndexFromArray(array, current) {
return current - 1 < 0 ? array.length - 1 : current - 1;
}
exports.getPreviousSafeIndexFromArray = getPreviousSafeIndexFromArray;
;