3
Copyright 2011 Yahoo! Inc. All rights reserved.
4
Licensed under the BSD License.
5
http://yuilibrary.com/license/
7
YUI.add('autocomplete-highlighters-accentfold', function(Y) {
11
* Provides pre-built accent-folding result highlighters for AutoComplete.
15
* These highlighters are similar to the ones provided by the
16
* <code>autocomplete-highlighters</code> module, but use accent-aware
17
* comparisons. For example, "resume" and "résumé" will be considered equal when
18
* using the accent-folding highlighters.
21
* @module autocomplete
22
* @submodule autocomplete-highlighters-accentfold
26
* @class AutoCompleteHighlighters
30
var Highlight = Y.Highlight,
33
Y.mix(Y.namespace('AutoCompleteHighlighters'), {
35
* Accent-folding version of <code>charMatch()</code>.
37
* @method charMatchFold
38
* @param {String} query Query to match
39
* @param {Array} results Results to highlight
40
* @return {Array} Highlighted results
43
charMatchFold: function (query, results) {
44
var queryChars = YArray.unique(query.split(''));
46
return YArray.map(results, function (result) {
47
return Highlight.allFold(result.text, queryChars);
52
* Accent-folding version of <code>phraseMatch()</code>.
54
* @method phraseMatchFold
55
* @param {String} query Query to match
56
* @param {Array} results Results to highlight
57
* @return {Array} Highlighted results
60
phraseMatchFold: function (query, results) {
61
return YArray.map(results, function (result) {
62
return Highlight.allFold(result.text, [query]);
67
* Accent-folding version of <code>startsWith()</code>.
69
* @method startsWithFold
70
* @param {String} query Query to match
71
* @param {Array} results Results to highlight
72
* @return {Array} Highlighted results
75
startsWithFold: function (query, results) {
76
return YArray.map(results, function (result) {
77
return Highlight.allFold(result.text, [query], {
84
* Accent-folding version of <code>subWordMatch()</code>.
86
* @method subWordMatchFold
87
* @param {String} query Query to match
88
* @param {Array} results Results to highlight
89
* @return {Array} Highlighted results
92
subWordMatchFold: function (query, results) {
93
var queryWords = Y.Text.WordBreak.getUniqueWords(query);
95
return YArray.map(results, function (result) {
96
return Highlight.allFold(result.text, queryWords);
101
* Accent-folding version of <code>wordMatch()</code>.
103
* @method wordMatchFold
104
* @param {String} query Query to match
105
* @param {Array} results Results to highlight
106
* @return {Array} Highlighted results
109
wordMatchFold: function (query, results) {
110
return YArray.map(results, function (result) {
111
return Highlight.wordsFold(result.text, query);
117
}, '3.4.1' ,{requires:['array-extras', 'highlight-accentfold']});