3
Copyright 2012 Yahoo! Inc. All rights reserved.
4
Licensed under the BSD License.
5
http://yuilibrary.com/license/
7
YUI.add('autocomplete-highlighters-accentfold', function(Y) {
10
Provides pre-built accent-folding result highlighters for AutoComplete.
12
These highlighters are similar to the ones provided by the `autocomplete-
13
highlighters` module, but use accent-aware comparisons. For example, "resume"
14
and "résumé" will be considered equal when using the accent-folding
18
@submodule autocomplete-highlighters-accentfold
22
@class AutoCompleteHighlighters
26
var Highlight = Y.Highlight,
29
Y.mix(Y.namespace('AutoCompleteHighlighters'), {
31
Accent-folding version of `charMatch()`.
34
@param {String} query Query to match
35
@param {Array} results Results to highlight
36
@return {Array} Highlighted results
39
charMatchFold: function (query, results) {
40
var queryChars = YArray.unique(query.split(''));
42
return YArray.map(results, function (result) {
43
return Highlight.allFold(result.text, queryChars);
48
Accent-folding version of `phraseMatch()`.
50
@method phraseMatchFold
51
@param {String} query Query to match
52
@param {Array} results Results to highlight
53
@return {Array} Highlighted results
56
phraseMatchFold: function (query, results) {
57
return YArray.map(results, function (result) {
58
return Highlight.allFold(result.text, [query]);
63
Accent-folding version of `startsWith()`.
65
@method startsWithFold
66
@param {String} query Query to match
67
@param {Array} results Results to highlight
68
@return {Array} Highlighted results
71
startsWithFold: function (query, results) {
72
return YArray.map(results, function (result) {
73
return Highlight.allFold(result.text, [query], {
80
Accent-folding version of `subWordMatch()`.
82
@method subWordMatchFold
83
@param {String} query Query to match
84
@param {Array} results Results to highlight
85
@return {Array} Highlighted results
88
subWordMatchFold: function (query, results) {
89
var queryWords = Y.Text.WordBreak.getUniqueWords(query);
91
return YArray.map(results, function (result) {
92
return Highlight.allFold(result.text, queryWords);
97
Accent-folding version of `wordMatch()`.
100
@param {String} query Query to match
101
@param {Array} results Results to highlight
102
@return {Array} Highlighted results
105
wordMatchFold: function (query, results) {
106
return YArray.map(results, function (result) {
107
return Highlight.wordsFold(result.text, query);
113
}, '3.5.1' ,{requires:['array-extras', 'highlight-accentfold']});