UNPKG

react-select

Version:

A Select control built with and for ReactJS

46 lines (40 loc) 1.68 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.createFilter = undefined; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _diacritics = require('./diacritics'); var trimString = function trimString(str) { return str.replace(/^\s+|\s+$/g, ''); }; var defaulStringify = function defaulStringify(option) { return option.label + ' ' + option.value; }; var createFilter = exports.createFilter = function createFilter(config) { return function (option, rawInput) { var _ignoreCase$ignoreAcc = _extends({ ignoreCase: true, ignoreAccents: true, stringify: defaulStringify, trim: true, matchFrom: 'any' }, config), ignoreCase = _ignoreCase$ignoreAcc.ignoreCase, ignoreAccents = _ignoreCase$ignoreAcc.ignoreAccents, stringify = _ignoreCase$ignoreAcc.stringify, trim = _ignoreCase$ignoreAcc.trim, matchFrom = _ignoreCase$ignoreAcc.matchFrom; var input = trim ? trimString(rawInput) : rawInput; var candidate = trim ? trimString(stringify(option)) : stringify(option); if (ignoreCase) { input = input.toLowerCase(); candidate = candidate.toLowerCase(); } if (ignoreAccents) { input = (0, _diacritics.stripDiacritics)(input); candidate = (0, _diacritics.stripDiacritics)(candidate); } return matchFrom === 'start' ? candidate.substr(0, input.length) === input : candidate.indexOf(input) > -1; }; };