match-sorter
Advanced tools
Comparing version 2.2.0 to 2.2.1
@@ -241,2 +241,6 @@ 'use strict'; | ||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
// not performing any search/sort if value(search term) is empty | ||
if (!value) return items; | ||
var keys = options.keys, | ||
@@ -306,3 +310,3 @@ _options$threshold = options.threshold, | ||
function getMatchRanking(testString, stringToRank, options) { | ||
/* eslint complexity:[2, 11] */ | ||
/* eslint complexity:[2, 12] */ | ||
testString = prepareValueForComparison(testString, options); | ||
@@ -325,3 +329,3 @@ stringToRank = prepareValueForComparison(stringToRank, options); | ||
// Lowercasing before further comparison | ||
// Lower casing before further comparison | ||
testString = testString.toLowerCase(); | ||
@@ -328,0 +332,0 @@ stringToRank = stringToRank.toLowerCase(); |
@@ -239,2 +239,6 @@ function createCommonjsModule(fn, module) { | ||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
// not performing any search/sort if value(search term) is empty | ||
if (!value) return items; | ||
var keys = options.keys, | ||
@@ -304,3 +308,3 @@ _options$threshold = options.threshold, | ||
function getMatchRanking(testString, stringToRank, options) { | ||
/* eslint complexity:[2, 11] */ | ||
/* eslint complexity:[2, 12] */ | ||
testString = prepareValueForComparison(testString, options); | ||
@@ -323,3 +327,3 @@ stringToRank = prepareValueForComparison(stringToRank, options); | ||
// Lowercasing before further comparison | ||
// Lower casing before further comparison | ||
testString = testString.toLowerCase(); | ||
@@ -326,0 +330,0 @@ stringToRank = stringToRank.toLowerCase(); |
@@ -245,2 +245,6 @@ (function (global, factory) { | ||
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; | ||
// not performing any search/sort if value(search term) is empty | ||
if (!value) return items; | ||
var keys = options.keys, | ||
@@ -310,3 +314,3 @@ _options$threshold = options.threshold, | ||
function getMatchRanking(testString, stringToRank, options) { | ||
/* eslint complexity:[2, 11] */ | ||
/* eslint complexity:[2, 12] */ | ||
testString = prepareValueForComparison(testString, options); | ||
@@ -329,3 +333,3 @@ stringToRank = prepareValueForComparison(stringToRank, options); | ||
// Lowercasing before further comparison | ||
// Lower casing before further comparison | ||
testString = testString.toLowerCase(); | ||
@@ -332,0 +336,0 @@ stringToRank = stringToRank.toLowerCase(); |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.matchSorter=t()}(this,function(){"use strict";function e(e,s){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},o=n.keys,u=n.threshold,i=void 0===u?b.MATCHES:u;return e.reduce(function(e,r,u){var f=function(e,r,s,n){if(!r)return{rank:t(e,s,n),keyIndex:-1};return function(e,t){return t.reduce(function(t,r){var s=function(e,t){"object"===(void 0===t?"undefined":a(t))&&(t=t.key);var r=void 0;r="function"==typeof t?t(e):-1!==t.indexOf(".")?t.split(".").reduce(function(e,t){return e?e[t]:null},e):e[t];return r?[].concat(r):null}(e,r);return s&&s.forEach(function(e){t.push({itemValue:e,attributes:function(e){"string"==typeof e&&(e={key:e});return l({maxRanking:1/0,minRanking:-1/0},e)}(r)})}),t},[])}(e,r).reduce(function(e,r,a){var l=e.rank,o=e.keyIndex,u=r.itemValue,i=r.attributes,f=t(u,s,n),c=i.minRanking,A=i.maxRanking;return f<c&&f>=b.MATCHES?f=c:f>A&&(f=A),f>l&&(l=f,o=a),{rank:l,keyIndex:o}},{rank:b.NO_MATCH,keyIndex:-1})}(r,o,s,n),c=f.rank,A=f.keyIndex;return c>=i&&e.push({item:r,rank:c,index:u,keyIndex:A}),e},[]).sort(r).map(function(e){return e.item})}function t(e,t,r){if(e=s(e,r),(t=s(t,r)).length>e.length)return b.NO_MATCH;if(e===t)return b.CASE_SENSITIVE_EQUAL;var n=function(e){var t=e.toLowerCase()!==e,r=e.includes("-"),s=e.includes("_");if(!t&&!s&&r)return o.KEBAB;if(!t&&s&&!r)return o.SNAKE;if(t&&!r&&!s){return e[0].toUpperCase()===e[0]?o.PASCAL:o.CAMEL}return o.NO_CASE}(e),a=function(e,t,r){var s=e.toLowerCase().indexOf(t.toLowerCase());switch(r){case o.SNAKE:return"_"===e[s-1];case o.KEBAB:return"-"===e[s-1];case o.PASCAL:case o.CAMEL:return-1!==s&&e[s]===e[s].toUpperCase();default:return!1}}(e,t,n),l=function(e,t,r){var s=null;switch(r){case o.SNAKE:s="_";break;case o.KEBAB:s="-";break;case o.PASCAL:case o.CAMEL:s=/(?=[A-Z])/;break;default:s=null}var n=e.split(s);return t.toLowerCase().split("").reduce(function(e,t,r){var s=n[r];return e&&s&&s[0].toLowerCase()===t},!0)}(e,t,n);return e=e.toLowerCase(),t=t.toLowerCase(),e===t?b.EQUAL+n:0===e.indexOf(t)?b.STARTS_WITH+n:-1!==e.indexOf(" "+t)?b.WORD_STARTS_WITH+n:a?b.STRING_CASE+n:n>0&&l?b.STRING_CASE_ACRONYM+n:-1!==e.indexOf(t)?b.CONTAINS+n:1===t.length?b.NO_MATCH:-1!==function(e){var t="";return e.split(" ").forEach(function(e){e.split("-").forEach(function(e){t+=e.substr(0,1)})}),t}(e).indexOf(t)?b.ACRONYM+n:function(e,t){function r(e,t,r){for(var s=r;s<t.length;s++){if(t[s]===e)return s+1}return-1}var s=0;var n=r(t[0],e,0);if(n<0)return b.NO_MATCH;s=n;for(var a=1;a<t.length;a++){var l=t[a];if(!((s=r(l,e,s))>-1))return b.NO_MATCH}return function(e){var r=s-n-t.length+1;return b.MATCHES+1/r}()}(e,t)}function r(e,t){var r=e.rank,s=e.index,n=e.keyIndex,a=t.rank,l=t.index,b=t.keyIndex;return r===a?n===b?s<l?-1:1:n<b?-1:1:r>a?-1:1}function s(e,t){return e=""+e,t.keepDiacritics||(e=n.clean(e)),e}var n=function(e,t){return t={exports:{}},e(t,t.exports),t.exports}(function(e){!function(t,r){e.exports?e.exports=r():this.Diacritics=r()}(0,function(){for(var e={map:{}},t=[{base:" ",letters:" "},{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"Th",letters:"Þ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐɑ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"ff",letters:"ff"},{base:"fi",letters:"fi"},{base:"fl",letters:"fl"},{base:"ffi",letters:"ffi"},{base:"ffl",letters:"ffl"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nñnⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥлԉ"},{base:"nj",letters:"nj"},{base:"o",letters:"߀oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oe",letters:"Œœ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"ss",letters:"ß"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"th",letters:"þ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],r=0,s=t.length;r<s;r++)for(var n=t[r].letters.split(""),a=0,l=n.length;a<l;a++)e.map[n[a]]=t[r].base;return e.clean=function(t){if(!t||!t.length||t.length<1)return"";for(var r,s="",n=t.split(""),a=0,l=n.length;a<l;a++)s+=(r=n[a])in e.map?e.map[r]:r;return s},e})}),a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},b={CASE_SENSITIVE_EQUAL:9,EQUAL:8,STARTS_WITH:7,WORD_STARTS_WITH:6,STRING_CASE:5,STRING_CASE_ACRONYM:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},o={CAMEL:.8,PASCAL:.6,KEBAB:.4,SNAKE:.2,NO_CASE:0};e.rankings=b,e.caseRankings=o;var u=Object.freeze({default:e,rankings:b}),i=e;return Object.assign(i,Object.keys(u).reduce(function(e,t){return"default"!==t&&(e[t]=u[t]),e},{})),i}); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.matchSorter=t()}(this,function(){"use strict";var e,r=(function(r){!function(e,t){r.exports?r.exports=t():this.Diacritics=t()}(0,function(){for(var l={map:{}},e=[{base:" ",letters:" "},{base:"A",letters:"AⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"},{base:"AA",letters:"Ꜳ"},{base:"AE",letters:"ÆǼǢ"},{base:"AO",letters:"Ꜵ"},{base:"AU",letters:"Ꜷ"},{base:"AV",letters:"ꜸꜺ"},{base:"AY",letters:"Ꜽ"},{base:"B",letters:"BⒷBḂḄḆɃƂƁ"},{base:"C",letters:"CⒸCĆĈĊČÇḈƇȻꜾ"},{base:"D",letters:"DⒹDḊĎḌḐḒḎĐƋƊƉꝹ"},{base:"DZ",letters:"DZDŽ"},{base:"Dz",letters:"DzDž"},{base:"E",letters:"EⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎ"},{base:"F",letters:"FⒻFḞƑꝻ"},{base:"G",letters:"GⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾ"},{base:"H",letters:"HⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"},{base:"I",letters:"IⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"},{base:"J",letters:"JⒿJĴɈ"},{base:"K",letters:"KⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"},{base:"L",letters:"LⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"},{base:"LJ",letters:"LJ"},{base:"Lj",letters:"Lj"},{base:"M",letters:"MⓂMḾṀṂⱮƜ"},{base:"N",letters:"NⓃNǸŃÑṄŇṆŅṊṈȠƝꞐꞤ"},{base:"NJ",letters:"NJ"},{base:"Nj",letters:"Nj"},{base:"O",letters:"OⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"},{base:"OI",letters:"Ƣ"},{base:"OO",letters:"Ꝏ"},{base:"OU",letters:"Ȣ"},{base:"P",letters:"PⓅPṔṖƤⱣꝐꝒꝔ"},{base:"Q",letters:"QⓆQꝖꝘɊ"},{base:"R",letters:"RⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"},{base:"S",letters:"SⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"},{base:"T",letters:"TⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"},{base:"Th",letters:"Þ"},{base:"TZ",letters:"Ꜩ"},{base:"U",letters:"UⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"},{base:"V",letters:"VⓋVṼṾƲꝞɅ"},{base:"VY",letters:"Ꝡ"},{base:"W",letters:"WⓌWẀẂŴẆẄẈⱲ"},{base:"X",letters:"XⓍXẊẌ"},{base:"Y",letters:"YⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"},{base:"Z",letters:"ZⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"},{base:"a",letters:"aⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐɑ"},{base:"aa",letters:"ꜳ"},{base:"ae",letters:"æǽǣ"},{base:"ao",letters:"ꜵ"},{base:"au",letters:"ꜷ"},{base:"av",letters:"ꜹꜻ"},{base:"ay",letters:"ꜽ"},{base:"b",letters:"bⓑbḃḅḇƀƃɓ"},{base:"c",letters:"cⓒcćĉċčçḉƈȼꜿↄ"},{base:"d",letters:"dⓓdḋďḍḑḓḏđƌɖɗꝺ"},{base:"dz",letters:"dzdž"},{base:"e",letters:"eⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇɛǝ"},{base:"f",letters:"fⓕfḟƒꝼ"},{base:"ff",letters:"ff"},{base:"fi",letters:"fi"},{base:"fl",letters:"fl"},{base:"ffi",letters:"ffi"},{base:"ffl",letters:"ffl"},{base:"g",letters:"gⓖgǵĝḡğġǧģǥɠꞡᵹꝿ"},{base:"h",letters:"hⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"},{base:"hv",letters:"ƕ"},{base:"i",letters:"iⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"},{base:"j",letters:"jⓙjĵǰɉ"},{base:"k",letters:"kⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"},{base:"l",letters:"lⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇ"},{base:"lj",letters:"lj"},{base:"m",letters:"mⓜmḿṁṃɱɯ"},{base:"n",letters:"nñnⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥлԉ"},{base:"nj",letters:"nj"},{base:"o",letters:"߀oⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿɔꝋꝍɵ"},{base:"oe",letters:"Œœ"},{base:"oi",letters:"ƣ"},{base:"ou",letters:"ȣ"},{base:"oo",letters:"ꝏ"},{base:"p",letters:"pⓟpṕṗƥᵽꝑꝓꝕ"},{base:"q",letters:"qⓠqɋꝗꝙ"},{base:"r",letters:"rⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"},{base:"s",letters:"sⓢsßśṥŝṡšṧṣṩșşȿꞩꞅẛ"},{base:"ss",letters:"ß"},{base:"t",letters:"tⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"},{base:"th",letters:"þ"},{base:"tz",letters:"ꜩ"},{base:"u",letters:"uⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"},{base:"v",letters:"vⓥvṽṿʋꝟʌ"},{base:"vy",letters:"ꝡ"},{base:"w",letters:"wⓦwẁẃŵẇẅẘẉⱳ"},{base:"x",letters:"xⓧxẋẍ"},{base:"y",letters:"yⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"},{base:"z",letters:"zⓩzźẑżžẓẕƶȥɀⱬꝣ"}],t=0,r=e.length;t<r;t++)for(var s=e[t].letters.split(""),a=0,n=s.length;a<n;a++)l.map[s[a]]=e[t].base;return l.clean=function(e){if(!e||!e.length||e.length<1)return"";for(var t,r="",s=e.split(""),a=0,n=s.length;a<n;a++)r+=(t=s[a])in l.map?l.map[t]:t;return r},l})}(e={exports:{}},e.exports),e.exports),c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},A=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},d={CASE_SENSITIVE_EQUAL:9,EQUAL:8,STARTS_WITH:7,WORD_STARTS_WITH:6,STRING_CASE:5,STRING_CASE_ACRONYM:4,CONTAINS:3,ACRONYM:2,MATCHES:1,NO_MATCH:0},o={CAMEL:.8,PASCAL:.6,KEBAB:.4,SNAKE:.2,NO_CASE:0};function t(e,l){var b=2<arguments.length&&void 0!==arguments[2]?arguments[2]:{};if(!l)return e;var o=b.keys,t=b.threshold,i=void 0===t?d.MATCHES:t;return e.reduce(function(e,t,r){var s=function(e,t,u,f){if(!t)return{rank:S(e,u,f),keyIndex:-1};return(a=e,r=t,r.reduce(function(r,s){var e=function(e,t){"object"===(void 0===t?"undefined":c(t))&&(t=t.key);var r=void 0;return(r="function"==typeof t?t(e):-1!==t.indexOf(".")?t.split(".").reduce(function(e,t){return e?e[t]:null},e):e[t])?[].concat(r):null}(a,s);return e&&e.forEach(function(e){var t;r.push({itemValue:e,attributes:(t=s,"string"==typeof t&&(t={key:t}),A({maxRanking:1/0,minRanking:-1/0},t))})}),r},[])).reduce(function(e,t,r){var s=e.rank,a=e.keyIndex,n=t.itemValue,l=t.attributes,b=S(n,u,f),o=l.minRanking,i=l.maxRanking;return b<o&&b>=d.MATCHES?b=o:i<b&&(b=i),s<b&&(s=b,a=r),{rank:s,keyIndex:a}},{rank:d.NO_MATCH,keyIndex:-1});var a,r}(t,o,l,b),a=s.rank,n=s.keyIndex;return i<=a&&e.push({item:t,rank:a,index:r,keyIndex:n}),e},[]).sort(s).map(function(e){return e.item})}function S(e,t,r){if(e=i(e,r),(t=i(t,r)).length>e.length)return d.NO_MATCH;if(e===t)return d.CASE_SENSITIVE_EQUAL;var s,a,n=function(e){var t=e.toLowerCase()!==e,r=e.includes("-"),s=e.includes("_");if(!t&&!s&&r)return o.KEBAB;if(!t&&s&&!r)return o.SNAKE;if(t&&!r&&!s){var a=e[0].toUpperCase()===e[0];return a?o.PASCAL:o.CAMEL}return o.NO_CASE}(e),l=function(e,t,r){var s=e.toLowerCase().indexOf(t.toLowerCase());switch(r){case o.SNAKE:return"_"===e[s-1];case o.KEBAB:return"-"===e[s-1];case o.PASCAL:case o.CAMEL:return-1!==s&&e[s]===e[s].toUpperCase();default:return!1}}(e,t,n),b=function(e,t,r){var s=null;switch(r){case o.SNAKE:s="_";break;case o.KEBAB:s="-";break;case o.PASCAL:case o.CAMEL:s=/(?=[A-Z])/;break;default:s=null}var a=e.split(s);return t.toLowerCase().split("").reduce(function(e,t,r){var s=a[r];return e&&s&&s[0].toLowerCase()===t},!0)}(e,t,n);return(e=e.toLowerCase())===(t=t.toLowerCase())?d.EQUAL+n:0===e.indexOf(t)?d.STARTS_WITH+n:-1!==e.indexOf(" "+t)?d.WORD_STARTS_WITH+n:l?d.STRING_CASE+n:0<n&&b?d.STRING_CASE_ACRONYM+n:-1!==e.indexOf(t)?d.CONTAINS+n:1===t.length?d.NO_MATCH:-1!==(s=e,a="",s.split(" ").forEach(function(e){e.split("-").forEach(function(e){a+=e.substr(0,1)})}),a).indexOf(t)?d.ACRONYM+n:function(e,t){var r=0;function s(e,t,r){for(var s=r;s<t.length;s++){var a=t[s];if(a===e)return s+1}return-1}var a=s(t[0],e,0);if(a<0)return d.NO_MATCH;r=a;for(var n=1;n<t.length;n++){var l=t[n],b=-1<(r=s(l,e,r));if(!b)return d.NO_MATCH}return o=r-a,i=o-t.length+1,u=d.MATCHES+1/i,u;var o,i,u}(e,t)}function s(e,t){var r=e.rank,s=e.index,a=e.keyIndex,n=t.rank,l=t.index,b=t.keyIndex;return r===n?a===b?s<l?-1:1:a<b?-1:1:n<r?-1:1}function i(e,t){return e=""+e,t.keepDiacritics||(e=r.clean(e)),e}t.rankings=d,t.caseRankings=o;var a=Object.freeze({default:t,rankings:d}),n=t;return Object.assign(n,Object.keys(a).reduce(function(e,t){return"default"!==t&&(e[t]=a[t]),e},{})),n}); | ||
//# sourceMappingURL=match-sorter.umd.min.js.map |
{ | ||
"name": "match-sorter", | ||
"version": "2.2.0", | ||
"version": "2.2.1", | ||
"description": "Simple, expected, and deterministic best-match sorting of an array in JavaScript", | ||
@@ -5,0 +5,0 @@ "main": "dist/match-sorter.cjs.js", |
@@ -32,4 +32,2 @@ <div align="center"> | ||
<a href="https://app.codesponsor.io/link/PKGFLnhDiFvsUA5P4kAXfiPs/kentcdodds/match-sorter" rel="nofollow"><img src="https://app.codesponsor.io/embed/PKGFLnhDiFvsUA5P4kAXfiPs/kentcdodds/match-sorter.svg" style="width: 888px; height: 68px;" alt="Sponsor" /></a> | ||
## The problem | ||
@@ -127,2 +125,12 @@ | ||
// [{name: {first: 'Janice'}}, {name: {first: 'Jen'}}] | ||
const nestedObjList = [ | ||
{name: [{first: 'Janice'}]}, | ||
{name: [{first: 'Fred'}]}, | ||
{name: [{first: 'George'}]}, | ||
{name: [{first: 'Jen'}]}, | ||
] | ||
matchSorter(nestedObjList, 'j', {keys: ['name.0.first']}) | ||
// [{name: {first: 'Janice'}}, {name: {first: 'Jen'}}] | ||
// matchSorter(nestedObjList, 'j', {keys: ['name[0].first']}) does not work | ||
``` | ||
@@ -180,3 +188,3 @@ | ||
* STRING_CASE | ||
* STRING_CASE ACRONYM | ||
* STRING_CASE_ACRONYM | ||
* CONTAINS | ||
@@ -183,0 +191,0 @@ * ACRONYM |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
187735
1916
294