src/cm/media/js/lib/yui/yui_3.10.3/build/dom-style/dom-style-debug.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('dom-style', 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
(function(Y) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    11
/** 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * Add style management functionality to DOM.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 * @module dom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
 * @submodule dom-style
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
 * @for DOM
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
var DOCUMENT_ELEMENT = 'documentElement',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
    DEFAULT_VIEW = 'defaultView',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    OWNER_DOCUMENT = 'ownerDocument',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
    STYLE = 'style',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
    FLOAT = 'float',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
    CSS_FLOAT = 'cssFloat',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
    STYLE_FLOAT = 'styleFloat',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
    TRANSPARENT = 'transparent',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
    GET_COMPUTED_STYLE = 'getComputedStyle',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
    GET_BOUNDING_CLIENT_RECT = 'getBoundingClientRect',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
    WINDOW = Y.config.win,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
    DOCUMENT = Y.config.doc,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
    UNDEFINED = undefined,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
    Y_DOM = Y.DOM,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
    TRANSFORM = 'transform',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
    TRANSFORMORIGIN = 'transformOrigin',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
    VENDOR_TRANSFORM = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
        'WebkitTransform',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
        'MozTransform',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
        'OTransform',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
        'msTransform'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
    ],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
    re_color = /color$/i,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
    re_unit = /width|height|top|left|right|bottom|margin|padding/i;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
Y.Array.each(VENDOR_TRANSFORM, function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
    if (val in DOCUMENT[DOCUMENT_ELEMENT].style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
        TRANSFORM = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
        TRANSFORMORIGIN = val + "Origin";
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
Y.mix(Y_DOM, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
    DEFAULT_UNIT: 'px',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
    CUSTOM_STYLES: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
    },
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
     * Sets a style property for a given element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
     * @method setStyle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
     * @param {HTMLElement} An HTMLElement to apply the style to.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
     * @param {String} att The style property to set. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
     * @param {String|Number} val The value. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
    setStyle: function(node, att, val, style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
        style = style || node.style;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
        var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
        if (style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
            if (val === null || val === '') { // normalize unsetting
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
                val = '';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
            } else if (!isNaN(new Number(val)) && re_unit.test(att)) { // number values may need a unit
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
                val += Y_DOM.DEFAULT_UNIT;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
            if (att in CUSTOM_STYLES) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
                if (CUSTOM_STYLES[att].set) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
                    CUSTOM_STYLES[att].set(node, val, style);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
                    return; // NOTE: return
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
                } else if (typeof CUSTOM_STYLES[att] === 'string') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
                    att = CUSTOM_STYLES[att];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
            } else if (att === '') { // unset inline styles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
                att = 'cssText';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
                val = '';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
            style[att] = val; 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
     * Returns the current style value for the given property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
     * @method getStyle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
     * @param {HTMLElement} An HTMLElement to get the style from.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
     * @param {String} att The style property to get. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
    getStyle: function(node, att, style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
        style = style || node.style;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
        var CUSTOM_STYLES = Y_DOM.CUSTOM_STYLES,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
            val = '';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
        if (style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
            if (att in CUSTOM_STYLES) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
                if (CUSTOM_STYLES[att].get) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
                    return CUSTOM_STYLES[att].get(node, att, style); // NOTE: return
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
                } else if (typeof CUSTOM_STYLES[att] === 'string') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
                    att = CUSTOM_STYLES[att];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
            val = style[att];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
            if (val === '') { // TODO: is empty string sufficient?
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
                val = Y_DOM[GET_COMPUTED_STYLE](node, att);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
     * Sets multiple style properties.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
     * @method setStyles
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
     * @param {HTMLElement} node An HTMLElement to apply the styles to. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
     * @param {Object} hash An object literal of property:value pairs. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    setStyles: function(node, hash) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
        var style = node.style;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
        Y.each(hash, function(v, n) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
            Y_DOM.setStyle(node, n, v, style);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
        }, Y_DOM);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
     * Returns the computed style for the given node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
     * @method getComputedStyle
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
     * @param {HTMLElement} An HTMLElement to get the style from.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     * @param {String} att The style property to get. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     * @return {String} The computed value of the style property. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
    getComputedStyle: function(node, att) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
        var val = '',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
            doc = node[OWNER_DOCUMENT],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
            computed;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
        if (node[STYLE] && doc[DEFAULT_VIEW] && doc[DEFAULT_VIEW][GET_COMPUTED_STYLE]) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
            computed = doc[DEFAULT_VIEW][GET_COMPUTED_STYLE](node, null);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
            if (computed) { // FF may be null in some cases (ticket #2530548)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
                val = computed[att];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
// normalize reserved word float alternatives ("cssFloat" or "styleFloat")
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][CSS_FLOAT] !== UNDEFINED) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
    Y_DOM.CUSTOM_STYLES[FLOAT] = CSS_FLOAT;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
} else if (DOCUMENT[DOCUMENT_ELEMENT][STYLE][STYLE_FLOAT] !== UNDEFINED) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
    Y_DOM.CUSTOM_STYLES[FLOAT] = STYLE_FLOAT;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
// fix opera computedStyle default color unit (convert to rgb)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
if (Y.UA.opera) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
    Y_DOM[GET_COMPUTED_STYLE] = function(node, att) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
        var view = node[OWNER_DOCUMENT][DEFAULT_VIEW],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
            val = view[GET_COMPUTED_STYLE](node, '')[att];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        if (re_color.test(att)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
            val = Y.Color.toRGB(val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   172
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   174
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
// safari converts transparent to rgba(), others use "transparent"
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
if (Y.UA.webkit) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
    Y_DOM[GET_COMPUTED_STYLE] = function(node, att) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        var view = node[OWNER_DOCUMENT][DEFAULT_VIEW],
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
            val = view[GET_COMPUTED_STYLE](node, '')[att];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
        if (val === 'rgba(0, 0, 0, 0)') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
            val = TRANSPARENT; 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   188
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   189
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   190
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   191
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   192
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   193
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
Y.DOM._getAttrOffset = function(node, attr) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
    var val = Y.DOM[GET_COMPUTED_STYLE](node, attr),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
        offsetParent = node.offsetParent,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
        position,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
        parentOffset,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
        offset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
    if (val === 'auto') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
        position = Y.DOM.getStyle(node, 'position');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
        if (position === 'static' || position === 'relative') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
            val = 0;    
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
        } else if (offsetParent && offsetParent[GET_BOUNDING_CLIENT_RECT]) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
            parentOffset = offsetParent[GET_BOUNDING_CLIENT_RECT]()[attr];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
            offset = node[GET_BOUNDING_CLIENT_RECT]()[attr];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
            if (attr === 'left' || attr === 'top') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
                val = offset - parentOffset;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
                val = parentOffset - node[GET_BOUNDING_CLIENT_RECT]()[attr];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   214
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   215
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   216
    return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
Y.DOM._getOffset = function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
    var pos,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
        xy = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    if (node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        pos = Y_DOM.getStyle(node, 'position');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
        xy = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
            parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'left'), 10),
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
            parseInt(Y_DOM[GET_COMPUTED_STYLE](node, 'top'), 10)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
        ];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
        if ( isNaN(xy[0]) ) { // in case of 'auto'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
            xy[0] = parseInt(Y_DOM.getStyle(node, 'left'), 10); // try inline
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
            if ( isNaN(xy[0]) ) { // default to offset value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
                xy[0] = (pos === 'relative') ? 0 : node.offsetLeft || 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
        } 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
        if ( isNaN(xy[1]) ) { // in case of 'auto'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
            xy[1] = parseInt(Y_DOM.getStyle(node, 'top'), 10); // try inline
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
            if ( isNaN(xy[1]) ) { // default to offset value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
                xy[1] = (pos === 'relative') ? 0 : node.offsetTop || 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
        } 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    return xy;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
Y_DOM.CUSTOM_STYLES.transform = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    set: function(node, val, style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
        style[TRANSFORM] = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
    get: function(node, style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
        return Y_DOM[GET_COMPUTED_STYLE](node, TRANSFORM);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
Y_DOM.CUSTOM_STYLES.transformOrigin = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    set: function(node, val, style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        style[TRANSFORMORIGIN] = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
    get: function(node, style) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
        return Y_DOM[GET_COMPUTED_STYLE](node, TRANSFORMORIGIN);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
})(Y);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
}, '3.10.3', {"requires": ["dom-base", "color-base"]});