src/cm/media/js/lib/yui/yui_3.10.3/build/widget-skin/widget-skin.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('widget-skin', function (Y, NAME) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     9
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    10
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
 * Provides skin related utlility methods.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @submodule widget-skin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
var BOUNDING_BOX = "boundingBox",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
    CONTENT_BOX = "contentBox",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
    SKIN = "skin",
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    _getClassName = Y.ClassNameManager.getClassName;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 * Returns the name of the skin that's currently applied to the widget.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
 * Searches up the Widget's ancestor axis for, by default, a class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
 * yui3-skin-(name), and returns the (name) portion. Otherwise, returns null.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 * This is only really useful after the widget's DOM structure is in the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * document, either by render or by progressive enhancement.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 * @method getSkinName
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
 * @for Widget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
 * @param {String} [skinPrefix] The prefix which the implementation uses for the skin
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
 * ("yui3-skin-" is the default).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
 * NOTE: skinPrefix will be used as part of a regular expression:
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
 *     new RegExp('\\b' + skinPrefix + '(\\S+)')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
 * Although an unlikely use case, literal characters which may result in an invalid
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
 * regular expression should be escaped.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
 *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
 * @return {String} The name of the skin, or null, if a matching skin class is not found.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
Y.Widget.prototype.getSkinName = function (skinPrefix) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
    var root = this.get( CONTENT_BOX ) || this.get( BOUNDING_BOX ),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
        match,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        search;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    skinPrefix = skinPrefix || _getClassName(SKIN, "");
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
    search = new RegExp( '\\b' + skinPrefix + '(\\S+)' );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    if ( root ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
        root.ancestor( function ( node ) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
            match = node.get( 'className' ).match( search );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
            return match;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
        } );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
    return ( match ) ? match[1] : null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
}, '3.10.3', {"requires": ["widget-base"]});