2 Copyright (c) 2010, Yahoo! Inc. All rights reserved.
3 Code licensed under the BSD License:
4 http://developer.yahoo.com/yui/license.html
8 YUI.add('autocomplete-highlighters-accentfold', function(Y) {
12 * Provides pre-built accent-folding result highlighters for AutoComplete.
16 * These highlighters are similar to the ones provided by the
17 * <code>autocomplete-highlighters</code> module, but use accent-aware
18 * comparisons. For example, "resume" and "résumé" will be considered equal when
19 * using the accent-folding highlighters.
22 * @module autocomplete
23 * @submodule autocomplete-highlighters-accentfold
27 * @class AutoCompleteHighlighters
31 var Highlight = Y.Highlight,
34 Y.mix(Y.namespace('AutoCompleteHighlighters'), {
36 * Accent-folding version of <code>charMatch()</code>.
38 * @method charMatchFold
39 * @param {String} query Query to match
40 * @param {Array} results Results to highlight
41 * @return {Array} Highlighted results
44 charMatchFold: function (query, results) {
45 var queryChars = YArray.unique(query.split(''));
47 return YArray.map(results, function (result) {
48 return Highlight.allFold(result.text, queryChars);
53 * Accent-folding version of <code>phraseMatch()</code>.
55 * @method phraseMatchFold
56 * @param {String} query Query to match
57 * @param {Array} results Results to highlight
58 * @return {Array} Highlighted results
61 phraseMatchFold: function (query, results) {
62 return YArray.map(results, function (result) {
63 return Highlight.allFold(result.text, [query]);
68 * Accent-folding version of <code>startsWith()</code>.
70 * @method startsWithFold
71 * @param {String} query Query to match
72 * @param {Array} results Results to highlight
73 * @return {Array} Highlighted results
76 startsWithFold: function (query, results) {
77 return YArray.map(results, function (result) {
78 return Highlight.allFold(result.text, [query], {
85 * Accent-folding version of <code>wordMatch()</code>.
87 * @method wordMatchFold
88 * @param {String} query Query to match
89 * @param {Array} results Results to highlight
90 * @return {Array} Highlighted results
93 wordMatchFold: function (query, results) {
94 return YArray.map(results, function (result) {
95 return Highlight.wordsFold(result.text, query);
101 }, '3.3.0' ,{requires:['array-extras', 'highlight-accentfold']});