NOBUG: Fixed file access permissions
[moodle.git] / lib / yuilib / 3.13.0 / classnamemanager / classnamemanager-debug.js
blob862c8758cbb6fdd3382a2362c05c09b7b9448694
1 /*
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/
6 */
8 YUI.add('classnamemanager', function (Y, NAME) {
10 /**
11 * Contains a singleton (ClassNameManager) that enables easy creation and caching of
12 * prefixed class names.
13 * @module classnamemanager
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  */
28 // String constants
29 var CLASS_NAME_PREFIX = 'classNamePrefix',
30         CLASS_NAME_DELIMITER = 'classNameDelimiter',
31     CONFIG = Y.config;
33 // Global config
35 /**
36  * Configuration property indicating the prefix for all CSS class names in this YUI instance.
37  *
38  * @property classNamePrefix
39  * @type {String}
40  * @default "yui"
41  * @static
42  */
43 CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui3';
45 /**
46  * Configuration property indicating the delimiter used to compose all CSS class names in
47  * this YUI instance.
48  *
49  * @property classNameDelimiter
50  * @type {String}
51  * @default "-"
52  * @static
53  */
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];
61         return {
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}+ 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.
72                  */
73                 getClassName: Y.cached(function () {
75             var args = Y.Array(arguments);
77             if (args[args.length-1] !== true) {
78                 args.unshift(sPrefix);
79             } else {
80                 args.pop();
81             }
83                         return args.join(sDelimiter);
84                 })
86         };
88 }();
91 }, '3.13.0', {"requires": ["yui-base"]});