2 YUI 3.13.0 (build 508226d)
3 Copyright 2013 Yahoo! Inc. All rights reserved.
4 Licensed under the BSD License.
5 http://yuilibrary.com/license/
8 YUI.add('classnamemanager', function (Y, NAME) {
11 * Contains a singleton (ClassNameManager) that enables easy creation and caching of
12 * prefixed class names.
13 * @module classnamemanager
17 * A singleton class providing:
20 * <li>Easy creation of prefixed class names</li>
21 * <li>Caching of previously created class names for improved performance.</li>
24 * @class ClassNameManager
29 var CLASS_NAME_PREFIX = 'classNamePrefix',
30 CLASS_NAME_DELIMITER = 'classNameDelimiter',
36 * Configuration property indicating the prefix for all CSS class names in this YUI instance.
38 * @property classNamePrefix
43 CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui3';
46 * Configuration property indicating the delimiter used to compose all CSS class names in
49 * @property classNameDelimiter
54 CONFIG[CLASS_NAME_DELIMITER] = CONFIG[CLASS_NAME_DELIMITER] || '-';
56 Y.ClassNameManager = function () {
58 var sPrefix = CONFIG[CLASS_NAME_PREFIX],
59 sDelimiter = CONFIG[CLASS_NAME_DELIMITER];
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
69 * @method getClassName
70 * @param {String}+ classnameSection one or more classname sections to be joined
71 * @param {Boolean} skipPrefix If set to true, the classname will not be prefixed with the default Y.config.classNameDelimiter value.
73 getClassName: Y.cached(function () {
75 var args = Y.Array(arguments);
77 if (args[args.length-1] !== true) {
78 args.unshift(sPrefix);
83 return args.join(sDelimiter);
91 }, '3.13.0', {"requires": ["yui-base"]});