src/cm/media/js/lib/yui/yui3.0.0/build/classnamemanager/classnamemanager-debug.js
changeset 0 40c8f766c9b8
equal deleted inserted replaced
-1:000000000000 0:40c8f766c9b8
       
     1 /*
       
     2 Copyright (c) 2009, Yahoo! Inc. All rights reserved.
       
     3 Code licensed under the BSD License:
       
     4 http://developer.yahoo.net/yui/license.txt
       
     5 version: 3.0.0
       
     6 build: 1549
       
     7 */
       
     8 YUI.add('classnamemanager', function(Y) {
       
     9 
       
    10 /**
       
    11 * Contains a singleton (ClassNameManager) that enables easy creation and caching of 
       
    12 * prefixed class names.
       
    13 * @module classnamemanager
       
    14 */
       
    15 
       
    16 /**
       
    17  * A singleton class providing: 
       
    18  * 
       
    19  * <ul>
       
    20  *    <li>Easy creation of prefixed class names</li>
       
    21  *    <li>Caching of previously created class names for improved performance.</li>
       
    22  * </ul>
       
    23  * 
       
    24  * @class ClassNameManager
       
    25  * @static 
       
    26  */
       
    27 
       
    28 // String constants
       
    29 var CLASS_NAME_PREFIX = 'classNamePrefix',
       
    30 	CLASS_NAME_DELIMITER = 'classNameDelimiter',
       
    31     CONFIG = Y.config;
       
    32 
       
    33 // Global config
       
    34 
       
    35 /**
       
    36  * Configuration property indicating the prefix for all CSS class names in this YUI instance.
       
    37  *
       
    38  * @property Y.config.classNamePrefix
       
    39  * @type {String}
       
    40  * @default "yui"
       
    41  * @static
       
    42  */
       
    43 CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui';
       
    44 
       
    45 /**
       
    46  * Configuration property indicating the delimiter used to compose all CSS class names in
       
    47  * this YUI instance.
       
    48  *
       
    49  * @property Y.config.classNameDelimiter
       
    50  * @type {String}
       
    51  * @default "-"
       
    52  * @static
       
    53  */
       
    54 CONFIG[CLASS_NAME_DELIMITER] = CONFIG[CLASS_NAME_DELIMITER] || '-';
       
    55 
       
    56 Y.ClassNameManager = function () {
       
    57 
       
    58 	var sPrefix    = CONFIG[CLASS_NAME_PREFIX],
       
    59 		sDelimiter = CONFIG[CLASS_NAME_DELIMITER];
       
    60 
       
    61 	return {
       
    62 
       
    63 		/**
       
    64 		 * Returns a class name prefixed with the the value of the 
       
    65 		 * <code>Y.config.classNamePrefix</code> attribute + the provided strings.
       
    66 		 * Uses the <code>Y.config.classNameDelimiter</code> attribute to delimit the 
       
    67 		 * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar
       
    68 		 * 
       
    69 		 * @method getClassName
       
    70 		 * @param {String}+ one or more classname bits to be joined and prefixed
       
    71 		 */
       
    72 		getClassName: Y.cached(function (c, x) {
       
    73 
       
    74 			var sClass = sPrefix + sDelimiter + 
       
    75                    // ((x) ? Y.Array(arguments, 0, true).join(sDelimiter) : c);
       
    76                    ((x) ? Array.prototype.join.call(arguments, sDelimiter) : c);
       
    77 
       
    78 			return sClass.replace(/\s/g, '');
       
    79 
       
    80 		})
       
    81 
       
    82 	};
       
    83 
       
    84 }();
       
    85 
       
    86 
       
    87 }, '3.0.0' );