[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/lib/yuilib/3.17.2/classnamemanager/ -> classnamemanager-debug.js (source)

   1  /*
   2  YUI 3.17.2 (build 9c3c78e)
   3  Copyright 2014 Yahoo! Inc. All rights reserved.
   4  Licensed under the BSD License.
   5  http://yuilibrary.com/license/
   6  */
   7  
   8  YUI.add('classnamemanager', function (Y, NAME) {
   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 classNamePrefix
  39   * @type {String}
  40   * @default "yui"
  41   * @static
  42   */
  43  CONFIG[CLASS_NAME_PREFIX] = CONFIG[CLASS_NAME_PREFIX] || 'yui3';
  44  
  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] || '-';
  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 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 () {
  74  
  75              var args = Y.Array(arguments);
  76  
  77              if (args[args.length-1] !== true) {
  78                  args.unshift(sPrefix);
  79              } else {
  80                  args.pop();
  81              }
  82  
  83              return args.join(sDelimiter);
  84          })
  85  
  86      };
  87  
  88  }();
  89  
  90  
  91  }, '3.17.2', {"requires": ["yui-base"]});


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1