src/cm/media/js/lib/yui/yui3-3.15.0/build/widget-skin/widget-skin-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('widget-skin', 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
 * Provides skin related utlility methods.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     5
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     6
 * @module widget
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     7
 * @submodule widget-skin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     8
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
     9
var BOUNDING_BOX = "boundingBox",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    10
    CONTENT_BOX = "contentBox",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    11
    SKIN = "skin",
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    12
    _getClassName = Y.ClassNameManager.getClassName;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    13
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    14
/**
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    15
 * Returns the name of the skin that's currently applied to the widget.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    16
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    17
 * Searches up the Widget's ancestor axis for, by default, a class
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    18
 * yui3-skin-(name), and returns the (name) portion. Otherwise, returns null.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    19
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    20
 * This is only really useful after the widget's DOM structure is in the
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    21
 * document, either by render or by progressive enhancement.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    22
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    23
 * @method getSkinName
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    24
 * @for Widget
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    25
 * @param {String} [skinPrefix] The prefix which the implementation uses for the skin
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    26
 * ("yui3-skin-" is the default).
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    27
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    28
 * NOTE: skinPrefix will be used as part of a regular expression:
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    29
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    30
 *     new RegExp('\\b' + skinPrefix + '(\\S+)')
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    31
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    32
 * Although an unlikely use case, literal characters which may result in an invalid
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    33
 * regular expression should be escaped.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    34
 *
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    35
 * @return {String} The name of the skin, or null, if a matching skin class is not found.
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    36
 */
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    37
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    38
Y.Widget.prototype.getSkinName = function (skinPrefix) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    39
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    40
    var root = this.get( CONTENT_BOX ) || this.get( BOUNDING_BOX ),
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    41
        match,
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    42
        search;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    43
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    44
    skinPrefix = skinPrefix || _getClassName(SKIN, "");
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    45
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    46
    search = new RegExp( '\\b' + skinPrefix + '(\\S+)' );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    47
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    48
    if ( root ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    49
        root.ancestor( function ( node ) {
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    50
            match = node.get( 'className' ).match( search );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    51
            return match;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    52
        } );
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    53
    }
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    54
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    55
    return ( match ) ? match[1] : null;
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    56
};
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    57
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    58
e16a97fb364a Use YUI 3.15
gibus
parents:
diff changeset
    59
}, '@VERSION@', {"requires": ["widget-base"]});