UNPKG

@zegal/react-inline-suggest

Version:
29 lines (28 loc) 1.19 kB
"use strict"; 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;