/usr/share/javascript/yui3/attribute-base/attribute-base.js is in libjs-yui3-full 3.5.1-1ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | /*
YUI 3.5.1 (build 22)
Copyright 2012 Yahoo! Inc. All rights reserved.
Licensed under the BSD License.
http://yuilibrary.com/license/
*/
YUI.add('attribute-base', function(Y) {
/**
* The attribute module provides an augmentable Attribute implementation, which
* adds configurable attributes and attribute change events to the class being
* augmented. It also provides a State class, which is used internally by Attribute,
* but can also be used independently to provide a name/property/value data structure to
* store state.
*
* @module attribute
*/
/**
* The attribute-base submodule provides core attribute handling support, with everything
* aside from complex attribute handling in the provider's constructor.
*
* @module attribute
* @submodule attribute-base
*/
/**
* <p>
* 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>
* <p>For example, attributes added to the host can be configured:</p>
* <ul>
* <li>As read only.</li>
* <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>
* </ul>
*
* <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>
*
* @class Attribute
* @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>).
* @uses AttributeCore
* @uses AttributeEvents
* @uses EventTarget
* @uses AttributeExtras
*/
var Attribute = function() {
// Fix #2531929
// 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).
this._ATTR_E_FACADE = null;
this._yuievt = null;
Y.AttributeCore.apply(this, arguments);
Y.AttributeEvents.apply(this, arguments);
Y.AttributeExtras.apply(this, arguments);
};
Y.mix(Attribute, Y.AttributeCore, false, null, 1);
Y.mix(Attribute, Y.AttributeExtras, false, null, 1);
// Needs to be "true", to overwrite methods from AttributeCore
Y.mix(Attribute, Y.AttributeEvents, true, null, 1);
/**
* <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
* @type Object
* @static
* @final
*/
Attribute.INVALID_VALUE = Y.AttributeCore.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
* Y.mix operations.
*
* @property _ATTR_CFG
* @type Array
* @static
* @protected
*/
Attribute._ATTR_CFG = Y.AttributeCore._ATTR_CFG.concat(Y.AttributeEvents._ATTR_CFG);
Y.Attribute = Attribute;
}, '3.5.1' ,{requires:['attribute-core', 'attribute-events', 'attribute-extras']});
|