src/cm/media/js/lib/yui/yui_3.10.3/build/node-base/node-base.js
author Yves-Marie Haussonne <ymh.work+github@gmail.com>
Fri, 09 May 2014 18:35:26 +0200
changeset 656 a84519031134
parent 525 89ef5ed3c48b
permissions -rw-r--r--
add link to "privacy policy" in the header test
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('node-base', 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
 * @module node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
 * @submodule node-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
var methods = [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
 * Determines whether each node has the given className.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
 * @method hasClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
 * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
 * @param {String} className the class name to search for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
 * @return {Boolean} Whether or not the element has the specified class
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
 'hasClass',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
 * Adds a class name to each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
 * @method addClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
 * @param {String} className the class name to add to the node's class attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
 'addClass',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
 * Removes a class name from each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
 * @method removeClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
 * @param {String} className the class name to remove from the node's class attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
 'removeClass',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
 * Replace a class with another class for each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
 * If no oldClassName is present, the newClassName is simply added.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
 * @method replaceClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
 * @param {String} oldClassName the class name to be replaced
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
 * @param {String} newClassName the class name that will be replacing the old class name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
 'replaceClass',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
 * If the className exists on the node it is removed, if it doesn't exist it is added.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
 * @method toggleClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
 * @param {String} className the class name to be toggled
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
 * @param {Boolean} force Option to force adding or removing the class.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
 'toggleClass'
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
Y.Node.importMethod(Y.DOM, methods);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
 * Determines whether each node has the given className.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
 * @method hasClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
 * @see Node.hasClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
 * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
 * @param {String} className the class name to search for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
 * @return {Array} An array of booleans for each node bound to the NodeList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
 * Adds a class name to each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
 * @method addClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
 * @see Node.addClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
 * @param {String} className the class name to add to the node's class attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
 * @chainable
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
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
 * Removes a class name from each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
 * @method removeClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
 * @see Node.removeClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
 * @param {String} className the class name to remove from the node's class attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
 * Replace a class with another class for each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
 * If no oldClassName is present, the newClassName is simply added.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
 * @method replaceClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
 * @see Node.replaceClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
 * @param {String} oldClassName the class name to be replaced
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
 * @param {String} newClassName the class name that will be replacing the old class name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
 * If the className exists on the node it is removed, if it doesn't exist it is added.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
 * @method toggleClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
 * @see Node.toggleClass
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
 * @param {String} className the class name to be toggled
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
Y.NodeList.importMethod(Y.Node.prototype, methods);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
 * @module node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
 * @submodule node-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
var Y_Node = Y.Node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
    Y_DOM = Y.DOM;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
 * Returns a new dom node using the provided markup string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
 * @method create
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
 * @param {String} html The markup used to create the element
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   118
 * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   119
 * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   120
 * @param {HTMLDocument} doc An optional document context
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   121
 * @return {Node} A Node instance bound to a DOM node or fragment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   122
 * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   123
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   124
Y_Node.create = function(html, doc) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   125
    if (doc && doc._node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   126
        doc = doc._node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   127
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   128
    return Y.one(Y_DOM.create(html, doc));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   129
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   130
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   131
Y.mix(Y_Node.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   132
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   133
     * Creates a new Node using the provided markup string.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   134
     * @method create
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   135
     * @param {String} html The markup used to create the element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   136
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   137
     * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   138
     * @param {HTMLDocument} doc An optional document context
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   139
     * @return {Node} A Node instance bound to a DOM node or fragment
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   140
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   141
    create: Y_Node.create,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   142
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   143
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   144
     * Inserts the content before the reference node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   145
     * @method insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   146
     * @param {String | Node | HTMLElement | NodeList | HTMLCollection} content The content to insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   147
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   148
     * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   149
     * @param {Int | Node | HTMLElement | String} where The position to insert at.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   150
     * Possible "where" arguments
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   151
     * <dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   152
     * <dt>Y.Node</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   153
     * <dd>The Node to insert before</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   154
     * <dt>HTMLElement</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   155
     * <dd>The element to insert before</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   156
     * <dt>Int</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   157
     * <dd>The index of the child element to insert before</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   158
     * <dt>"replace"</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   159
     * <dd>Replaces the existing HTML</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   160
     * <dt>"before"</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   161
     * <dd>Inserts before the existing HTML</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   162
     * <dt>"before"</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   163
     * <dd>Inserts content before the node</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   164
     * <dt>"after"</dt>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   165
     * <dd>Inserts content after the node</dd>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   166
     * </dl>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   167
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   168
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   169
    insert: function(content, where) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   170
        this._insert(content, where);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   171
        return this;
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
    _insert: function(content, where) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   175
        var node = this._node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   176
            ret = null;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   177
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   178
        if (typeof where == 'number') { // allow index
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   179
            where = this._node.childNodes[where];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   180
        } else if (where && where._node) { // Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   181
            where = where._node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   182
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   183
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   184
        if (content && typeof content != 'string') { // allow Node or NodeList/Array instances
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   185
            content = content._node || content._nodes || content;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   186
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   187
        ret = Y_DOM.addHTML(node, content, where);
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 ret;
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
     * Inserts the content as the firstChild of the node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   194
     * @method prepend
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   195
     * @param {String | Node | HTMLElement} content The content to insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   196
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   197
     * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   198
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   199
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   200
    prepend: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   201
        return this.insert(content, 0);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   202
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   203
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   204
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   205
     * Inserts the content as the lastChild of the node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   206
     * @method append
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   207
     * @param {String | Node | HTMLElement} content The content to insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   208
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   209
     * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   210
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   211
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   212
    append: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   213
        return this.insert(content, null);
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
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   217
     * @method appendChild
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   218
     * @param {String | HTMLElement | Node} node Node to be appended
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   219
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   220
     * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   221
     * @return {Node} The appended node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   222
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   223
    appendChild: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   224
        return Y_Node.scrubVal(this._insert(node));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   225
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   226
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   227
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   228
     * @method insertBefore
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   229
     * @param {String | HTMLElement | Node} newNode Node to be appended
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   230
     * @param {HTMLElement | Node} refNode Node to be inserted before
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   231
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   232
     * to escape html content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   233
     * @return {Node} The inserted node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   234
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   235
    insertBefore: function(newNode, refNode) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   236
        return Y.Node.scrubVal(this._insert(newNode, refNode));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   237
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   238
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   239
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   240
     * Appends the node to the given node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   241
     * @method appendTo
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   242
     * @param {Node | HTMLElement} node The node to append to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   243
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   244
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   245
    appendTo: function(node) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   246
        Y.one(node).append(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   247
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   248
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   249
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   250
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   251
     * Replaces the node's current content with the content.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   252
     * Note that this passes to innerHTML and is not escaped.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   253
     * Use <a href="../classes/Escape.html#method_html">`Y.Escape.html()`</a>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   254
     * to escape html content or `set('text')` to add as text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   255
     * @method setContent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   256
     * @deprecated Use setHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   257
     * @param {String | Node | HTMLElement | NodeList | HTMLCollection} content The content to insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   258
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   259
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   260
    setContent: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   261
        this._insert(content, 'replace');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   262
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   263
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   264
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   265
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   266
     * Returns the node's current content (e.g. innerHTML)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   267
     * @method getContent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   268
     * @deprecated Use getHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   269
     * @return {String} The current content
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   270
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   271
    getContent: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   272
        return this.get('innerHTML');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   273
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   274
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   275
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   276
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   277
 * Replaces the node's current html content with the content provided.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   278
 * Note that this passes to innerHTML and is not escaped.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   279
 * Use `Y.Escape.html()` to escape HTML, or `set('text')` to add as text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   280
 * @method setHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   281
 * @param {String | HTML | Node | HTMLElement | NodeList | HTMLCollection} content The content to insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   282
 * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   283
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   284
Y.Node.prototype.setHTML = Y.Node.prototype.setContent;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   285
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   286
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   287
 * Returns the node's current html content (e.g. innerHTML)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   288
 * @method getHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   289
 * @return {String} The html content
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   290
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   291
Y.Node.prototype.getHTML = Y.Node.prototype.getContent;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   292
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   293
Y.NodeList.importMethod(Y.Node.prototype, [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   294
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   295
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   296
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   297
     * @method append
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   298
     * @see Node.append
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   299
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   300
    'append',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   301
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   302
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   303
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   304
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   305
     * @method insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   306
     * @see Node.insert
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   307
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   308
    'insert',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   309
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   310
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   311
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   312
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   313
     * @method appendChild
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   314
     * @see Node.appendChild
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   315
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   316
    'appendChild',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   317
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   318
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   319
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   320
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   321
     * @method insertBefore
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   322
     * @see Node.insertBefore
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   323
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   324
    'insertBefore',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   325
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   326
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   327
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   328
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   329
     * @method prepend
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   330
     * @see Node.prepend
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   331
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   332
    'prepend',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   333
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   334
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   335
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   336
     * Note that this passes to innerHTML and is not escaped.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   337
     * Use `Y.Escape.html()` to escape HTML, or `set('text')` to add as text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   338
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   339
     * @method setContent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   340
     * @deprecated Use setHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   341
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   342
    'setContent',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   343
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   344
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   345
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   346
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   347
     * @method getContent
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   348
     * @deprecated Use getHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   349
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   350
    'getContent',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   351
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   352
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   353
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   354
     * Note that this passes to innerHTML and is not escaped.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   355
     * Use `Y.Escape.html()` to escape HTML, or `set('text')` to add as text.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   356
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   357
     * @method setHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   358
     * @see Node.setHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   359
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   360
    'setHTML',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   361
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   362
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   363
     * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   364
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   365
     * @method getHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   366
     * @see Node.getHTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   367
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   368
    'getHTML'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   369
]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   370
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   371
 * @module node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   372
 * @submodule node-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   373
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   374
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   375
var Y_Node = Y.Node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   376
    Y_DOM = Y.DOM;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   377
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   378
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   379
 * Static collection of configuration attributes for special handling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   380
 * @property ATTRS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   381
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   382
 * @type object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   383
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   384
Y_Node.ATTRS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   385
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   386
     * Allows for getting and setting the text of an element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   387
     * Formatting is preserved and special characters are treated literally.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   388
     * @config text
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   389
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   390
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   391
    text: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   392
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   393
            return Y_DOM.getText(this._node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   394
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   395
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   396
        setter: function(content) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   397
            Y_DOM.setText(this._node, content);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   398
            return content;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   399
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   400
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   401
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   402
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   403
     * Allows for getting and setting the text of an element.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   404
     * Formatting is preserved and special characters are treated literally.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   405
     * @config for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   406
     * @type String
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   407
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   408
    'for': {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   409
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   410
            return Y_DOM.getAttribute(this._node, 'for');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   411
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   412
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   413
        setter: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   414
            Y_DOM.setAttribute(this._node, 'for', val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   415
            return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   416
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   417
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   418
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   419
    'options': {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   420
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   421
            return this._node.getElementsByTagName('option');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   422
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   423
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   424
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   425
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   426
     * Returns a NodeList instance of all HTMLElement children.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   427
     * @readOnly
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   428
     * @config children
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   429
     * @type NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   430
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   431
    'children': {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   432
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   433
            var node = this._node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   434
                children = node.children,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   435
                childNodes, i, len;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   436
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   437
            if (!children) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   438
                childNodes = node.childNodes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   439
                children = [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   440
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   441
                for (i = 0, len = childNodes.length; i < len; ++i) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   442
                    if (childNodes[i].tagName) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   443
                        children[children.length] = childNodes[i];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   444
                    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   445
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   446
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   447
            return Y.all(children);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   448
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   449
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   450
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   451
    value: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   452
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   453
            return Y_DOM.getValue(this._node);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   454
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   455
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   456
        setter: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   457
            Y_DOM.setValue(this._node, val);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   458
            return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   459
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   460
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   461
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   462
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   463
Y.Node.importMethod(Y.DOM, [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   464
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   465
     * Allows setting attributes on DOM nodes, normalizing in some cases.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   466
     * This passes through to the DOM node, allowing for custom attributes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   467
     * @method setAttribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   468
     * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   469
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   470
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   471
     * @param {string} name The attribute name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   472
     * @param {string} value The value to set
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   473
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   474
    'setAttribute',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   475
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   476
     * Allows getting attributes on DOM nodes, normalizing in some cases.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   477
     * This passes through to the DOM node, allowing for custom attributes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   478
     * @method getAttribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   479
     * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   480
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   481
     * @param {string} name The attribute name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   482
     * @return {string} The attribute value
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   483
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   484
    'getAttribute'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   485
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   486
]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   487
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   488
 * @module node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   489
 * @submodule node-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   490
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   491
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   492
var Y_Node = Y.Node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   493
var Y_NodeList = Y.NodeList;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   494
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   495
 * List of events that route to DOM events
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   496
 * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   497
 * @property DOM_EVENTS
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   498
 * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   499
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   500
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   501
Y_Node.DOM_EVENTS = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   502
    abort: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   503
    beforeunload: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   504
    blur: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   505
    change: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   506
    click: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   507
    close: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   508
    command: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   509
    contextmenu: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   510
    dblclick: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   511
    DOMMouseScroll: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   512
    drag: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   513
    dragstart: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   514
    dragenter: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   515
    dragover: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   516
    dragleave: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   517
    dragend: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   518
    drop: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   519
    error: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   520
    focus: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   521
    key: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   522
    keydown: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   523
    keypress: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   524
    keyup: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   525
    load: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   526
    message: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   527
    mousedown: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   528
    mouseenter: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   529
    mouseleave: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   530
    mousemove: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   531
    mousemultiwheel: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   532
    mouseout: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   533
    mouseover: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   534
    mouseup: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   535
    mousewheel: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   536
    orientationchange: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   537
    reset: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   538
    resize: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   539
    select: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   540
    selectstart: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   541
    submit: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   542
    scroll: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   543
    textInput: 1,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   544
    unload: 1
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   545
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   546
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   547
// Add custom event adaptors to this list.  This will make it so
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   548
// that delegate, key, available, contentready, etc all will
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   549
// be available through Node.on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   550
Y.mix(Y_Node.DOM_EVENTS, Y.Env.evt.plugins);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   551
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   552
Y.augment(Y_Node, Y.EventTarget);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   553
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   554
Y.mix(Y_Node.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   555
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   556
     * Removes event listeners from the node and (optionally) its subtree
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   557
     * @method purge
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   558
     * @param {Boolean} recurse (optional) Whether or not to remove listeners from the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   559
     * node's subtree
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   560
     * @param {String} type (optional) Only remove listeners of the specified type
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   561
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   562
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   563
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   564
    purge: function(recurse, type) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   565
        Y.Event.purgeElement(this._node, recurse, type);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   566
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   567
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   568
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   569
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   570
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   571
Y.mix(Y.NodeList.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   572
    _prepEvtArgs: function(type, fn, context) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   573
        // map to Y.on/after signature (type, fn, nodes, context, arg1, arg2, etc)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   574
        var args = Y.Array(arguments, 0, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   575
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   576
        if (args.length < 2) { // type only (event hash) just add nodes
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   577
            args[2] = this._nodes;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   578
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   579
            args.splice(2, 0, this._nodes);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   580
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   581
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   582
        args[3] = context || this; // default to NodeList instance as context
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   583
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   584
        return args;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   585
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   586
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   587
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   588
    Subscribe a callback function for each `Node` in the collection to execute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   589
    in response to a DOM event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   590
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   591
    NOTE: Generally, the `on()` method should be avoided on `NodeLists`, in
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   592
    favor of using event delegation from a parent Node.  See the Event user
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   593
    guide for details.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   594
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   595
    Most DOM events are associated with a preventable default behavior, such as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   596
    link clicks navigating to a new page.  Callbacks are passed a
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   597
    `DOMEventFacade` object as their first argument (usually called `e`) that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   598
    can be used to prevent this default behavior with `e.preventDefault()`. See
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   599
    the `DOMEventFacade` API for all available properties and methods on the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   600
    object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   601
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   602
    By default, the `this` object will be the `NodeList` that the subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   603
    came from, <em>not the `Node` that received the event</em>.  Use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   604
    `e.currentTarget` to refer to the `Node`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   605
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   606
    Returning `false` from a callback is supported as an alternative to calling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   607
    `e.preventDefault(); e.stopPropagation();`.  However, it is recommended to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   608
    use the event methods.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   609
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   610
    @example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   611
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   612
        Y.all(".sku").on("keydown", function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   613
            if (e.keyCode === 13) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   614
                e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   615
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   616
                // Use e.currentTarget to refer to the individual Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   617
                var item = Y.MyApp.searchInventory( e.currentTarget.get('value') );
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   618
                // etc ...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   619
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   620
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   621
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   622
    @method on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   623
    @param {String} type The name of the event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   624
    @param {Function} fn The callback to execute in response to the event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   625
    @param {Object} [context] Override `this` object in callback
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   626
    @param {Any} [arg*] 0..n additional arguments to supply to the subscriber
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   627
    @return {EventHandle} A subscription handle capable of detaching that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   628
                          subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   629
    @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   630
    **/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   631
    on: function(type, fn, context) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   632
        return Y.on.apply(Y, this._prepEvtArgs.apply(this, arguments));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   633
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   634
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   635
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   636
     * Applies an one-time event listener to each Node bound to the NodeList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   637
     * @method once
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   638
     * @param {String} type The event being listened for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   639
     * @param {Function} fn The handler to call when the event fires
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   640
     * @param {Object} context The context to call the handler with.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   641
     * Default is the NodeList instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   642
     * @return {EventHandle} A subscription handle capable of detaching that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   643
     *                    subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   644
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   645
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   646
    once: function(type, fn, context) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   647
        return Y.once.apply(Y, this._prepEvtArgs.apply(this, arguments));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   648
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   649
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   650
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   651
     * Applies an event listener to each Node bound to the NodeList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   652
     * The handler is called only after all on() handlers are called
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   653
     * and the event is not prevented.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   654
     * @method after
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   655
     * @param {String} type The event being listened for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   656
     * @param {Function} fn The handler to call when the event fires
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   657
     * @param {Object} context The context to call the handler with.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   658
     * Default is the NodeList instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   659
     * @return {EventHandle} A subscription handle capable of detaching that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   660
     *                    subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   661
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   662
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   663
    after: function(type, fn, context) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   664
        return Y.after.apply(Y, this._prepEvtArgs.apply(this, arguments));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   665
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   666
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   667
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   668
     * Applies an one-time event listener to each Node bound to the NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   669
     * that will be called only after all on() handlers are called and the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   670
     * event is not prevented.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   671
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   672
     * @method onceAfter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   673
     * @param {String} type The event being listened for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   674
     * @param {Function} fn The handler to call when the event fires
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   675
     * @param {Object} context The context to call the handler with.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   676
     * Default is the NodeList instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   677
     * @return {EventHandle} A subscription handle capable of detaching that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   678
     *                    subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   679
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   680
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   681
    onceAfter: function(type, fn, context) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   682
        return Y.onceAfter.apply(Y, this._prepEvtArgs.apply(this, arguments));
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   683
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   684
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   685
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   686
Y_NodeList.importMethod(Y.Node.prototype, [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   687
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   688
      * Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   689
      * @method detach
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   690
      * @see Node.detach
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   691
      * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   692
      */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   693
    'detach',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   694
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   695
    /** Called on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   696
      * @method detachAll
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   697
      * @see Node.detachAll
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   698
      * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   699
      */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   700
    'detachAll'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   701
]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   702
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   703
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   704
Subscribe a callback function to execute in response to a DOM event or custom
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   705
event.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   706
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   707
Most DOM events are associated with a preventable default behavior such as
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   708
link clicks navigating to a new page.  Callbacks are passed a `DOMEventFacade`
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   709
object as their first argument (usually called `e`) that can be used to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   710
prevent this default behavior with `e.preventDefault()`. See the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   711
`DOMEventFacade` API for all available properties and methods on the object.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   712
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   713
If the event name passed as the first parameter is not a whitelisted DOM event,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   714
it will be treated as a custom event subscriptions, allowing
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   715
`node.fire('customEventName')` later in the code.  Refer to the Event user guide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   716
for the full DOM event whitelist.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   717
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   718
By default, the `this` object in the callback will refer to the subscribed
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   719
`Node`.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   720
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   721
Returning `false` from a callback is supported as an alternative to calling
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   722
`e.preventDefault(); e.stopPropagation();`.  However, it is recommended to use
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   723
the event methods.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   724
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   725
@example
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   726
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   727
    Y.one("#my-form").on("submit", function (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   728
        e.preventDefault();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   729
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   730
        // proceed with ajax form submission instead...
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   731
    });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   732
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   733
@method on
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   734
@param {String} type The name of the event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   735
@param {Function} fn The callback to execute in response to the event
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   736
@param {Object} [context] Override `this` object in callback
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   737
@param {Any} [arg*] 0..n additional arguments to supply to the subscriber
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   738
@return {EventHandle} A subscription handle capable of detaching that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   739
                      subscription
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   740
@for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   741
**/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   742
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   743
Y.mix(Y.Node.ATTRS, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   744
    offsetHeight: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   745
        setter: function(h) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   746
            Y.DOM.setHeight(this._node, h);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   747
            return h;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   748
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   749
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   750
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   751
            return this._node.offsetHeight;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   752
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   753
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   754
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   755
    offsetWidth: {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   756
        setter: function(w) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   757
            Y.DOM.setWidth(this._node, w);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   758
            return w;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   759
        },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   760
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   761
        getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   762
            return this._node.offsetWidth;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   763
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   764
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   765
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   766
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   767
Y.mix(Y.Node.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   768
    sizeTo: function(w, h) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   769
        var node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   770
        if (arguments.length < 2) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   771
            node = Y.one(w);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   772
            w = node.get('offsetWidth');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   773
            h = node.get('offsetHeight');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   774
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   775
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   776
        this.setAttrs({
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   777
            offsetWidth: w,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   778
            offsetHeight: h
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   779
        });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   780
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   781
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   782
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   783
 * @module node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   784
 * @submodule node-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   785
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   786
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   787
var Y_Node = Y.Node;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   788
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   789
Y.mix(Y_Node.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   790
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   791
     * Makes the node visible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   792
     * If the "transition" module is loaded, show optionally
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   793
     * animates the showing of the node using either the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   794
     * transition effect ('fadeIn'), or the given named effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   795
     * @method show
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   796
     * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   797
     * @param {String} name A named Transition effect to use as the show effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   798
     * @param {Object} config Options to use with the transition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   799
     * @param {Function} callback An optional function to run after the transition completes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   800
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   801
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   802
    show: function(callback) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   803
        callback = arguments[arguments.length - 1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   804
        this.toggleView(true, callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   805
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   806
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   807
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   808
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   809
     * The implementation for showing nodes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   810
     * Default is to remove the hidden attribute and reset the CSS style.display property.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   811
     * @method _show
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   812
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   813
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   814
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   815
    _show: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   816
        this.removeAttribute('hidden');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   817
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   818
        // For back-compat we need to leave this in for browsers that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   819
        // do not visually hide a node via the hidden attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   820
        // and for users that check visibility based on style display.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   821
        this.setStyle('display', '');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   822
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   823
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   824
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   825
    _isHidden: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   826
        return Y.DOM.getAttribute(this._node, 'hidden') === 'true';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   827
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   828
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   829
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   830
     * Displays or hides the node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   831
     * If the "transition" module is loaded, toggleView optionally
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   832
     * animates the toggling of the node using given named effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   833
     * @method toggleView
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   834
     * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   835
     * @param {String} [name] An optional string value to use as transition effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   836
     * @param {Boolean} [on] An optional boolean value to force the node to be shown or hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   837
     * @param {Function} [callback] An optional function to run after the transition completes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   838
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   839
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   840
    toggleView: function(on, callback) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   841
        this._toggleView.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   842
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   843
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   844
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   845
    _toggleView: function(on, callback) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   846
        callback = arguments[arguments.length - 1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   847
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   848
        // base on current state if not forcing
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   849
        if (typeof on != 'boolean') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   850
            on = (this._isHidden()) ? 1 : 0;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   851
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   852
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   853
        if (on) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   854
            this._show();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   855
        }  else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   856
            this._hide();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   857
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   858
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   859
        if (typeof callback == 'function') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   860
            callback.call(this);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   861
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   862
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   863
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   864
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   865
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   866
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   867
     * Hides the node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   868
     * If the "transition" module is loaded, hide optionally
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   869
     * animates the hiding of the node using either the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   870
     * transition effect ('fadeOut'), or the given named effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   871
     * @method hide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   872
     * @param {String} name A named Transition effect to use as the show effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   873
     * @param {Object} config Options to use with the transition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   874
     * @param {Function} callback An optional function to run after the transition completes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   875
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   876
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   877
    hide: function(callback) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   878
        callback = arguments[arguments.length - 1];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   879
        this.toggleView(false, callback);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   880
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   881
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   882
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   883
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   884
     * The implementation for hiding nodes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   885
     * Default is to set the hidden attribute to true and set the CSS style.display to 'none'.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   886
     * @method _hide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   887
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   888
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   889
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   890
    _hide: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   891
        this.setAttribute('hidden', true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   892
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   893
        // For back-compat we need to leave this in for browsers that
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   894
        // do not visually hide a node via the hidden attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   895
        // and for users that check visibility based on style display.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   896
        this.setStyle('display', 'none');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   897
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   898
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   899
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   900
Y.NodeList.importMethod(Y.Node.prototype, [
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   901
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   902
     * Makes each node visible.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   903
     * If the "transition" module is loaded, show optionally
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   904
     * animates the showing of the node using either the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   905
     * transition effect ('fadeIn'), or the given named effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   906
     * @method show
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   907
     * @param {String} name A named Transition effect to use as the show effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   908
     * @param {Object} config Options to use with the transition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   909
     * @param {Function} callback An optional function to run after the transition completes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   910
     * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   911
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   912
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   913
    'show',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   914
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   915
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   916
     * Hides each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   917
     * If the "transition" module is loaded, hide optionally
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   918
     * animates the hiding of the node using either the default
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   919
     * transition effect ('fadeOut'), or the given named effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   920
     * @method hide
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   921
     * @param {String} name A named Transition effect to use as the show effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   922
     * @param {Object} config Options to use with the transition.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   923
     * @param {Function} callback An optional function to run after the transition completes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   924
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   925
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   926
    'hide',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   927
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   928
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   929
     * Displays or hides each node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   930
     * If the "transition" module is loaded, toggleView optionally
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   931
     * animates the toggling of the nodes using given named effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   932
     * @method toggleView
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   933
     * @param {String} [name] An optional string value to use as transition effect.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   934
     * @param {Boolean} [on] An optional boolean value to force the nodes to be shown or hidden
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   935
     * @param {Function} [callback] An optional function to run after the transition completes.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   936
     * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   937
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   938
    'toggleView'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   939
]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   940
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   941
if (!Y.config.doc.documentElement.hasAttribute) { // IE < 8
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   942
    Y.Node.prototype.hasAttribute = function(attr) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   943
        if (attr === 'value') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   944
            if (this.get('value') !== "") { // IE < 8 fails to populate specified when set in HTML
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   945
                return true;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   946
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   947
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   948
        return !!(this._node.attributes[attr] &&
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   949
                this._node.attributes[attr].specified);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   950
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   951
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   952
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   953
// IE throws an error when calling focus() on an element that's invisible, not
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   954
// displayed, or disabled.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   955
Y.Node.prototype.focus = function () {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   956
    try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   957
        this._node.focus();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   958
    } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   959
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   960
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   961
    return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   962
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   963
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   964
// IE throws error when setting input.type = 'hidden',
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   965
// input.setAttribute('type', 'hidden') and input.attributes.type.value = 'hidden'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   966
Y.Node.ATTRS.type = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   967
    setter: function(val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   968
        if (val === 'hidden') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   969
            try {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   970
                this._node.type = 'hidden';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   971
            } catch(e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   972
                this.setStyle('display', 'none');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   973
                this._inputType = 'hidden';
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   974
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   975
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   976
            try { // IE errors when changing the type from "hidden'
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   977
                this._node.type = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   978
            } catch (e) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   979
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   980
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   981
        return val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   982
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   983
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   984
    getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   985
        return this._inputType || this._node.type;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   986
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   987
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   988
    _bypassProxy: true // don't update DOM when using with Attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   989
};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   990
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   991
if (Y.config.doc.createElement('form').elements.nodeType) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   992
    // IE: elements collection is also FORM node which trips up scrubVal.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   993
    Y.Node.ATTRS.elements = {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   994
            getter: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   995
                return this.all('input, textarea, button, select');
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   996
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   997
    };
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   998
}
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   999
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1000
/**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1001
 * Provides methods for managing custom Node data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1002
 * 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1003
 * @module node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1004
 * @main node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1005
 * @submodule node-data
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1006
 */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1007
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1008
Y.mix(Y.Node.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1009
    _initData: function() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1010
        if (! ('_data' in this)) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1011
            this._data = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1012
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1013
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1014
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1015
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1016
    * @method getData
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1017
    * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1018
    * @description Retrieves arbitrary data stored on a Node instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1019
    * If no data is associated with the Node, it will attempt to retrieve
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1020
    * a value from the corresponding HTML data attribute. (e.g. node.getData('foo')
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1021
    * will check node.getAttribute('data-foo')).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1022
    * @param {string} name Optional name of the data field to retrieve.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1023
    * If no name is given, all data is returned.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1024
    * @return {any | Object} Whatever is stored at the given field,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1025
    * or an object hash of all fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1026
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1027
    getData: function(name) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1028
        this._initData();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1029
        var data = this._data,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1030
            ret = data;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1031
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1032
        if (arguments.length) { // single field
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1033
            if (name in data) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1034
                ret = data[name];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1035
            } else { // initialize from HTML attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1036
                ret = this._getDataAttribute(name);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1037
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1038
        } else if (typeof data == 'object' && data !== null) { // all fields
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1039
            ret = {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1040
            Y.Object.each(data, function(v, n) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1041
                ret[n] = v;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1042
            });
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1043
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1044
            ret = this._getDataAttributes(ret);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1045
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1046
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1047
        return ret;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1048
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1049
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1050
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1051
    _getDataAttributes: function(ret) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1052
        ret = ret || {};
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1053
        var i = 0,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1054
            attrs = this._node.attributes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1055
            len = attrs.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1056
            prefix = this.DATA_PREFIX,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1057
            prefixLength = prefix.length,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1058
            name;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1059
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1060
        while (i < len) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1061
            name = attrs[i].name;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1062
            if (name.indexOf(prefix) === 0) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1063
                name = name.substr(prefixLength);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1064
                if (!(name in ret)) { // only merge if not already stored
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1065
                    ret[name] = this._getDataAttribute(name);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1066
                }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1067
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1068
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1069
            i += 1;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1070
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1071
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1072
        return ret;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1073
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1074
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1075
    _getDataAttribute: function(name) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1076
        name = this.DATA_PREFIX + name;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1077
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1078
        var node = this._node,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1079
            attrs = node.attributes,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1080
            data = attrs && attrs[name] && attrs[name].value;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1081
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1082
        return data;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1083
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1084
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1085
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1086
    * @method setData
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1087
    * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1088
    * @description Stores arbitrary data on a Node instance.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1089
    * This is not stored with the DOM node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1090
    * @param {string} name The name of the field to set. If no val
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1091
    * is given, name is treated as the data and overrides any existing data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1092
    * @param {any} val The value to be assigned to the field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1093
    * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1094
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1095
    setData: function(name, val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1096
        this._initData();
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1097
        if (arguments.length > 1) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1098
            this._data[name] = val;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1099
        } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1100
            this._data = name;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1101
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1103
       return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1104
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1105
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1106
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1107
    * @method clearData
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1108
    * @for Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1109
    * @description Clears internally stored data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1110
    * @param {string} name The name of the field to clear. If no name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1111
    * is given, all data is cleared.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1112
    * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1113
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1114
    clearData: function(name) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1115
        if ('_data' in this) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1116
            if (typeof name != 'undefined') {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1117
                delete this._data[name];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1118
            } else {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1119
                delete this._data;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1120
            }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1121
        }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1122
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1123
        return this;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1124
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1125
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1126
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1127
Y.mix(Y.NodeList.prototype, {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1128
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1129
    * @method getData
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1130
    * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1131
    * @description Retrieves arbitrary data stored on each Node instance
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1132
    * bound to the NodeList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1133
    * @see Node
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1134
    * @param {string} name Optional name of the data field to retrieve.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1135
    * If no name is given, all data is returned.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1136
    * @return {Array} An array containing all of the data for each Node instance. 
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1137
    * or an object hash of all fields.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1138
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1139
    getData: function(name) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1140
        var args = (arguments.length) ? [name] : [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1141
        return this._invoke('getData', args, true);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1142
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1143
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1144
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1145
    * @method setData
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1146
    * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1147
    * @description Stores arbitrary data on each Node instance bound to the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1148
    *  NodeList. This is not stored with the DOM node.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1149
    * @param {string} name The name of the field to set. If no name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1150
    * is given, name is treated as the data and overrides any existing data.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1151
    * @param {any} val The value to be assigned to the field.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1152
    * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1153
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1154
    setData: function(name, val) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1155
        var args = (arguments.length > 1) ? [name, val] : [name];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1156
        return this._invoke('setData', args);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1157
    },
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1158
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1159
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1160
    * @method clearData
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1161
    * @for NodeList
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1162
    * @description Clears data on all Node instances bound to the NodeList.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1163
    * @param {string} name The name of the field to clear. If no name
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1164
    * is given, all data is cleared.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1165
    * @chainable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1166
    */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1167
    clearData: function(name) {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1168
        var args = (arguments.length) ? [name] : [];
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1169
        return this._invoke('clearData', [name]);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1170
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1171
});
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1172
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1173
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
  1174
}, '3.10.3', {"requires": ["event-base", "node-core", "dom-base"]});