src/cm/media/js/lib/yui/yui3-3.15.0/build/autocomplete-highlighters-accentfold/autocomplete-highlighters-accentfold.js
changeset 602 e16a97fb364a
equal deleted inserted replaced
601:d334a616c023 602:e16a97fb364a
       
     1 YUI.add('autocomplete-highlighters-accentfold', function (Y, NAME) {
       
     2 
       
     3 /**
       
     4 Provides pre-built accent-folding result highlighters for AutoComplete.
       
     5 
       
     6 These highlighters are similar to the ones provided by the `autocomplete-
       
     7 highlighters` module, but use accent-aware comparisons. For example, "resume"
       
     8 and "résumé" will be considered equal when using the accent-folding
       
     9 highlighters.
       
    10 
       
    11 @module autocomplete
       
    12 @submodule autocomplete-highlighters-accentfold
       
    13 **/
       
    14 
       
    15 /**
       
    16 @class AutoCompleteHighlighters
       
    17 @static
       
    18 **/
       
    19 
       
    20 var Highlight = Y.Highlight,
       
    21     YArray    = Y.Array;
       
    22 
       
    23 Y.mix(Y.namespace('AutoCompleteHighlighters'), {
       
    24     /**
       
    25     Accent-folding version of `charMatch()`.
       
    26 
       
    27     @method charMatchFold
       
    28     @param {String} query Query to match
       
    29     @param {Array} results Results to highlight
       
    30     @return {Array} Highlighted results
       
    31     @static
       
    32     **/
       
    33     charMatchFold: function (query, results) {
       
    34         var queryChars = YArray.unique(query.split(''));
       
    35 
       
    36         return YArray.map(results, function (result) {
       
    37             return Highlight.allFold(result.text, queryChars);
       
    38         });
       
    39     },
       
    40 
       
    41     /**
       
    42     Accent-folding version of `phraseMatch()`.
       
    43 
       
    44     @method phraseMatchFold
       
    45     @param {String} query Query to match
       
    46     @param {Array} results Results to highlight
       
    47     @return {Array} Highlighted results
       
    48     @static
       
    49     **/
       
    50     phraseMatchFold: function (query, results) {
       
    51         return YArray.map(results, function (result) {
       
    52             return Highlight.allFold(result.text, [query]);
       
    53         });
       
    54     },
       
    55 
       
    56     /**
       
    57     Accent-folding version of `startsWith()`.
       
    58 
       
    59     @method startsWithFold
       
    60     @param {String} query Query to match
       
    61     @param {Array} results Results to highlight
       
    62     @return {Array} Highlighted results
       
    63     @static
       
    64     **/
       
    65     startsWithFold: function (query, results) {
       
    66         return YArray.map(results, function (result) {
       
    67             return Highlight.allFold(result.text, [query], {
       
    68                 startsWith: true
       
    69             });
       
    70         });
       
    71     },
       
    72 
       
    73     /**
       
    74     Accent-folding version of `subWordMatch()`.
       
    75 
       
    76     @method subWordMatchFold
       
    77     @param {String} query Query to match
       
    78     @param {Array} results Results to highlight
       
    79     @return {Array} Highlighted results
       
    80     @static
       
    81     **/
       
    82     subWordMatchFold: function (query, results) {
       
    83         var queryWords = Y.Text.WordBreak.getUniqueWords(query);
       
    84 
       
    85         return YArray.map(results, function (result) {
       
    86             return Highlight.allFold(result.text, queryWords);
       
    87         });
       
    88     },
       
    89 
       
    90     /**
       
    91     Accent-folding version of `wordMatch()`.
       
    92 
       
    93     @method wordMatchFold
       
    94     @param {String} query Query to match
       
    95     @param {Array} results Results to highlight
       
    96     @return {Array} Highlighted results
       
    97     @static
       
    98     **/
       
    99     wordMatchFold: function (query, results) {
       
   100         return YArray.map(results, function (result) {
       
   101             return Highlight.wordsFold(result.text, query);
       
   102         });
       
   103     }
       
   104 });
       
   105 
       
   106 
       
   107 }, '@VERSION@', {"requires": ["array-extras", "highlight-accentfold"]});