src/cm/media/js/lib/yui/yui3-3.15.0/build/classnamemanager/classnamemanager-debug.js
author gibus
Mon, 10 Mar 2014 15:19:48 +0100
changeset 602 e16a97fb364a
permissions -rw-r--r--
Use YUI 3.15
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
602
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     1
YUI.add('classnamemanager', function (Y, NAME) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     2
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     3
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     4
* Contains a singleton (ClassNameManager) that enables easy creation and caching of
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
* prefixed class names.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
* @module classnamemanager
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
*/
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
 * A singleton class providing:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
 * <ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
 *    <li>Easy creation of prefixed class names</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
 *    <li>Caching of previously created class names for improved performance.</li>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * </ul>
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 * @class ClassNameManager
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
// String constants
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
var CLASS_NAME_PREFIX = 'classNamePrefix',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
	CLASS_NAME_DELIMITER = 'classNameDelimiter',
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
    CONFIG = Y.config;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
// Global config
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
 * Configuration property indicating the prefix for all CSS class names in this YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
 * @property classNamePrefix
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
 * @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
 * @default "yui"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui3';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
 * Configuration property indicating the delimiter used to compose all CSS class names in
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
 * this YUI instance.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
 * @property classNameDelimiter
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
 * @type {String}
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
 * @default "-"
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
 * @static
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
CONFIG[CLASS_NAME_DELIMITER] = CONFIG[CLASS_NAME_DELIMITER] || '-';
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
Y.ClassNameManager = function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
	var sPrefix    = CONFIG[CLASS_NAME_PREFIX],
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
		sDelimiter = CONFIG[CLASS_NAME_DELIMITER];
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
	return {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
		/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
		 * Returns a class name prefixed with the the value of the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
		 * <code>Y.config.classNamePrefix</code> attribute + the provided strings.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
		 * Uses the <code>Y.config.classNameDelimiter</code> attribute to delimit the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    60
		 * provided strings. E.g. Y.ClassNameManager.getClassName('foo','bar'); // yui-foo-bar
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    61
		 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    62
		 * @method getClassName
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    63
		 * @param {String} [classnameSection*] one or more classname sections to be joined
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    64
		 * @param {Boolean} skipPrefix If set to true, the classname will not be prefixed with the default Y.config.classNameDelimiter value.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    65
		 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    66
		getClassName: Y.cached(function () {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    67
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    68
            var args = Y.Array(arguments);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    69
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    70
            if (args[args.length-1] !== true) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    71
                args.unshift(sPrefix);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    72
            } else {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    73
                args.pop();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    74
            }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    75
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    76
			return args.join(sDelimiter);
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    77
		})
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    78
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    79
	};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    80
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    81
}();
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    82
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    83
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    84
}, '@VERSION@', {"requires": ["yui-base"]});