src/cm/media/js/lib/yui/yui_3.10.3/build/attribute-base/attribute-base-debug.js
author gibus
Tue, 16 Jul 2013 14:29:46 +0200
changeset 525 89ef5ed3c48b
permissions -rw-r--r--
Upgrades to yui 3.10.3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
525
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     1
/*
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     2
YUI 3.10.3 (build 2fb5187)
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     3
Copyright 2013 Yahoo! Inc. All rights reserved.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     4
Licensed under the BSD License.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     5
http://yuilibrary.com/license/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     6
*/
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     7
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
     8
YUI.add('attribute-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
     * The attribute module provides an augmentable Attribute implementation, which
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    12
     * adds configurable attributes and attribute change events to the class being
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    13
     * augmented. It also provides a State class, which is used internally by Attribute,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    14
     * but can also be used independently to provide a name/property/value data structure to
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    15
     * store state.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    16
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    17
     * @module attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    18
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    19
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    20
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    21
     * The attribute-base submodule provides core attribute handling support, with everything
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    22
     * aside from complex attribute handling in the provider's constructor.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    23
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    24
     * @module attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    25
     * @submodule attribute-base
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    26
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    27
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    28
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    29
     * <p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    30
     * Attribute provides configurable attribute support along with attribute change events. It is designed to be
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    31
     * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    32
     * along with attribute change events.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    33
     * </p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    34
     * <p>For example, attributes added to the host can be configured:</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    35
     * <ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    36
     *     <li>As read only.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    37
     *     <li>As write once.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    38
     *     <li>With a setter function, which can be used to manipulate
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    39
     *     values passed to Attribute's <a href="#method_set">set</a> method, before they are stored.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    40
     *     <li>With a getter function, which can be used to manipulate stored values,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    41
     *     before they are returned by Attribute's <a href="#method_get">get</a> method.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    42
     *     <li>With a validator function, to validate values before they are stored.</li>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    43
     * </ul>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    44
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    45
     * <p>See the <a href="#method_addAttr">addAttr</a> method, for the complete set of configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    46
     * options available for attributes.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    47
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    48
     * <p><strong>NOTE:</strong> Most implementations will be better off extending the <a href="Base.html">Base</a> class,
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    49
     * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    50
     * of attributes for derived classes, accounting for values passed into the constructor.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    51
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    52
     * @class Attribute
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    53
     * @param attrs {Object} The attributes to add during construction (passed through to <a href="#method_addAttrs">addAttrs</a>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    54
     *        These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    55
     * @param values {Object} The initial attribute values to apply (passed through to <a href="#method_addAttrs">addAttrs</a>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    56
     *        These are not merged/cloned. The caller is responsible for isolating user provided values if required.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    57
     * @param lazy {boolean} Whether or not to add attributes lazily (passed through to <a href="#method_addAttrs">addAttrs</a>).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    58
     * @uses AttributeCore
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    59
     * @uses AttributeObservable
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    60
     * @uses EventTarget
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    61
     * @uses AttributeExtras
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    62
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    63
    function Attribute() {
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    64
        Y.AttributeCore.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    65
        Y.AttributeObservable.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    66
        Y.AttributeExtras.apply(this, arguments);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    67
    }
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    68
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    69
    Y.mix(Attribute, Y.AttributeCore, false, null, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    70
    Y.mix(Attribute, Y.AttributeExtras, false, null, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    71
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    72
    // Needs to be `true`, to overwrite methods from AttributeCore
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    73
    Y.mix(Attribute, Y.AttributeObservable, true, null, 1);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    74
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    75
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    76
     * <p>The value to return from an attribute setter in order to prevent the set from going through.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    77
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    78
     * <p>You can return this value from your setter if you wish to combine validator and setter
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    79
     * functionality into a single setter function, which either returns the massaged value to be stored or
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    80
     * AttributeCore.INVALID_VALUE to prevent invalid values from being stored.</p>
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    81
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    82
     * @property INVALID_VALUE
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    83
     * @type Object
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    84
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    85
     * @final
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    86
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    87
    Attribute.INVALID_VALUE = Y.AttributeCore.INVALID_VALUE;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    88
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    89
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    90
     * The list of properties which can be configured for
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    91
     * each attribute (e.g. setter, getter, writeOnce etc.).
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    92
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    93
     * This property is used internally as a whitelist for faster
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    94
     * Y.mix operations.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    95
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    96
     * @property _ATTR_CFG
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    97
     * @type Array
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    98
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
    99
     * @protected
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   100
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   101
    Attribute._ATTR_CFG = Y.AttributeCore._ATTR_CFG.concat(Y.AttributeObservable._ATTR_CFG);
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   102
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   103
    /**
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   104
     * Utility method to protect an attribute configuration hash, by merging the
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   105
     * entire object and the individual attr config objects.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   106
     *
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   107
     * @method protectAttrs
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   108
     * @static
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   109
     * @param {Object} attrs A hash of attribute to configuration object pairs.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   110
     * @return {Object} A protected version of the `attrs` argument.
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   111
     */
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   112
    Attribute.protectAttrs = Y.AttributeCore.protectAttrs;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   113
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   114
    Y.Attribute = Attribute;
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   115
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   116
89ef5ed3c48b Upgrades to yui 3.10.3
gibus
parents:
diff changeset
   117
}, '3.10.3', {"requires": ["attribute-core", "attribute-observable", "attribute-extras"]});