attribute-base-debug.js revision ed99ee839d187bd8bb990a7f5125d93215c5bb42
16504N/A * The attribute module provides an augmentable Attribute implementation, which 16504N/A * adds configurable attributes and attribute change events to the class being 16504N/A * augmented. It also provides a State class, which is used internally by Attribute, 16504N/A * The attribute-base submodule provides core attribute handling support, with everything 16504N/A * aside from complex attribute handling in the provider's constructor. * Attribute provides configurable attribute support along with attribute change events. It is designed to be * augmented on to a host class, and provides the host with the ability to configure attributes to store and retrieve state, * along with attribute change events. * <p>For example, attributes added to the host can be configured:</p> * <li>As write once.</li> * <li>With a setter function, which can be used to manipulate * values passed to Attribute's <a href="#method_set">set</a> method, before they are stored.</li> * <li>With a getter function, which can be used to manipulate stored values, * before they are returned by Attribute's <a href="#method_get">get</a> method.</li> * <li>With a validator function, to validate values before they are stored.</li> * <p>See the <a href="#method_addAttr">addAttr</a> method, for the complete set of configuration * options available for attributes.</p> * <p><strong>NOTE:</strong> Most implementations will be better off extending the <a href="Base.html">Base</a> class, * instead of augmenting Attribute directly. Base augments Attribute and will handle the initial configuration * of attributes for derived classes, accounting for values passed into the constructor.</p> * @param attrs {Object} The attributes to add during construction (passed through to <a href="#method_addAttrs">addAttrs</a>). These can also be defined on the constructor being augmented with Attribute by defining the ATTRS property on the constructor. * @param values {Object} The initial attribute values to apply (passed through to <a href="#method_addAttrs">addAttrs</a>). These are not merged/cloned. The caller is responsible for isolating user provided values if required. * @param lazy {boolean} Whether or not to add attributes lazily (passed through to <a href="#method_addAttrs">addAttrs</a>). // Complete hack, to make sure the first clone of a node value in IE doesn't doesn't hurt state - maintains 3.4.1 behavior. // Too late in the release cycle to do anything about the core problem. // The root issue is that cloning a Y.Node instance results in an object which barfs in IE, when you access it's properties (since 3.3.0). // Needs to be "true", to overwrite methods from AttributeCore * <p>The value to return from an attribute setter in order to prevent the set from going through.</p> * <p>You can return this value from your setter if you wish to combine validator and setter * functionality into a single setter function, which either returns the massaged value to be stored or * AttributeCore.INVALID_VALUE to prevent invalid values from being stored.</p> * @property INVALID_VALUE * The list of properties which can be configured for * each attribute (e.g. setter, getter, writeOnce etc.). * This property is used internally as a whitelist for faster },
'@VERSION@' ,{
requires:[
'attribute-core',
'attribute-events',
'attribute-extras']});