<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>API: base Base.js (YUI Library)</title>
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
<link rel="stylesheet" type="text/css" href="assets/api.css" />
<script type="text/javascript" src="assets/api-js"></script>
<script type="text/javascript" src="assets/ac-js"></script>
</head>
<body id="yahoo-com">
<div id="doc3" class="yui-t2">
<div id="hd">
<h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
<h3>base <span class="subtitle">3.0.0b1</span></h3>
<a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a>
> <a href="./module_base.html" title="base">base</a>
> Base.js (source view)
<form onsubmit="return false">
<div id="propertysearch">
Search: <input autocomplete="off" id="searchinput" />
<div id="searchresults">
</div>
</div>
</form>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
<fieldset>
<legend>Filters</legend>
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
</fieldset>
</form>
<div id="srcout">
<style>
#doc3 .classopts { display:none; }
</style>
<div class="highlight" ><pre> <span class="c">/**</span>
<span class="c"> * The base module provides the Base class, which objects requiring attribute and custom event support can extend. </span>
<span class="c"> * The module also provides two ways to reuse code - An augmentable Plugin.Host interface which provides plugin support </span>
<span class="c"> * (which is augmented to the Base class) and Base.build which provides a way to </span>
<span class="c"> * build custom classes using extensions.</span>
<span class="c"> *</span>
<span class="c"> * @module base</span>
<span class="c"> */</span>
<span class="c">/**</span>
<span class="c"> * The base-base submodule provides the Base class and augmentable Plugin.Host implementation, </span>
<span class="c"> * without the extension support provided by Base.build.</span>
<span class="c"> *</span>
<span class="c"> * @module base</span>
<span class="c"> * @submodule base-base</span>
<span class="c"> */</span>
<span class="k">var</span> <span class="nx">O</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nb">Object</span><span class="o">,</span>
<span class="nx">DOT</span> <span class="o">=</span> <span class="s2">"."</span><span class="o">,</span>
<span class="nx">DESTROY</span> <span class="o">=</span> <span class="s2">"destroy"</span><span class="o">,</span>
<span class="nx">INIT</span> <span class="o">=</span> <span class="s2">"init"</span><span class="o">,</span>
<span class="nx">INITIALIZED</span> <span class="o">=</span> <span class="s2">"initialized"</span><span class="o">,</span>
<span class="nx">DESTROYED</span> <span class="o">=</span> <span class="s2">"destroyed"</span><span class="o">,</span>
<span class="nx">INITIALIZER</span> <span class="o">=</span> <span class="s2">"initializer"</span><span class="o">,</span>
<span class="nx">OBJECT_CONSTRUCTOR</span> <span class="o">=</span> <span class="nb">Object</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">constructor</span><span class="o">,</span>
<span class="nx">DEEP</span> <span class="o">=</span> <span class="s2">"deep"</span><span class="o">,</span>
<span class="nx">SHALLOW</span> <span class="o">=</span> <span class="s2">"shallow"</span><span class="o">,</span>
<span class="nx">VALUE</span> <span class="o">=</span> <span class="s2">"value"</span><span class="o">,</span>
<span class="nx">DESTRUCTOR</span> <span class="o">=</span> <span class="s2">"destructor"</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * <p></span>
<span class="c"> * A base class which objects requiring attributes and custom event support can </span>
<span class="c"> * extend. Base also handles the chaining of initializer and destructor methods across </span>
<span class="c"> * the hierarchy as part of object construction and destruction. Additionally, attributes configured </span>
<span class="c"> * through the static <a href="#property_Base.ATTRS">ATTRS</a> property for each class </span>
<span class="c"> * in the hierarchy will be initialized by Base.</span>
<span class="c"> * </p></span>
<span class="c"> *</span>
<span class="c"> * <p></span>
<span class="c"> * The static <a href="#property_Base.NAME">NAME</a> property of each class extending </span>
<span class="c"> * from Base will be used as the identifier for the class, and is used by Base to prefix </span>
<span class="c"> * all events fired by instances of that class.</span>
<span class="c"> * </p></span>
<span class="c"> * @class Base</span>
<span class="c"> * @constructor</span>
<span class="c"> * @uses Attribute</span>
<span class="c"> * @uses Plugin.Host</span>
<span class="c"> *</span>
<span class="c"> * @param {Object} config Object with configuration property name/value pairs</span>
<span class="c"> */</span>
<span class="k">function</span> <span class="nx">Base</span><span class="o">()</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'constructor called'</span><span class="o">,</span> <span class="s1">'life'</span><span class="o">,</span> <span class="s1">'base'</span><span class="o">);</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">Attribute</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">Plugin</span><span class="o">.</span><span class="nx">Host</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_silentInit</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_silentInit</span> <span class="o">||</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_lazyAddAttrs</span> <span class="o">!==</span> <span class="kc">false</span><span class="o">)</span> <span class="o">{</span> <span class="k">this</span><span class="o">.</span><span class="nx">_lazyAddAttrs</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span> <span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">init</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
<span class="o">}</span>
<span class="c">/**</span>
<span class="c"> * The list of properties which can be configured for </span>
<span class="c"> * each attribute (e.g. setter, getter, writeOnce, readOnly etc.)</span>
<span class="c"> *</span>
<span class="c"> * @property Base._ATTR_CFG</span>
<span class="c"> * @type Array</span>
<span class="c"> * @static</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="nx">Base</span><span class="o">.</span><span class="nx">_ATTR_CFG</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Attribute</span><span class="o">.</span><span class="nx">_ATTR_CFG</span><span class="o">.</span><span class="nx">concat</span><span class="o">(</span><span class="s2">"cloneDefaultValue"</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * <p></span>
<span class="c"> * The string to be used to identify instances of </span>
<span class="c"> * this class, for example in prefixing events.</span>
<span class="c"> * </p></span>
<span class="c"> * <p></span>
<span class="c"> * Classes extending Base, should define their own</span>
<span class="c"> * static NAME property, which should be camelCase by</span>
<span class="c"> * convention (e.g. MyClass.NAME = "myClass";).</span>
<span class="c"> * </p></span>
<span class="c"> * @property Base.NAME</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">Base</span><span class="o">.</span><span class="nx">NAME</span> <span class="o">=</span> <span class="s1">'base'</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * The default set of attributes which will be available for instances of this class, and </span>
<span class="c"> * their configuration. In addition to the configuration properties listed by </span>
<span class="c"> * Attribute's <a href="Attribute.html#method_addAttr">addAttr</a> method, the attribute </span>
<span class="c"> * can also be configured with a "cloneDefaultValue" property, which defines how the statically</span>
<span class="c"> * defined value field should be protected ("shallow", "deep" and false are supported values). </span>
<span class="c"> *</span>
<span class="c"> * By default if the value is an object literal or an array it will be "shallow" cloned, to </span>
<span class="c"> * protect the default value.</span>
<span class="c"> *</span>
<span class="c"> * @property Base.ATTRS</span>
<span class="c"> * @type Object</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">Base</span><span class="o">.</span><span class="nx">ATTRS</span> <span class="o">=</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * Flag indicating whether or not this object</span>
<span class="c"> * has been through the init lifecycle phase.</span>
<span class="c"> *</span>
<span class="c"> * @attribute initialized</span>
<span class="c"> * @readonly</span>
<span class="c"> * @default false</span>
<span class="c"> * @type boolean</span>
<span class="c"> */</span>
<span class="nx">initialized</span><span class="o">:</span> <span class="o">{</span>
<span class="nx">readOnly</span><span class="o">:</span><span class="kc">true</span><span class="o">,</span>
<span class="nx">value</span><span class="o">:</span><span class="kc">false</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Flag indicating whether or not this object</span>
<span class="c"> * has been through the destroy lifecycle phase.</span>
<span class="c"> *</span>
<span class="c"> * @attribute destroyed</span>
<span class="c"> * @readonly</span>
<span class="c"> * @default false</span>
<span class="c"> * @type boolean</span>
<span class="c"> */</span>
<span class="nx">destroyed</span><span class="o">:</span> <span class="o">{</span>
<span class="nx">readOnly</span><span class="o">:</span><span class="kc">true</span><span class="o">,</span>
<span class="nx">value</span><span class="o">:</span><span class="kc">false</span>
<span class="o">}</span>
<span class="o">};</span>
<span class="nx">Base</span><span class="o">.</span><span class="nx">prototype</span> <span class="o">=</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * Init lifecycle method, invoked during construction.</span>
<span class="c"> * Fires the init event prior to setting up attributes and </span>
<span class="c"> * invoking initializers for the class hierarchy.</span>
<span class="c"> *</span>
<span class="c"> * @method init</span>
<span class="c"> * @final</span>
<span class="c"> * @chainable</span>
<span class="c"> * @param {Object} config Object with configuration property name/value pairs</span>
<span class="c"> * @return {Base} A reference to this object</span>
<span class="c"> */</span>
<span class="nx">init</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">config</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'init called'</span><span class="o">,</span> <span class="s1">'life'</span><span class="o">,</span> <span class="s1">'base'</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * The string used to identify the class of this object.</span>
<span class="c"> *</span>
<span class="c"> * @deprecated Use this.constructor.NAME</span>
<span class="c"> * @property name</span>
<span class="c"> * @type String</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_yuievt</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">prefix</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">name</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">NAME</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * <p></span>
<span class="c"> * Lifecycle event for the init phase, fired prior to initialization. </span>
<span class="c"> * Invoking the preventDefault() method on the event object provided </span>
<span class="c"> * to subscribers will prevent initialization from occuring.</span>
<span class="c"> * </p></span>
<span class="c"> * <p></span>
<span class="c"> * Subscribers to the "after" momemt of this event, will be notified</span>
<span class="c"> * after initialization of the object is complete (and therefore</span>
<span class="c"> * cannot prevent initialization).</span>
<span class="c"> * </p></span>
<span class="c"> *</span>
<span class="c"> * @event init</span>
<span class="c"> * @preventable _defInitFn</span>
<span class="c"> * @param {EventFacade} e Event object, with a cfg property which </span>
<span class="c"> * refers to the configuration object passed to the constructor.</span>
<span class="c"> */</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_silentInit</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">INIT</span><span class="o">,</span> <span class="o">{</span>
<span class="nx">queuable</span><span class="o">:</span><span class="kc">false</span><span class="o">,</span>
<span class="nx">defaultFn</span><span class="o">:</span><span class="k">this</span><span class="o">.</span><span class="nx">_defInitFn</span>
<span class="o">});</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">config</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">config</span><span class="o">.</span><span class="nx">on</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nx">config</span><span class="o">.</span><span class="nx">on</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">config</span><span class="o">.</span><span class="nx">after</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="nx">config</span><span class="o">.</span><span class="nx">after</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_silentInit</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">INIT</span><span class="o">,</span> <span class="o">{</span><span class="nx">cfg</span><span class="o">:</span> <span class="nx">config</span><span class="o">});</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_defInitFn</span><span class="o">({</span><span class="nx">cfg</span><span class="o">:</span> <span class="nx">config</span><span class="o">});</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * <p></span>
<span class="c"> * Destroy lifecycle method. Fires the destroy</span>
<span class="c"> * event, prior to invoking destructors for the</span>
<span class="c"> * class hierarchy.</span>
<span class="c"> * </p></span>
<span class="c"> * <p></span>
<span class="c"> * Subscribers to the destroy</span>
<span class="c"> * event can invoke preventDefault on the event object, to prevent destruction</span>
<span class="c"> * from proceeding.</span>
<span class="c"> * </p></span>
<span class="c"> * @method destroy</span>
<span class="c"> * @return {Base} A reference to this object</span>
<span class="c"> * @final</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">destroy</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'destroy called'</span><span class="o">,</span> <span class="s1">'life'</span><span class="o">,</span> <span class="s1">'base'</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * <p></span>
<span class="c"> * Lifecycle event for the destroy phase, </span>
<span class="c"> * fired prior to destruction. Invoking the preventDefault </span>
<span class="c"> * method on the event object provided to subscribers will </span>
<span class="c"> * prevent destruction from proceeding.</span>
<span class="c"> * </p></span>
<span class="c"> * <p></span>
<span class="c"> * Subscribers to the "after" moment of this event, will be notified</span>
<span class="c"> * after destruction is complete (and as a result cannot prevent</span>
<span class="c"> * destruction).</span>
<span class="c"> * </p></span>
<span class="c"> * @event destroy</span>
<span class="c"> * @preventable _defDestroyFn</span>
<span class="c"> * @param {EventFacade} e Event object</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">DESTROY</span><span class="o">,</span> <span class="o">{</span>
<span class="nx">queuable</span><span class="o">:</span><span class="kc">false</span><span class="o">,</span>
<span class="nx">defaultFn</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_defDestroyFn</span>
<span class="o">});</span>
<span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">DESTROY</span><span class="o">);</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Default init event handler</span>
<span class="c"> *</span>
<span class="c"> * @method _defInitFn</span>
<span class="c"> * @param {EventFacade} e Event object, with a cfg property which </span>
<span class="c"> * refers to the configuration object passed to the constructor.</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_defInitFn</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initHierarchy</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">cfg</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initPlugins</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">cfg</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_silentInit</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_set</span><span class="o">(</span><span class="nx">INITIALIZED</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_conf</span><span class="o">.</span><span class="nx">add</span><span class="o">(</span><span class="nx">INITIALIZED</span><span class="o">,</span> <span class="nx">VALUE</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Default destroy event handler</span>
<span class="c"> *</span>
<span class="c"> * @method _defDestroyFn</span>
<span class="c"> * @param {EventFacade} e Event object</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_defDestroyFn</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_destroyHierarchy</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_destroyPlugins</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_set</span><span class="o">(</span><span class="nx">DESTROYED</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Returns the class hierarchy for this object, with Base being the last class in the array.</span>
<span class="c"> *</span>
<span class="c"> * @method _getClasses</span>
<span class="c"> * @protected</span>
<span class="c"> * @return {Function[]} An array of classes (constructor functions), making up the class hierarchy for this object.</span>
<span class="c"> * This value is cached the first time the method, or _getAttrCfgs, is invoked. Subsequent invocations return the </span>
<span class="c"> * cached value.</span>
<span class="c"> */</span>
<span class="nx">_getClasses</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_classes</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initHierarchyData</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_classes</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Returns an aggregated set of attribute configurations, by traversing the class hierarchy.</span>
<span class="c"> *</span>
<span class="c"> * @method _getAttrCfgs</span>
<span class="c"> * @protected</span>
<span class="c"> * @return {Object} The hash of attribute configurations, aggregated across classes in the hierarchy</span>
<span class="c"> * This value is cached the first time the method, or _getClasses, is invoked. Subsequent invocations return</span>
<span class="c"> * the cached value.</span>
<span class="c"> */</span>
<span class="nx">_getAttrCfgs</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_attrs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initHierarchyData</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_attrs</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * A helper method used when processing ATTRS across the class hierarchy during </span>
<span class="c"> * initialization. Returns a disposable object with the attributes defined for </span>
<span class="c"> * the provided class, extracted from the set of all attributes passed in .</span>
<span class="c"> *</span>
<span class="c"> * @method _filterAttrCfs</span>
<span class="c"> * @private</span>
<span class="c"> *</span>
<span class="c"> * @param {Function} clazz The class for which the desired attributes are required.</span>
<span class="c"> * @param {Object} allCfgs The set of all attribute configurations for this instance. </span>
<span class="c"> * Attributes will be removed from this set, if they belong to the filtered class, so</span>
<span class="c"> * that by the time all classes are processed, allCfgs will be empty.</span>
<span class="c"> * </span>
<span class="c"> * @return {Object} The set of attributes belonging to the class passed in, in the form</span>
<span class="c"> * of an object with attribute name/configuration pairs.</span>
<span class="c"> */</span>
<span class="nx">_filterAttrCfgs</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">clazz</span><span class="o">,</span> <span class="nx">allCfgs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">cfgs</span> <span class="o">=</span> <span class="kc">null</span><span class="o">,</span> <span class="nx">attr</span><span class="o">,</span> <span class="nx">attrs</span> <span class="o">=</span> <span class="nx">clazz</span><span class="o">.</span><span class="nx">ATTRS</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">attrs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">attr</span> <span class="k">in</span> <span class="nx">attrs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">attrs</span><span class="o">.</span><span class="nx">hasOwnProperty</span><span class="o">(</span><span class="nx">attr</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">allCfgs</span><span class="o">[</span><span class="nx">attr</span><span class="o">])</span> <span class="o">{</span>
<span class="nx">cfgs</span> <span class="o">=</span> <span class="nx">cfgs</span> <span class="o">||</span> <span class="o">{};</span>
<span class="nx">cfgs</span><span class="o">[</span><span class="nx">attr</span><span class="o">]</span> <span class="o">=</span> <span class="nx">allCfgs</span><span class="o">[</span><span class="nx">attr</span><span class="o">];</span>
<span class="nx">delete</span> <span class="nx">allCfgs</span><span class="o">[</span><span class="nx">attr</span><span class="o">];</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">cfgs</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * A helper method used by _getClasses and _getAttrCfgs, which determines both</span>
<span class="c"> * the array of classes and aggregate set of attribute configurations</span>
<span class="c"> * across the class hierarchy for the instance.</span>
<span class="c"> * </span>
<span class="c"> * @method _initHierarchyData</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="nx">_initHierarchyData</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">c</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">constructor</span><span class="o">,</span>
<span class="nx">classes</span> <span class="o">=</span> <span class="o">[],</span>
<span class="nx">attrs</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">while</span> <span class="o">(</span><span class="nx">c</span><span class="o">)</span> <span class="o">{</span>
<span class="c">// Add to classes</span>
<span class="c"></span> <span class="nx">classes</span><span class="o">[</span><span class="nx">classes</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">c</span><span class="o">;</span>
<span class="c">// Add to attributes</span>
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">c</span><span class="o">.</span><span class="nx">ATTRS</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">attrs</span><span class="o">[</span><span class="nx">attrs</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">c</span><span class="o">.</span><span class="nx">ATTRS</span><span class="o">;</span>
<span class="o">}</span>
<span class="nx">c</span> <span class="o">=</span> <span class="nx">c</span><span class="o">.</span><span class="nx">superclass</span> <span class="o">?</span> <span class="nx">c</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_classes</span> <span class="o">=</span> <span class="nx">classes</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_attrs</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_aggregateAttrs</span><span class="o">(</span><span class="nx">attrs</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * A helper method, used by _initHierarchyData to aggregate </span>
<span class="c"> * attribute configuration across the instances class hierarchy.</span>
<span class="c"> *</span>
<span class="c"> * The method will potect the attribute configuration value to protect the statically defined </span>
<span class="c"> * default value in ATTRS if required (if the value is an object literal, array or the </span>
<span class="c"> * attribute configuration has cloneDefaultValue set to shallow or deep).</span>
<span class="c"> *</span>
<span class="c"> * @method _aggregateAttrs</span>
<span class="c"> * @private</span>
<span class="c"> * @param {Array} allAttrs An array of ATTRS definitions across classes in the hierarchy </span>
<span class="c"> * (subclass first, Base last)</span>
<span class="c"> * @return {Object} The aggregate set of ATTRS definitions for the instance</span>
<span class="c"> */</span>
<span class="nx">_aggregateAttrs</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">allAttrs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">attr</span><span class="o">,</span>
<span class="nx">attrs</span><span class="o">,</span>
<span class="nx">cfg</span><span class="o">,</span>
<span class="nx">val</span><span class="o">,</span>
<span class="nx">path</span><span class="o">,</span>
<span class="nx">i</span><span class="o">,</span>
<span class="nx">clone</span><span class="o">,</span>
<span class="nx">cfgProps</span> <span class="o">=</span> <span class="nx">Base</span><span class="o">.</span><span class="nx">_ATTR_CFG</span><span class="o">,</span>
<span class="nx">aggAttrs</span> <span class="o">=</span> <span class="o">{};</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">allAttrs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="nx">allAttrs</span><span class="o">.</span><span class="nx">length</span><span class="o">-</span><span class="m">1</span><span class="o">;</span> <span class="nx">i</span> <span class="o">>=</span> <span class="m">0</span><span class="o">;</span> <span class="o">--</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">attrs</span> <span class="o">=</span> <span class="nx">allAttrs</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">attr</span> <span class="k">in</span> <span class="nx">attrs</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">attrs</span><span class="o">.</span><span class="nx">hasOwnProperty</span><span class="o">(</span><span class="nx">attr</span><span class="o">))</span> <span class="o">{</span>
<span class="c">// Protect config passed in</span>
<span class="c"></span> <span class="nx">cfg</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">mix</span><span class="o">({},</span> <span class="nx">attrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">],</span> <span class="kc">true</span><span class="o">,</span> <span class="nx">cfgProps</span><span class="o">);</span>
<span class="nx">val</span> <span class="o">=</span> <span class="nx">cfg</span><span class="o">.</span><span class="nx">value</span><span class="o">;</span>
<span class="nx">clone</span> <span class="o">=</span> <span class="nx">cfg</span><span class="o">.</span><span class="nx">cloneDefaultValue</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span> <span class="o">(</span><span class="nx">clone</span> <span class="o">===</span> <span class="kc">undefined</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">OBJECT_CONSTRUCTOR</span> <span class="o">===</span> <span class="nx">val</span><span class="o">.</span><span class="nx">constructor</span> <span class="o">||</span> <span class="nx">L</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">val</span><span class="o">)))</span> <span class="o">||</span> <span class="nx">clone</span> <span class="o">===</span> <span class="nx">DEEP</span> <span class="o">||</span> <span class="nx">clone</span> <span class="o">===</span> <span class="kc">true</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'Cloning default value for attribute:'</span> <span class="o">+</span> <span class="nx">attr</span><span class="o">,</span> <span class="s1">'info'</span><span class="o">,</span> <span class="s1">'base'</span><span class="o">);</span>
<span class="nx">cfg</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">clone</span><span class="o">(</span><span class="nx">val</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">clone</span> <span class="o">===</span> <span class="nx">SHALLOW</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">(</span><span class="s1">'Merging default value for attribute:'</span> <span class="o">+</span> <span class="nx">attr</span><span class="o">,</span> <span class="s1">'info'</span><span class="o">,</span> <span class="s1">'base'</span><span class="o">);</span>
<span class="nx">cfg</span><span class="o">.</span><span class="nx">value</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">merge</span><span class="o">(</span><span class="nx">val</span><span class="o">);</span>
<span class="o">}</span>
<span class="c">// else if (clone === false), don't clone the static default value. </span>
<span class="c"></span> <span class="c">// It's intended to be used by reference.</span>
<span class="c"></span> <span class="o">}</span>
<span class="nx">path</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">attr</span><span class="o">.</span><span class="nx">indexOf</span><span class="o">(</span><span class="nx">DOT</span><span class="o">)</span> <span class="o">!==</span> <span class="o">-</span><span class="m">1</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">path</span> <span class="o">=</span> <span class="nx">attr</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="nx">DOT</span><span class="o">);</span>
<span class="nx">attr</span> <span class="o">=</span> <span class="nx">path</span><span class="o">.</span><span class="nx">shift</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">path</span> <span class="o">&&</span> <span class="nx">aggAttrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">]</span> <span class="o">&&</span> <span class="nx">aggAttrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">].</span><span class="nx">value</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">O</span><span class="o">.</span><span class="nx">setValue</span><span class="o">(</span><span class="nx">aggAttrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">].</span><span class="nx">value</span><span class="o">,</span> <span class="nx">path</span><span class="o">,</span> <span class="nx">val</span><span class="o">);</span>
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(!</span><span class="nx">path</span><span class="o">){</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">aggAttrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">])</span> <span class="o">{</span>
<span class="nx">aggAttrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">]</span> <span class="o">=</span> <span class="nx">cfg</span><span class="o">;</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">mix</span><span class="o">(</span><span class="nx">aggAttrs</span><span class="o">[</span><span class="nx">attr</span><span class="o">],</span> <span class="nx">cfg</span><span class="o">,</span> <span class="kc">true</span><span class="o">,</span> <span class="nx">cfgProps</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="nx">aggAttrs</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Initializes the class hierarchy for the instance, which includes </span>
<span class="c"> * initializing attributes for each class defined in the class's </span>
<span class="c"> * static <a href="#property_Base.ATTRS">ATTRS</a> property and </span>
<span class="c"> * invoking the initializer method on the prototype of each class in the hierarchy.</span>
<span class="c"> *</span>
<span class="c"> * @method _initHierarchy</span>
<span class="c"> * @param {Object} userVals Object with configuration property name/value pairs</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="nx">_initHierarchy</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">userVals</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">lazy</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_lazyAddAttrs</span><span class="o">,</span>
<span class="nx">constr</span><span class="o">,</span>
<span class="nx">constrProto</span><span class="o">,</span>
<span class="nx">ci</span><span class="o">,</span>
<span class="nx">ei</span><span class="o">,</span>
<span class="nx">el</span><span class="o">,</span>
<span class="nx">classes</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getClasses</span><span class="o">(),</span>
<span class="nx">attrCfgs</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getAttrCfgs</span><span class="o">();</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">ci</span> <span class="o">=</span> <span class="nx">classes</span><span class="o">.</span><span class="nx">length</span><span class="o">-</span><span class="m">1</span><span class="o">;</span> <span class="nx">ci</span> <span class="o">>=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">ci</span><span class="o">--)</span> <span class="o">{</span>
<span class="nx">constr</span> <span class="o">=</span> <span class="nx">classes</span><span class="o">[</span><span class="nx">ci</span><span class="o">];</span>
<span class="nx">constrProto</span> <span class="o">=</span> <span class="nx">constr</span><span class="o">.</span><span class="nx">prototype</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">constr</span><span class="o">.</span><span class="nx">_yuibuild</span> <span class="o">&&</span> <span class="nx">constr</span><span class="o">.</span><span class="nx">_yuibuild</span><span class="o">.</span><span class="nx">exts</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">constr</span><span class="o">.</span><span class="nx">_yuibuild</span><span class="o">.</span><span class="nx">dynamic</span><span class="o">)</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">ei</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">el</span> <span class="o">=</span> <span class="nx">constr</span><span class="o">.</span><span class="nx">_yuibuild</span><span class="o">.</span><span class="nx">exts</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">ei</span> <span class="o"><</span> <span class="nx">el</span><span class="o">;</span> <span class="nx">ei</span><span class="o">++)</span> <span class="o">{</span>
<span class="nx">constr</span><span class="o">.</span><span class="nx">_yuibuild</span><span class="o">.</span><span class="nx">exts</span><span class="o">[</span><span class="nx">ei</span><span class="o">].</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">addAttrs</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_filterAttrCfgs</span><span class="o">(</span><span class="nx">constr</span><span class="o">,</span> <span class="nx">attrCfgs</span><span class="o">),</span> <span class="nx">userVals</span><span class="o">,</span> <span class="nx">lazy</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">constrProto</span><span class="o">.</span><span class="nx">hasOwnProperty</span><span class="o">(</span><span class="nx">INITIALIZER</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">constrProto</span><span class="o">.</span><span class="nx">initializer</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Destroys the class hierarchy for this instance by invoking</span>
<span class="c"> * the descructor method on the prototype of each class in the hierarchy.</span>
<span class="c"> *</span>
<span class="c"> * @method _destroyHierarchy</span>
<span class="c"> * @private</span>
<span class="c"> */</span>
<span class="nx">_destroyHierarchy</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">constr</span><span class="o">,</span>
<span class="nx">constrProto</span><span class="o">,</span>
<span class="nx">ci</span><span class="o">,</span> <span class="nx">cl</span><span class="o">,</span>
<span class="nx">classes</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getClasses</span><span class="o">();</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">ci</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">cl</span> <span class="o">=</span> <span class="nx">classes</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">ci</span> <span class="o"><</span> <span class="nx">cl</span><span class="o">;</span> <span class="nx">ci</span><span class="o">++)</span> <span class="o">{</span>
<span class="nx">constr</span> <span class="o">=</span> <span class="nx">classes</span><span class="o">[</span><span class="nx">ci</span><span class="o">];</span>
<span class="nx">constrProto</span> <span class="o">=</span> <span class="nx">constr</span><span class="o">.</span><span class="nx">prototype</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">constrProto</span><span class="o">.</span><span class="nx">hasOwnProperty</span><span class="o">(</span><span class="nx">DESTRUCTOR</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">constrProto</span><span class="o">.</span><span class="nx">destructor</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">arguments</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Default toString implementation. Provides the constructor NAME</span>
<span class="c"> * and the instance ID.</span>
<span class="c"> *</span>
<span class="c"> * @method toString</span>
<span class="c"> * @return {String} String representation for this object</span>
<span class="c"> */</span>
<span class="nx">toString</span><span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">NAME</span> <span class="o">+</span> <span class="s2">"["</span> <span class="o">+</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">stamp</span><span class="o">(</span><span class="k">this</span><span class="o">)</span> <span class="o">+</span> <span class="s2">"]"</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">};</span>
<span class="c">// Straightup augment, no wrapper functions</span>
<span class="c"></span> <span class="nx">Y</span><span class="o">.</span><span class="nx">mix</span><span class="o">(</span><span class="nx">Base</span><span class="o">,</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Attribute</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="m">1</span><span class="o">);</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">mix</span><span class="o">(</span><span class="nx">Base</span><span class="o">,</span> <span class="nx">PluginHost</span><span class="o">,</span> <span class="kc">false</span><span class="o">,</span> <span class="kc">null</span><span class="o">,</span> <span class="m">1</span><span class="o">);</span>
<span class="c">/**</span>
<span class="c"> * Alias for <a href="Plugin.Host.html#method_Plugin.Host.plug">Plugin.Host.plug</a>. See aliased </span>
<span class="c"> * method for argument and return value details.</span>
<span class="c"> *</span>
<span class="c"> * @method Base.plug</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">Base</span><span class="o">.</span><span class="nx">plug</span> <span class="o">=</span> <span class="nx">PluginHost</span><span class="o">.</span><span class="nx">plug</span><span class="o">;</span>
<span class="c">/**</span>
<span class="c"> * Alias for <a href="Plugin.Host.html#method_Plugin.Host.unplug">Plugin.Host.unplug</a>. See the </span>
<span class="c"> * aliased method for argument and return value details.</span>
<span class="c"> *</span>
<span class="c"> * @method Base.unplug</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">Base</span><span class="o">.</span><span class="nx">unplug</span> <span class="o">=</span> <span class="nx">PluginHost</span><span class="o">.</span><span class="nx">unplug</span><span class="o">;</span>
<span class="c">// Fix constructor</span>
<span class="c"></span> <span class="nx">Base</span><span class="o">.</span><span class="nx">prototype</span><span class="o">.</span><span class="nx">constructor</span> <span class="o">=</span> <span class="nx">Base</span><span class="o">;</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">Base</span> <span class="o">=</span> <span class="nx">Base</span><span class="o">;</span>
</pre></div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div id="moduleList" class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_anim.html" title="anim">anim</a></li>
<li class=""><a href="module_attribute.html" title="attribute">attribute</a></li>
<li class="selected"><a href="module_base.html" title="base">base</a></li>
<li class=""><a href="module_cache.html" title="cache">cache</a></li>
<li class=""><a href="module_classnamemanager.html" title="classnamemanager">classnamemanager</a></li>
<li class=""><a href="module_collection.html" title="collection">collection</a></li>
<li class=""><a href="module_console.html" title="console">console</a></li>
<li class=""><a href="module_console-filters.html" title="console-filters">console-filters</a></li>
<li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
<li class=""><a href="module_dataschema.html" title="dataschema">dataschema</a></li>
<li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
<li class=""><a href="module_datatype.html" title="datatype">datatype</a></li>
<li class=""><a href="module_dd.html" title="dd">dd</a></li>
<li class=""><a href="module_dom.html" title="dom">dom</a></li>
<li class=""><a href="module_dump.html" title="dump">dump</a></li>
<li class=""><a href="module_event.html" title="event">event</a></li>
<li class=""><a href="module_event-custom.html" title="event-custom">event-custom</a></li>
<li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
<li class=""><a href="module_history.html" title="history">history</a></li>
<li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
<li class=""><a href="module_io.html" title="io">io</a></li>
<li class=""><a href="module_json.html" title="json">json</a></li>
<li class=""><a href="module_node.html" title="node">node</a></li>
<li class=""><a href="module_node-focusmanager.html" title="node-focusmanager">node-focusmanager</a></li>
<li class=""><a href="module_node-menunav.html" title="node-menunav">node-menunav</a></li>
<li class=""><a href="module_oop.html" title="oop">oop</a></li>
<li class=""><a href="module_overlay.html" title="overlay">overlay</a></li>
<li class=""><a href="module_plugin.html" title="plugin">plugin</a></li>
<li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
<li class=""><a href="module_queue.html" title="queue">queue</a></li>
<li class=""><a href="module_slider.html" title="slider">slider</a></li>
<li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
<li class=""><a href="module_substitute.html" title="substitute">substitute</a></li>
<li class=""><a href="module_test.html" title="test">test</a></li>
<li class=""><a href="module_widget.html" title="widget">widget</a></li>
<li class=""><a href="module_widget-position.html" title="widget-position">widget-position</a></li>
<li class=""><a href="module_widget-position-ext.html" title="widget-position-ext">widget-position-ext</a></li>
<li class=""><a href="module_widget-stack.html" title="widget-stack">widget-stack</a></li>
<li class=""><a href="module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a></li>
<li class=""><a href="module_yui.html" title="yui">yui</a></li>
</ul>
</div>
<div id="classList" class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="Base.html" title="Base">Base</a></li>
<li class=""><a href="Plugin.Host.html" title="Plugin.Host">Plugin.Host</a></li>
</ul>
</div>
<div id="fileList" class="module">
<h4>Files</h4>
<ul class="content">
<li class="selected"><a href="Base.js.html" title="Base.js">Base.js</a></li>
<li class=""><a href="BaseBuild.js.html" title="BaseBuild.js">BaseBuild.js</a></li>
<li class=""><a href="PluginHost.js.html" title="PluginHost.js">PluginHost.js</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright © 2009 Yahoo! Inc. All rights reserved.
</div>
</div>
<script type="text/javascript">
ALL_YUI_PROPS = [{"access": "private", "host": "Base", "name": "_aggregateAttrs", "url": "Base.html#method__aggregateAttrs", "type": "method"}, {"access": "private", "host": "Base", "name": "Base._ATTR_CFG", "url": "Base.html#property_Base._ATTR_CFG", "type": "property"}, {"access": "", "host": "Base", "name": "Base.ATTRS", "url": "Base.html#property_Base.ATTRS", "type": "property"}, {"access": "", "host": "Base", "name": "Base.build", "url": "Base.html#method_Base.build", "type": "method"}, {"access": "private", "host": "Base", "name": "Base._buildCfg", "url": "Base.html#property_Base._buildCfg", "type": "property"}, {"access": "", "host": "Base", "name": "Base.NAME", "url": "Base.html#property_Base.NAME", "type": "property"}, {"access": "", "host": "Base", "name": "Base.plug", "url": "Base.html#method_Base.plug", "type": "method"}, {"access": "", "host": "Base", "name": "Base.unplug", "url": "Base.html#method_Base.unplug", "type": "method"}, {"access": "protected", "host": "Base", "name": "_defDestroyFn", "url": "Base.html#method__defDestroyFn", "type": "method"}, {"access": "protected", "host": "Base", "name": "_defInitFn", "url": "Base.html#method__defInitFn", "type": "method"}, {"access": "", "host": "Base", "name": "destroy", "url": "Base.html#method_destroy", "type": "method"}, {"access": "", "host": "Base", "name": "destroy", "url": "Base.html#event_destroy", "type": "event"}, {"access": "", "host": "Base", "name": "destroyed", "url": "Base.html#config_destroyed", "type": "config"}, {"access": "", "host": "Base", "name": "destroyedChange", "url": "Base.html#event_destroyedChange", "type": "event"}, {"access": "private", "host": "Base", "name": "_destroyHierarchy", "url": "Base.html#method__destroyHierarchy", "type": "method"}, {"access": "private", "host": "Plugin.Host", "name": "_destroyPlugins", "url": "Plugin.Host.html#method__destroyPlugins", "type": "method"}, {"access": "private", "host": "Base", "name": "_filterAttrCfs", "url": "Base.html#method__filterAttrCfs", "type": "method"}, {"access": "protected", "host": "Base", "name": "_getAttrCfgs", "url": "Base.html#method__getAttrCfgs", "type": "method"}, {"access": "protected", "host": "Base", "name": "_getClasses", "url": "Base.html#method__getClasses", "type": "method"}, {"access": "", "host": "Plugin.Host", "name": "hasPlugin", "url": "Plugin.Host.html#method_hasPlugin", "type": "method"}, {"access": "", "host": "Base", "name": "init", "url": "Base.html#method_init", "type": "method"}, {"access": "", "host": "Base", "name": "init", "url": "Base.html#event_init", "type": "event"}, {"access": "private", "host": "Base", "name": "_initHierarchy", "url": "Base.html#method__initHierarchy", "type": "method"}, {"access": "private", "host": "Base", "name": "_initHierarchyData", "url": "Base.html#method__initHierarchyData", "type": "method"}, {"access": "", "host": "Base", "name": "initialized", "url": "Base.html#config_initialized", "type": "config"}, {"access": "", "host": "Base", "name": "initializedChange", "url": "Base.html#event_initializedChange", "type": "event"}, {"access": "private", "host": "Plugin.Host", "name": "_initPlugins", "url": "Plugin.Host.html#method__initPlugins", "type": "method"}, {"access": "", "host": "Base", "name": "name", "url": "Base.html#property_name", "type": "property"}, {"access": "private", "host": "Plugin.Host", "name": "_plug", "url": "Plugin.Host.html#method__plug", "type": "method"}, {"access": "", "host": "Plugin.Host", "name": "plug", "url": "Plugin.Host.html#method_plug", "type": "method"}, {"access": "", "host": "Plugin.Host", "name": "Plugin.Host.plug", "url": "Plugin.Host.html#method_Plugin.Host.plug", "type": "method"}, {"access": "", "host": "Plugin.Host", "name": "Plugin.Host.unplug", "url": "Plugin.Host.html#method_Plugin.Host.unplug", "type": "method"}, {"access": "", "host": "Base", "name": "toString", "url": "Base.html#method_toString", "type": "method"}, {"access": "private", "host": "Plugin.Host", "name": "_unplug", "url": "Plugin.Host.html#method__unplug", "type": "method"}, {"access": "", "host": "Plugin.Host", "name": "unplug", "url": "Plugin.Host.html#method_unplug", "type": "method"}];
</script>
</body>
</html>