1951 lines
No EOL
266 KiB
HTML
1951 lines
No EOL
266 KiB
HTML
<html><head><title>tabview.js</title><link rel="stylesheet" type="text/css" href="../style.css" media="screen"/></head><body><div class="hl-main"><pre><span class="hl-comment">/*
|
|
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
|
|
Code licensed under the BSD License:
|
|
</span><span class="hl-url">http://developer.yahoo.net/yui/license.txt</span><span class="hl-comment">
|
|
version: 0.12.0
|
|
*/
|
|
</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">isArray</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) { </span><span class="hl-comment">// frames lose type, so test constructor string
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code"> && </span><span class="hl-identifier">val</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-brackets">()</span><span class="hl-code">.</span><span class="hl-identifier">indexOf</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">Array</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> > -</span><span class="hl-number">1</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isObject</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">)</span><span class="hl-code"> && </span><span class="hl-identifier">val</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code"> == </span><span class="hl-builtin">Array</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isBoolean</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">boolean</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isFunction</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">function</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isNull</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">val</span><span class="hl-code"> === </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isNumber</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return</span><span class="hl-code"> !</span><span class="hl-identifier">isNaN</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isObject</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">object</span><span class="hl-quotes">'</span><span class="hl-code"> || </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isFunction</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isString</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">string</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">isUndefined</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">val</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return typeof </span><span class="hl-identifier">val</span><span class="hl-code"> == </span><span class="hl-quotes">'</span><span class="hl-string">undefined</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-comment">/**
|
|
* Provides Attribute configurations.
|
|
* @namespace YAHOO.util
|
|
* @class Attribute
|
|
* @constructor
|
|
* @param hash {Object} The intial Attribute.
|
|
* @param {YAHOO.util.AttributeProvider} The owner of the Attribute instance.
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">util</span><span class="hl-default">.</span><span class="hl-identifier">Attribute</span><span class="hl-default"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">hash</span><span class="hl-code">, </span><span class="hl-identifier">owner</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">owner</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">owner</span><span class="hl-code"> = </span><span class="hl-identifier">owner</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-brackets">(</span><span class="hl-identifier">hash</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-default">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-default">.</span><span class="hl-identifier">util</span><span class="hl-default">.</span><span class="hl-identifier">Attribute</span><span class="hl-default">.</span><span class="hl-identifier">prototype</span><span class="hl-default"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-comment">/**
|
|
* The name of the attribute.
|
|
* @property name
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">name</span><span class="hl-code">: </span><span class="hl-identifier">undefined</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The value of the attribute.
|
|
* @property value
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The owner of the attribute.
|
|
* @property owner
|
|
* @type YAHOO.util.AttributeProvider
|
|
*/
|
|
</span><span class="hl-identifier">owner</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not the attribute is read only.
|
|
* @property readOnly
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">readOnly</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not the attribute can only be written once.
|
|
* @property writeOnce
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">writeOnce</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The attribute's initial configuration.
|
|
* @private
|
|
* @property _initialConfig
|
|
* @type Object
|
|
*/
|
|
</span><span class="hl-identifier">_initialConfig</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not the attribute's value has been set.
|
|
* @private
|
|
* @property _written
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-identifier">_written</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The method to use when setting the attribute's value.
|
|
* The method recieves the new value as the only argument.
|
|
* @property method
|
|
* @type Function
|
|
*/
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The validator to use when setting the attribute's value.
|
|
* @property validator
|
|
* @type Function
|
|
* @return Boolean
|
|
*/
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Retrieves the current value of the attribute.
|
|
* @method getValue
|
|
* @return {any} The current value of the attribute.
|
|
*/
|
|
</span><span class="hl-identifier">getValue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Sets the value of the attribute and fires beforeChange and change events.
|
|
* @method setValue
|
|
* @param {Any} value The value to apply to the attribute.
|
|
* @param {Boolean} silent If true the change events will not be fired.
|
|
* @return {Boolean} Whether or not the value was set.
|
|
*/
|
|
</span><span class="hl-identifier">setValue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">beforeRetVal</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">owner</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">owner</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">name</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">event</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">type</span><span class="hl-code">: </span><span class="hl-identifier">name</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">prevValue</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getValue</span><span class="hl-brackets">()</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">newValue</span><span class="hl-code">: </span><span class="hl-identifier">value
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">readOnly</span><span class="hl-code"> || </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">writeOnce</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_written</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// write not allowed
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">validator</span><span class="hl-code"> && !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">validator</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">owner</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// invalid value
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">beforeRetVal</span><span class="hl-code"> = </span><span class="hl-identifier">owner</span><span class="hl-code">.</span><span class="hl-identifier">fireBeforeChangeEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">beforeRetVal</span><span class="hl-code"> === </span><span class="hl-reserved">false</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">setValue </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">name</span><span class="hl-code"> +
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">cancelled by beforeChange event</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">info</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Attribute</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-identifier">owner</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_written</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">event</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> = </span><span class="hl-identifier">name</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">owner</span><span class="hl-code">.</span><span class="hl-identifier">fireChangeEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">event</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Allows for configuring the Attribute's properties.
|
|
* @method configure
|
|
* @param {Object} map A key-value map of Attribute properties.
|
|
* @param {Boolean} init Whether or not this should become the initial config.
|
|
*/
|
|
</span><span class="hl-identifier">configure</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_written</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">; </span><span class="hl-comment">// reset writeOnce
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">key</span><span class="hl-code"> && </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">init</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Resets the value to the initial config value.
|
|
* @method resetValue
|
|
* @return {Boolean} Whether or not the value was set.
|
|
*/
|
|
</span><span class="hl-identifier">resetValue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">setValue</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Resets the attribute config to the initial config state.
|
|
* @method resetConfig
|
|
*/
|
|
</span><span class="hl-identifier">resetConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Resets the value to the current value.
|
|
* Useful when values may have gotten out of sync with actual properties.
|
|
* @method refresh
|
|
* @return {Boolean} Whether or not the value was set.
|
|
*/
|
|
</span><span class="hl-identifier">refresh</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">setValue</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Lang</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/*
|
|
Copyright (c) 2006, Yahoo! Inc. All rights reserved.
|
|
Code licensed under the BSD License:
|
|
</span><span class="hl-url">http://developer.yahoo.net/yui/license.txt
|
|
</span><span class="hl-comment">*/
|
|
// holder
|
|
/**
|
|
* Provides and manages YAHOO.util.Attribute instances
|
|
* @namespace YAHOO.util
|
|
* @class AttributeProvider
|
|
* @uses YAHOO.util.EventProvider
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">AttributeProvider</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
|
|
</span><span class="hl-comment">/**
|
|
* A key-value map of Attribute configurations
|
|
* @property _configs
|
|
* @protected (may be used by subclasses and augmentors)
|
|
* @private
|
|
* @type {Object}
|
|
*/
|
|
</span><span class="hl-identifier">_configs</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
</span><span class="hl-comment">/**
|
|
* Returns the current value of the attribute.
|
|
* @method get
|
|
* @param {String} key The attribute whose value will be returned.
|
|
*/
|
|
</span><span class="hl-identifier">get</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">config</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string"> not found</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">AttributeProvider</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">undefined</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">config</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Sets the value of a config.
|
|
* @method set
|
|
* @param {String} key The name of the attribute
|
|
* @param {Any} value The value to apply to the attribute
|
|
* @param {Boolean} silent Whether or not to suppress change events
|
|
* @return {Boolean} Whether or not the value was set.
|
|
*/
|
|
</span><span class="hl-identifier">set</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">config</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">set failed: </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">key</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string"> not found</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">AttributeProvider</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">config</span><span class="hl-code">.</span><span class="hl-identifier">setValue</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns an array of attribute names.
|
|
* @method getAttributeKeys
|
|
* @return {Array} An array of attribute names.
|
|
*/
|
|
</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">configs</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">configs</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">config</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">keys</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">key</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">keys</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Sets multiple attribute values.
|
|
* @method setAttributes
|
|
* @param {Object} map A key-value map of attributes
|
|
* @param {Boolean} silent Whether or not to suppress change events
|
|
*/
|
|
</span><span class="hl-identifier">setAttributes</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Resets the specified attribute's value to its initial value.
|
|
* @method resetValue
|
|
* @param {String} key The name of the attribute
|
|
* @param {Boolean} silent Whether or not to suppress change events
|
|
* @return {Boolean} Whether or not the value was set
|
|
*/
|
|
</span><span class="hl-identifier">resetValue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">_initialConfig</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Sets the attribute's value to its current value.
|
|
* @method refresh
|
|
* @param {String | Array} key The attribute(s) to refresh
|
|
* @param {Boolean} silent Whether or not to suppress change events
|
|
*/
|
|
</span><span class="hl-identifier">refresh</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">key</span><span class="hl-code"> = </span><span class="hl-brackets">( ( </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) )</span><span class="hl-code"> ? </span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> : </span><span class="hl-identifier">key </span><span class="hl-brackets">)</span><span class="hl-code"> ||
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">key</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">len</span><span class="hl-code">; ++</span><span class="hl-identifier">i</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-comment">// only set if there is a value and not null
|
|
</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]]</span><span class="hl-code"> &&
|
|
! </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]]</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code"> &&
|
|
! </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isNull</span><span class="hl-brackets">(</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]]</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]]</span><span class="hl-code">.</span><span class="hl-identifier">refresh</span><span class="hl-brackets">(</span><span class="hl-identifier">silent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Adds an Attribute to the AttributeProvider instance.
|
|
* @method register
|
|
* @param {String} key The attribute's name
|
|
* @param {Object} map A key-value map containing the
|
|
* attribute's properties.
|
|
*/
|
|
</span><span class="hl-identifier">register</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) { </span><span class="hl-comment">// dont override
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-identifier">key</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Attribute</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns the attribute's properties.
|
|
* @method getAttributeConfig
|
|
* @param {String} key The attribute's name
|
|
* @private
|
|
* @return {object} A key-value map containing all of the
|
|
* attribute's properties.
|
|
*/
|
|
</span><span class="hl-identifier">getAttributeConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">config</span><span class="hl-code"> = </span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">; </span><span class="hl-comment">// returning a copy to prevent overrides
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">config</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">config</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">map</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">config</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">map</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Sets or updates an Attribute instance's properties.
|
|
* @method configureAttribute
|
|
* @param {String} key The attribute's name.
|
|
* @param {Object} map A key-value map of attribute properties
|
|
* @param {Boolean} init Whether or not this should become the intial config.
|
|
*/
|
|
</span><span class="hl-identifier">configureAttribute</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">unable to configure, </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">key</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string"> not found</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">AttributeProvider</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Resets an attribute to its intial configuration.
|
|
* @method resetAttributeConfig
|
|
* @param {String} key The attribute's name.
|
|
* @private
|
|
*/
|
|
</span><span class="hl-identifier">resetAttributeConfig</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">){
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">resetConfig</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires the attribute's beforeChange event.
|
|
* @method fireBeforeChangeEvent
|
|
* @param {String} key The attribute's name.
|
|
* @param {Obj} e The event object to pass to handlers.
|
|
*/
|
|
</span><span class="hl-identifier">fireBeforeChangeEvent</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">type</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">before</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">type</span><span class="hl-code"> += </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">.</span><span class="hl-identifier">charAt</span><span class="hl-brackets">(</span><span class="hl-number">0</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">toUpperCase</span><span class="hl-brackets">()</span><span class="hl-code"> + </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">.</span><span class="hl-identifier">substr</span><span class="hl-brackets">(</span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">Change</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> = </span><span class="hl-identifier">type</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires the attribute's change event.
|
|
* @method fireChangeEvent
|
|
* @param {String} key The attribute's name.
|
|
* @param {Obj} e The event object to pass to the handlers.
|
|
*/
|
|
</span><span class="hl-identifier">fireChangeEvent</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code"> += </span><span class="hl-quotes">'</span><span class="hl-string">Change</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">augment</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">EventProvider</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-comment">// internal shorthand
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">Lang</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">EventPublisher</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">EventPublisher</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">AttributeProvider</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Element provides an interface to an HTMLElement's attributes and common
|
|
* methods. Other commonly used attributes are added as well.
|
|
* @namespace YAHOO.util
|
|
* @class Element
|
|
* @uses YAHOO.util.AttributeProvider
|
|
* @constructor
|
|
* @param el {HTMLElement | String} The html element that
|
|
* represents the Element.
|
|
* @param {Object} map A key-value map of initial config names and values
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Element</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">init</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Element</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-comment">/**
|
|
* Dom events supported by the Element instance.
|
|
* @property DOM_EVENTS
|
|
* @type Object
|
|
*/
|
|
</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-code">: </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for HTMLElement method.
|
|
* @method appendChild
|
|
* @param {Boolean} deep Whether or not to do a deep clone
|
|
*/
|
|
</span><span class="hl-identifier">appendChild</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">child</span><span class="hl-code"> = </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">child</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for HTMLElement method.
|
|
* @method getElementsByTagName
|
|
* @param {String} tag The tagName to collect
|
|
*/
|
|
</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tag</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-identifier">tag</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for HTMLElement method.
|
|
* @method hasChildNodes
|
|
* @return {Boolean} Whether or not the element has childNodes
|
|
*/
|
|
</span><span class="hl-identifier">hasChildNodes</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">hasChildNodes</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for HTMLElement method.
|
|
* @method insertBefore
|
|
* @param {HTMLElement} element The HTMLElement to insert
|
|
* @param {HTMLElement} before The HTMLElement to insert
|
|
* the element before.
|
|
*/
|
|
</span><span class="hl-identifier">insertBefore</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">before</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-code"> && </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">before</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for HTMLElement method.
|
|
* @method removeChild
|
|
* @param {HTMLElement} child The HTMLElement to remove
|
|
*/
|
|
</span><span class="hl-identifier">removeChild</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">child</span><span class="hl-code"> = </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">child</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">child</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">(</span><span class="hl-identifier">child</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for HTMLElement method.
|
|
* @method replaceChild
|
|
* @param {HTMLElement} newNode The HTMLElement to insert
|
|
* @param {HTMLElement} oldNode The HTMLElement to replace
|
|
*/
|
|
</span><span class="hl-identifier">replaceChild</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">newNode</span><span class="hl-code">, </span><span class="hl-identifier">oldNode</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">newNode</span><span class="hl-code"> = </span><span class="hl-identifier">newNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">newNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">newNode</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oldNode</span><span class="hl-code"> = </span><span class="hl-identifier">oldNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code"> ? </span><span class="hl-identifier">oldNode</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">oldNode</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">newNode</span><span class="hl-code">, </span><span class="hl-identifier">oldNode</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Registers Element specific attributes.
|
|
* @method initAttributes
|
|
* @param {Object} map A key-value map of initial attribute configs
|
|
*/
|
|
</span><span class="hl-identifier">initAttributes</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The HTMLElement the Element instance refers to.
|
|
* @config element
|
|
* @type HTMLElement
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">element</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">readOnly</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Adds a listener for the given event. These may be DOM or
|
|
* customEvent listeners. Any event that is fired via fireEvent
|
|
* can be listened for. All handlers receive an event object.
|
|
* @method addListener
|
|
* @param {String} type The name of the event to listen for
|
|
* @param {Function} fn The handler to call when the event fires
|
|
* @param {Any} obj A variable to pass to the handler
|
|
* @param {Object} scope The object to use for the scope of the handler
|
|
*/
|
|
</span><span class="hl-identifier">addListener</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">fn</span><span class="hl-code">, </span><span class="hl-identifier">obj</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">scope</span><span class="hl-code"> = </span><span class="hl-identifier">scope</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_events</span><span class="hl-brackets">[</span><span class="hl-identifier">type</span><span class="hl-brackets">]) { </span><span class="hl-comment">// create on the fly
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-brackets">[</span><span class="hl-identifier">type</span><span class="hl-brackets">] ) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code"> && !</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-brackets">) { </span><span class="hl-comment">// supplement IE with target
|
|
</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">target</span><span class="hl-code"> = </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">srcElement</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">, </span><span class="hl-identifier">obj</span><span class="hl-code">, </span><span class="hl-identifier">scope</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">createEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_events</span><span class="hl-brackets">[</span><span class="hl-identifier">type</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-reserved">true</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">subscribe</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// notify via customEvent
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Alias for addListener
|
|
* @method on
|
|
* @param {String} type The name of the event to listen for
|
|
* @param {Function} fn The function call when the event fires
|
|
* @param {Any} obj A variable to pass to the handler
|
|
* @param {Object} scope The object to use for the scope of the handler
|
|
*/
|
|
</span><span class="hl-identifier">on</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() { </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Remove an event listener
|
|
* @method removeListener
|
|
* @param {String} type The name of the event to listen for
|
|
* @param {Function} fn The function call when the event fires
|
|
*/
|
|
</span><span class="hl-identifier">removeListener</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">fn</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">unsubscribe</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method addClass
|
|
* @param {String} className The className to add
|
|
*/
|
|
</span><span class="hl-identifier">addClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method getElementsByClassName
|
|
* @param {String} className The className to collect
|
|
* @param {String} tag (optional) The tag to use in
|
|
* conjunction with class name
|
|
* @return {Array} Array of HTMLElements
|
|
*/
|
|
</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-code">, </span><span class="hl-identifier">tag</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-code">, </span><span class="hl-identifier">tag</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">) )</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method hasClass
|
|
* @param {String} className The className to add
|
|
* @return {Boolean} Whether or not the element has the class name
|
|
*/
|
|
</span><span class="hl-identifier">hasClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method removeClass
|
|
* @param {String} className The className to remove
|
|
*/
|
|
</span><span class="hl-identifier">removeClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">className</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">className</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method replaceClass
|
|
* @param {String} oldClassName The className to replace
|
|
* @param {String} newClassName The className to add
|
|
*/
|
|
</span><span class="hl-identifier">replaceClass</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">oldClassName</span><span class="hl-code">, </span><span class="hl-identifier">newClassName</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">replaceClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">oldClassName</span><span class="hl-code">, </span><span class="hl-identifier">newClassName</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method setStyle
|
|
* @param {String} property The style property to set
|
|
* @param {String} value The value to apply to the style property
|
|
*/
|
|
</span><span class="hl-identifier">setStyle</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">setStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Wrapper for Dom method.
|
|
* @method getStyle
|
|
* @param {String} property The style property to retrieve
|
|
* @return {String} The current value of the property
|
|
*/
|
|
</span><span class="hl-identifier">getStyle</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">property</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">getStyle</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">property</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Apply any queued set calls.
|
|
* @method fireQueue
|
|
*/
|
|
</span><span class="hl-identifier">fireQueue</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">queue</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">queue</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">len</span><span class="hl-code">; ++</span><span class="hl-identifier">i</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-brackets">[</span><span class="hl-identifier">queue</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">][</span><span class="hl-number">0</span><span class="hl-brackets">]]</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">queue</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">][</span><span class="hl-number">1</span><span class="hl-brackets">])</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Appends the HTMLElement into either the supplied parentNode.
|
|
* @method appendTo
|
|
* @param {HTMLElement | Element} parentNode The node to append to
|
|
* @param {HTMLElement | Element} before An optional node to insert before
|
|
*/
|
|
</span><span class="hl-identifier">appendTo</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">parent</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">parent</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">parent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">before</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-code"> && </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">)</span><span class="hl-code"> ?
|
|
</span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> : </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">newAddition</span><span class="hl-code"> = !</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">inDocument</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">element</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">appendTo failed: element not available</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">appendTo failed: parent not available</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">.</span><span class="hl-identifier">parent</span><span class="hl-code"> != </span><span class="hl-identifier">parent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">before</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">parent</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string">appended to </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">parent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">newAddition</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// note return; no refresh if in document
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// if a new addition, refresh HTMLElement any applied attributes
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">keys</span><span class="hl-brackets">) { </span><span class="hl-comment">// only refresh HTMLElement attributes
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">refresh</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">get</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">configs</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">; </span><span class="hl-comment">// avoid loop due to 'element'
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code"> && !</span><span class="hl-identifier">configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> && !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">set</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">silent</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">el</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">set</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-comment">// set it on the element if not a property
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> && !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
|
|
</span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">register</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-brackets">) { </span><span class="hl-comment">// protect html attributes
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">element</span><span class="hl-code"> && !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-identifier">element</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) ) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-identifier">key</span><span class="hl-code"> + </span><span class="hl-quotes">'</span><span class="hl-string"> is reserved for </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">element</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">configureAttribute</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">init</span><span class="hl-brackets">) { </span><span class="hl-comment">// protect html attributes
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">property</span><span class="hl-brackets">]</span><span class="hl-code"> && </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> &&
|
|
!</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isUndefined</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">[</span><span class="hl-identifier">property</span><span class="hl-brackets">]) ) {
|
|
</span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">property</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">configure</span><span class="hl-code">.</span><span class="hl-identifier">apply</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">keys</span><span class="hl-code"> = </span><span class="hl-identifier">AttributeProvider</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">.</span><span class="hl-identifier">getAttributeKeys</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">//add any unconfigured element keys
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">key </span><span class="hl-reserved">in </span><span class="hl-identifier">el</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]) {
|
|
</span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">keys</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">keys</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
|
|
</span><span class="hl-identifier">init</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-code"> || </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_events</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_events</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">click</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">keydown</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">keypress</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">keyup</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">mousedown</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">mousemove</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">mouseout</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">mouseover</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">mouseup</span><span class="hl-quotes">'</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">readyHandler</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">setAttributes</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireQueue</span><span class="hl-brackets">()</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentReady</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">type</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">contentReady</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">target</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">el </span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">onAvailable</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> = </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">available</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">type</span><span class="hl-code">: </span><span class="hl-quotes">'</span><span class="hl-string">available</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">target</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">onContentReady</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-identifier">readyHandler</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">readyHandler</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Sets the value of the property and fires beforeChange and change events.
|
|
* @private
|
|
* @method _registerHTMLAttr
|
|
* @param {YAHOO.util.Element} element The Element instance to
|
|
* register the config to.
|
|
* @param {String} key The name of the config to register
|
|
* @param {Object} map A key-value map of the config's params
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_registerHTMLAttr</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">self</span><span class="hl-code">, </span><span class="hl-identifier">key</span><span class="hl-code">, </span><span class="hl-identifier">map</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">self</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">map</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-identifier">key</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">method</span><span class="hl-code"> || </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">el</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> = </span><span class="hl-identifier">map</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">self</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-brackets">[</span><span class="hl-identifier">key</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Attribute</span><span class="hl-brackets">(</span><span class="hl-identifier">map</span><span class="hl-code">, </span><span class="hl-identifier">self</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires when the Element's HTMLElement can be retrieved by Id.
|
|
* <p>See: <a href="#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> available<br>
|
|
* <code>&lt;HTMLElement&gt;
|
|
* target</code> the HTMLElement bound to this Element instance<br>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var target = e.target};<br>
|
|
* myTabs.addListener('available', handler);</code></p>
|
|
* @event available
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires when the Element's HTMLElement subtree is rendered.
|
|
* <p>See: <a href="#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> contentReady<br>
|
|
* <code>&lt;HTMLElement&gt;
|
|
* target</code> the HTMLElement bound to this Element instance<br>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var target = e.target};<br>
|
|
* myTabs.addListener('contentReady', handler);</code></p>
|
|
* @event contentReady
|
|
*/
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">augment</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Element</span><span class="hl-code">, </span><span class="hl-identifier">AttributeProvider</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">Lang</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* A representation of a Tab's label and content.
|
|
* @namespace YAHOO.widget
|
|
* @class Tab
|
|
* @extends YAHOO.util.Element
|
|
* @constructor
|
|
* @param element {HTMLElement | String} (optional) The html element that
|
|
* represents the TabView. An element will be created if none provided.
|
|
* @param {Object} properties A key map of initial properties
|
|
*/
|
|
</span><span class="hl-identifier">Tab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-code"> && !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code"> && !</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">nodeName</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">el</span><span class="hl-code"> && !</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">_createTabElement</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">loadHandler</span><span class="hl-code"> = </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">success</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">content</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-code">.</span><span class="hl-identifier">responseText</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">failure</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">loading failed: </span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">o</span><span class="hl-code">.</span><span class="hl-identifier">statusText</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Tab</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">Tab</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">; </span><span class="hl-comment">// delegating to tabView
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">Tab</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">proto</span><span class="hl-code"> = </span><span class="hl-identifier">Tab</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The default tag name for a Tab's inner element.
|
|
* @property LABEL_INNER_TAGNAME
|
|
* @type String
|
|
* @default "em"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">LABEL_TAGNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">em</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The class name applied to active tabs.
|
|
* @property ACTIVE_CLASSNAME
|
|
* @type String
|
|
* @default "on"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">selected</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The class name applied to disabled tabs.
|
|
* @property DISABLED_CLASSNAME
|
|
* @type String
|
|
* @default "disabled"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The class name applied to dynamic tabs while loading.
|
|
* @property LOADING_CLASSNAME
|
|
* @type String
|
|
* @default "disabled"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">loading</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Provides a reference to the connection request object when data is
|
|
* loaded dynamically.
|
|
* @property dataConnection
|
|
* @type Object
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">dataConnection</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Object containing success and failure callbacks for loading data.
|
|
* @property loadHandler
|
|
* @type object
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">loadHandler</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Provides a readable name for the tab.
|
|
* @method toString
|
|
* @return String
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">id</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">id</span><span class="hl-code"> || </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">tagName</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return </span><span class="hl-quotes">"</span><span class="hl-string">Tab </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-identifier">id</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Registers TabView specific properties.
|
|
* @method initAttributes
|
|
* @param {Object} attr Hash of initial attributes
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Tab</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The event that triggers the tab's activation.
|
|
* @config activationEvent
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activationEvent</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">activationEvent</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">click</span><span class="hl-quotes">'
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The element that contains the tab's label.
|
|
* @config labelEl
|
|
* @type HTMLElement
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">labelEl</span><span class="hl-code"> || </span><span class="hl-identifier">_getlabelEl</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">current</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-code"> == </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// already set
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">current</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else if </span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-brackets">) { </span><span class="hl-comment">// ensure label is firstChild by default
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">firstChild</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The tab's label text (or innerHTML).
|
|
* @config label
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">label</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-reserved">label</span><span class="hl-code"> || </span><span class="hl-identifier">_getLabel</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">labelEl</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">labelEl</span><span class="hl-brackets">) { </span><span class="hl-comment">// create if needed
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">_createlabelEl</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">_setLabel</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The HTMLElement that contains the tab's content.
|
|
* @config contentEl
|
|
* @type HTMLElement
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{ </span><span class="hl-comment">// TODO: apply className?
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">contentEl</span><span class="hl-code"> || </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">current</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-code"> == </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">; </span><span class="hl-comment">// already set
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">replaceChild</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code">, </span><span class="hl-identifier">current</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The tab's content.
|
|
* @config content
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">content</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">content</span><span class="hl-code">, </span><span class="hl-comment">// TODO: what about existing?
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_dataLoaded</span><span class="hl-code"> = </span><span class="hl-reserved">false</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The tab's data source, used for loading content dynamically.
|
|
* @config dataSrc
|
|
* @type String
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataSrc</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">dataSrc
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not content should be reloaded for every view.
|
|
* @config cacheData
|
|
* @type Boolean
|
|
* @default false
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">cacheData</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">cacheData</span><span class="hl-code"> || </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The method to use for the data request.
|
|
* @config loadMethod
|
|
* @type String
|
|
* @default "GET"
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">loadMethod</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">loadMethod</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">GET</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not any data has been loaded from the server.
|
|
* @config dataLoaded
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataLoaded</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-reserved">false</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">writeOnce</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Number if milliseconds before aborting and calling failure handler.
|
|
* @config dataTimeout
|
|
* @type Number
|
|
* @default null
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataTimeout</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">dataTimeout</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isNumber
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not the tab is currently active.
|
|
* If a dataSrc is set for the tab, the content will be loaded from
|
|
* the given source.
|
|
* @config active
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">active</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code"> === </span><span class="hl-reserved">true</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">title</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">title</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">''</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code"> && !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> ;
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Whether or not the tab is disabled.
|
|
* @config disabled
|
|
* @type Boolean
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">disabled</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code"> === </span><span class="hl-reserved">true</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DISABLED_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The href of the tab's anchor element.
|
|
* @config href
|
|
* @type String
|
|
* @default '#'
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">href</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">#</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-brackets">)[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> = </span><span class="hl-identifier">value</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The Whether or not the tab's content is visible.
|
|
* @config contentVisible
|
|
* @type Boolean
|
|
* @default false
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">contentVisible</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-code"> == </span><span class="hl-reserved">true</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">block</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataSrc</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-comment">// load dynamic content unless already loaded and caching
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataLoaded</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> || !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">cacheData</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">_dataConnect</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">style</span><span class="hl-code">.</span><span class="hl-identifier">display</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">none</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isBoolean
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createTabElement</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">li</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">a</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">a</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">href</span><span class="hl-code"> || </span><span class="hl-quotes">'</span><span class="hl-string">#</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">a</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var label</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-reserved">label</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">labelEl</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">labelEl</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">labelEl</span><span class="hl-brackets">) { </span><span class="hl-comment">// user supplied labelEl
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-reserved">label</span><span class="hl-brackets">) { </span><span class="hl-comment">// user supplied label
|
|
</span><span class="hl-reserved">label</span><span class="hl-code"> = </span><span class="hl-identifier">_getLabel</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">labelEl</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">labelEl</span><span class="hl-code"> = </span><span class="hl-identifier">_createlabelEl</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">a</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">labelEl</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_getlabelEl</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByTagName</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LABEL_TAGNAME</span><span class="hl-brackets">)[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createlabelEl</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LABEL_TAGNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_setLabel</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-reserved">label</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code"> = </span><span class="hl-reserved">label</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_getLabel</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var label</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">labelEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">el</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">undefined</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">innerHTML</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_dataConnect</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Connect</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">log</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">YAHOO.util.Connect dependency not met</span><span class="hl-quotes">'</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">error</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-quotes">'</span><span class="hl-string">Tab</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">dataConnection</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Connect</span><span class="hl-code">.</span><span class="hl-identifier">asyncRequest</span><span class="hl-brackets">(
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">loadMethod</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataSrc</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">,
|
|
</span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">success</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">loadHandler</span><span class="hl-code">.</span><span class="hl-identifier">success</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataLoaded</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">dataConnection</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">failure</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">o</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">loadHandler</span><span class="hl-code">.</span><span class="hl-identifier">failure</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">o</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">dataConnection</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">parentNode</span><span class="hl-code">,
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">LOADING_CLASSNAME</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">scope</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">timeout</span><span class="hl-code">: </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">dataTimeout</span><span class="hl-quotes">'</span><span class="hl-brackets">)
|
|
}
|
|
)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Tab</span><span class="hl-code"> = </span><span class="hl-identifier">Tab</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires before the active state is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p>If handler returns false, the change will be cancelled, and the value will not
|
|
* be set.</p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> beforeActiveChange<br>
|
|
* <code>&lt;Boolean&gt;
|
|
* prevValue</code> the current value<br>
|
|
* <code>&lt;Boolean&gt;
|
|
* newValue</code> the new value</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('beforeActiveChange', handler);</code></p>
|
|
* @event beforeActiveChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires after the active state is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> activeChange<br>
|
|
* <code>&lt;Boolean&gt;
|
|
* prevValue</code> the previous value<br>
|
|
* <code>&lt;Boolean&gt;
|
|
* newValue</code> the updated value</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('activeChange', handler);</code></p>
|
|
* @event activeChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires before the tab label is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p>If handler returns false, the change will be cancelled, and the value will not
|
|
* be set.</p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> beforeLabelChange<br>
|
|
* <code>&lt;String&gt;
|
|
* prevValue</code> the current value<br>
|
|
* <code>&lt;String&gt;
|
|
* newValue</code> the new value</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('beforeLabelChange', handler);</code></p>
|
|
* @event beforeLabelChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires after the tab label is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> labelChange<br>
|
|
* <code>&lt;String&gt;
|
|
* prevValue</code> the previous value<br>
|
|
* <code>&lt;String&gt;
|
|
* newValue</code> the updated value</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('labelChange', handler);</code></p>
|
|
* @event labelChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires before the tab content is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p>If handler returns false, the change will be cancelled, and the value will not
|
|
* be set.</p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> beforeContentChange<br>
|
|
* <code>&lt;String&gt;
|
|
* prevValue</code> the current value<br>
|
|
* <code>&lt;String&gt;
|
|
* newValue</code> the new value</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('beforeContentChange', handler);</code></p>
|
|
* @event beforeContentChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires after the tab content is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> contentChange<br>
|
|
* <code>&lt;String&gt;
|
|
* prevValue</code> the previous value<br>
|
|
* <code>&lt;Boolean&gt;
|
|
* newValue</code> the updated value</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('contentChange', handler);</code></p>
|
|
* @event contentChange
|
|
*/
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span><span class="hl-brackets">(</span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The tabview module provides a widget for managing content bound to tabs.
|
|
* @module tabview
|
|
*
|
|
*/
|
|
// holder
|
|
/**
|
|
* A widget to control tabbed views.
|
|
* @namespace YAHOO.widget
|
|
* @class TabView
|
|
* @extends YAHOO.util.Element
|
|
* @constructor
|
|
* @param {HTMLElement | String | Object} el(optional) The html
|
|
* element that represents the TabView, or the attribute object to use.
|
|
* An element will be created if none provided.
|
|
* @param {Object} attr (optional) A key map of the tabView's
|
|
* initial attributes. Ignored if first arg is attributes object.
|
|
*/
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code"> || </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">arguments</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-code"> && !</span><span class="hl-identifier">Lang</span><span class="hl-code">.</span><span class="hl-identifier">isString</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code"> && !</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">nodeName</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">; </span><span class="hl-comment">// treat first arg as attr object
|
|
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-code"> || </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">el</span><span class="hl-code"> && !</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">element</span><span class="hl-brackets">) { </span><span class="hl-comment">// create if we dont have one
|
|
</span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-identifier">_createTabViewElement</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">constructor</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">el</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">extend</span><span class="hl-brackets">(</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">, </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Element</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">proto</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">.</span><span class="hl-identifier">prototype</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Dom</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Dom</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Lang</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Lang</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Event</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">Tab</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Tab</span><span class="hl-code">;
|
|
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The className to add when building from scratch.
|
|
* @property CLASSNAME
|
|
* @default "navset"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">yui-navset</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The className of the HTMLElement containing the TabView's tab elements
|
|
* to look for when building from existing markup, or to add when building
|
|
* from scratch.
|
|
* All childNodes of the tab container are treated as Tabs when building
|
|
* from existing markup.
|
|
* @property TAB_PARENT_CLASSNAME
|
|
* @default "nav"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">yui-nav</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The className of the HTMLElement containing the TabView's label elements
|
|
* to look for when building from existing markup, or to add when building
|
|
* from scratch.
|
|
* All childNodes of the content container are treated as content elements when
|
|
* building from existing markup.
|
|
* @property CONTENT_PARENT_CLASSNAME
|
|
* @default "nav-content"
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">yui-content</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Adds a Tab to the TabView instance.
|
|
* If no index is specified, the tab is added to the end of the tab list.
|
|
* @method addTab
|
|
* @param {YAHOO.widget.Tab} tab A Tab instance to add.
|
|
* @param {Integer} index The position to add the tab.
|
|
* @return void
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">addTab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">, </span><span class="hl-identifier">index</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">tabs</span><span class="hl-brackets">) { </span><span class="hl-comment">// not ready yet
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-brackets">[</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_queue</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-brackets">[</span><span class="hl-quotes">'</span><span class="hl-string">addTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">arguments</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return false</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code"> === </span><span class="hl-identifier">undefined</span><span class="hl-brackets">)</span><span class="hl-code"> ? </span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code"> : </span><span class="hl-identifier">index</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">before</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTab</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">self</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabElement</span><span class="hl-code"> = </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentEl</span><span class="hl-code"> = </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">before </span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">tabParent</span><span class="hl-code">.</span><span class="hl-identifier">insertBefore</span><span class="hl-brackets">(</span><span class="hl-identifier">tabElement</span><span class="hl-code">, </span><span class="hl-identifier">before</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">tabParent</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">tabElement</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">contentEl</span><span class="hl-code"> && !</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">contentParent</span><span class="hl-code">, </span><span class="hl-identifier">contentEl</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">contentParent</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">contentEl</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code"> !</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">/* hide if not active */
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">tab</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">activate</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">preventDefault</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">self</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activationEvent</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">, </span><span class="hl-identifier">activate</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activationEventChange</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">prevValue</span><span class="hl-code"> != </span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">newValue</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">removeListener</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">prevValue</span><span class="hl-code">, </span><span class="hl-identifier">activate</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">newValue</span><span class="hl-code">, </span><span class="hl-identifier">activate</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">tab</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Routes childNode events.
|
|
* @method DOMEventHandler
|
|
* @param {event} e The Dom event that is being handled.
|
|
* @return void
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">DOMEventHandler</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">target</span><span class="hl-code"> = </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">util</span><span class="hl-code">.</span><span class="hl-identifier">Event</span><span class="hl-code">.</span><span class="hl-identifier">getTarget</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabParent</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">tabParent</span><span class="hl-code">, </span><span class="hl-identifier">target</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabEl</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tab</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentEl</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">len</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code">++</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">tabEl</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">contentEl</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">target</span><span class="hl-code"> == </span><span class="hl-identifier">tabEl</span><span class="hl-code"> || </span><span class="hl-identifier">Dom</span><span class="hl-code">.</span><span class="hl-identifier">isAncestor</span><span class="hl-brackets">(</span><span class="hl-identifier">tabEl</span><span class="hl-code">, </span><span class="hl-identifier">target</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">; </span><span class="hl-comment">// note break
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">fireEvent</span><span class="hl-brackets">(</span><span class="hl-identifier">e</span><span class="hl-code">.</span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-identifier">e</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns the Tab instance at the specified index.
|
|
* @method getTab
|
|
* @param {Integer} index The position of the Tab.
|
|
* @return YAHOO.widget.Tab
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">getTab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)[</span><span class="hl-identifier">index</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Returns the index of given tab.
|
|
* @method getTabIndex
|
|
* @param {YAHOO.widget.Tab} tab The tab whose index will be returned.
|
|
* @return int
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">getTabIndex</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-reserved">null</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">len</span><span class="hl-code">; ++</span><span class="hl-identifier">i</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code"> == </span><span class="hl-identifier">tabs</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]) {
|
|
</span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-identifier">i</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">index</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Removes the specified Tab from the TabView.
|
|
* @method removeTab
|
|
* @param {YAHOO.widget.Tab} item The Tab instance to be removed.
|
|
* @return void
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">removeTab</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabCount</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">index</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTabIndex</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nextIndex</span><span class="hl-code"> = </span><span class="hl-identifier">index</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code"> == </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-brackets">) ) { </span><span class="hl-comment">// select next tab
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tabCount</span><span class="hl-code"> > </span><span class="hl-number">1</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-code"> == </span><span class="hl-identifier">tabCount</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeIndex</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">index</span><span class="hl-code"> - </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else </span><span class="hl-brackets">{
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeIndex</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-identifier">index</span><span class="hl-code"> + </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">) )</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code">.</span><span class="hl-identifier">removeChild</span><span class="hl-brackets">( </span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentEl</span><span class="hl-quotes">'</span><span class="hl-brackets">) )</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code">.</span><span class="hl-identifier">splice</span><span class="hl-brackets">(</span><span class="hl-identifier">index</span><span class="hl-code">, </span><span class="hl-number">1</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Provides a readable name for the TabView instance.
|
|
* @method toString
|
|
* @return String
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">toString</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">name</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">id</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code"> || </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tagName</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">return </span><span class="hl-quotes">"</span><span class="hl-string">TabView </span><span class="hl-quotes">"</span><span class="hl-code"> + </span><span class="hl-identifier">name</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The transiton to use when switching between tabs.
|
|
* @method contentTransition
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">contentTransition</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">newTab</span><span class="hl-code">, </span><span class="hl-identifier">oldTab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">newTab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-identifier">oldTab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Registers TabView specific properties.
|
|
* @method initAttributes
|
|
* @param {Object} attr Hash of initial attributes
|
|
*/
|
|
</span><span class="hl-identifier">proto</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">TabView</span><span class="hl-code">.</span><span class="hl-identifier">superclass</span><span class="hl-code">.</span><span class="hl-identifier">initAttributes</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-code">!</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">orientation</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">orientation</span><span class="hl-code"> = </span><span class="hl-quotes">'</span><span class="hl-string">top</span><span class="hl-quotes">'</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The Tabs belonging to the TabView instance.
|
|
* @config tabs
|
|
* @type Array
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">tabs</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-brackets">[]</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">readOnly</span><span class="hl-code">: </span><span class="hl-reserved">true
|
|
</span><span class="hl-brackets">})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The container of the tabView's label elements.
|
|
* @property _tabParent
|
|
* @private
|
|
* @type HTMLElement
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-code"> =
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">ul</span><span class="hl-quotes">' </span><span class="hl-brackets">)[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> || </span><span class="hl-identifier">_createTabParent</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The container of the tabView's content elements.
|
|
* @property _contentParent
|
|
* @type HTMLElement
|
|
* @private
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-code"> =
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getElementsByClassName</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME</span><span class="hl-code">,
|
|
</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</span><span class="hl-brackets">)[</span><span class="hl-number">0</span><span class="hl-brackets">]</span><span class="hl-code"> || </span><span class="hl-identifier">_createContentParent</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* How the Tabs should be oriented relative to the TabView.
|
|
* @config orientation
|
|
* @type String
|
|
* @default "top"
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">orientation</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">orientation</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">current</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">orientation</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addClass</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">yui-navset-</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">current</span><span class="hl-code"> != </span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">removeClass</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">yui-navset-</span><span class="hl-quotes">'</span><span class="hl-code"> + </span><span class="hl-identifier">current</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">switch</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">case </span><span class="hl-quotes">'</span><span class="hl-string">bottom</span><span class="hl-quotes">'</span><span class="hl-code">:
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">break</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The index of the tab currently active.
|
|
* @config activeIndex
|
|
* @type Int
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeIndex</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">activeIndex</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTab</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">))</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return</span><span class="hl-code"> !</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">getTab</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// cannot activate if disabled
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* The tab currently active.
|
|
* @config activeTab
|
|
* @type YAHOO.widget.Tab
|
|
*/
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">register</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-brackets">{
|
|
</span><span class="hl-identifier">value</span><span class="hl-code">: </span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">activeTab</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">method</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">activeTab</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">activeTab</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">activeTab</span><span class="hl-code"> && </span><span class="hl-identifier">activeTab</span><span class="hl-code"> != </span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">activeTab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">active</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">false</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">activeTab</span><span class="hl-code"> && </span><span class="hl-identifier">tab</span><span class="hl-code"> != </span><span class="hl-identifier">activeTab</span><span class="hl-brackets">) { </span><span class="hl-comment">// no transition if only 1
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">contentTransition</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">, </span><span class="hl-identifier">activeTab</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">} </span><span class="hl-reserved">else if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">set</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">contentVisible</span><span class="hl-quotes">'</span><span class="hl-code">, </span><span class="hl-reserved">true</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">validator</span><span class="hl-code">: </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">value</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">return</span><span class="hl-code"> !</span><span class="hl-identifier">value</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">disabled</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">; </span><span class="hl-comment">// cannot activate if disabled
|
|
</span><span class="hl-brackets">}
|
|
})</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent </span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">_initTabs</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">type </span><span class="hl-reserved">in this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOM_EVENTS</span><span class="hl-code">.</span><span class="hl-identifier">hasOwnProperty</span><span class="hl-brackets">(</span><span class="hl-identifier">type</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addListener</span><span class="hl-code">.</span><span class="hl-identifier">call</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">, </span><span class="hl-identifier">type</span><span class="hl-code">, </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">DOMEventHandler</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Creates Tab instances from a collection of HTMLElements.
|
|
* @method createTabs
|
|
* @private
|
|
* @param {Array|HTMLCollection} elements The elements to use for Tabs.
|
|
* @return void
|
|
*/
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_initTabs</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">() {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tab</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code">,
|
|
</span><span class="hl-identifier">contentEl</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">tabs</span><span class="hl-code"> = </span><span class="hl-identifier">_getChildNodes</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_tabParent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">contentElements</span><span class="hl-code"> = </span><span class="hl-identifier">_getChildNodes</span><span class="hl-brackets">(</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_contentParent</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">tabs</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">len</span><span class="hl-code">; ++</span><span class="hl-identifier">i</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code"> = </span><span class="hl-brackets">{}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">contentElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]) {
|
|
</span><span class="hl-identifier">attr</span><span class="hl-code">.</span><span class="hl-identifier">contentEl</span><span class="hl-code"> = </span><span class="hl-identifier">contentElements</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-identifier">tab</span><span class="hl-code"> = </span><span class="hl-reserved">new </span><span class="hl-identifier">YAHOO</span><span class="hl-code">.</span><span class="hl-identifier">widget</span><span class="hl-code">.</span><span class="hl-identifier">Tab</span><span class="hl-brackets">(</span><span class="hl-identifier">tabs</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">, </span><span class="hl-identifier">attr</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">addTab</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">hasClass</span><span class="hl-brackets">(</span><span class="hl-identifier">tab</span><span class="hl-code">.</span><span class="hl-identifier">ACTIVE_CLASSNAME</span><span class="hl-brackets">) ) {
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">_configs</span><span class="hl-code">.</span><span class="hl-identifier">activeTab</span><span class="hl-code">.</span><span class="hl-identifier">value</span><span class="hl-code"> = </span><span class="hl-identifier">tab</span><span class="hl-code">; </span><span class="hl-comment">// dont invoke method
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createTabViewElement</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CLASSNAME </span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">className</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CLASSNAME</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createTabParent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">ul</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME </span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">className</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">TAB_PARENT_CLASSNAME</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_createContentParent</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">attr</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">el</span><span class="hl-code"> = </span><span class="hl-builtin">document</span><span class="hl-code">.</span><span class="hl-identifier">createElement</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">div</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">( </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME </span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">className</span><span class="hl-code"> = </span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">CONTENT_PARENT_CLASSNAME</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
|
|
</span><span class="hl-reserved">this</span><span class="hl-code">.</span><span class="hl-identifier">get</span><span class="hl-brackets">(</span><span class="hl-quotes">'</span><span class="hl-string">element</span><span class="hl-quotes">'</span><span class="hl-brackets">)</span><span class="hl-code">.</span><span class="hl-identifier">appendChild</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">)</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">el</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">_getChildNodes</span><span class="hl-code"> = </span><span class="hl-reserved">function</span><span class="hl-brackets">(</span><span class="hl-identifier">el</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">nodes</span><span class="hl-code"> = </span><span class="hl-brackets">[]</span><span class="hl-code">;
|
|
</span><span class="hl-reserved">var </span><span class="hl-identifier">childNodes</span><span class="hl-code"> = </span><span class="hl-identifier">el</span><span class="hl-code">.</span><span class="hl-identifier">childNodes</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-reserved">for </span><span class="hl-brackets">(</span><span class="hl-reserved">var </span><span class="hl-identifier">i</span><span class="hl-code"> = </span><span class="hl-number">0</span><span class="hl-code">, </span><span class="hl-identifier">len</span><span class="hl-code"> = </span><span class="hl-identifier">childNodes</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-code">; </span><span class="hl-identifier">i</span><span class="hl-code"> < </span><span class="hl-identifier">len</span><span class="hl-code">; ++</span><span class="hl-identifier">i</span><span class="hl-brackets">) {
|
|
</span><span class="hl-reserved">if </span><span class="hl-brackets">(</span><span class="hl-identifier">childNodes</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">.</span><span class="hl-identifier">nodeType</span><span class="hl-code"> == </span><span class="hl-number">1</span><span class="hl-brackets">) {
|
|
</span><span class="hl-identifier">nodes</span><span class="hl-brackets">[</span><span class="hl-identifier">nodes</span><span class="hl-code">.</span><span class="hl-identifier">length</span><span class="hl-brackets">]</span><span class="hl-code"> = </span><span class="hl-identifier">childNodes</span><span class="hl-brackets">[</span><span class="hl-identifier">i</span><span class="hl-brackets">]</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}
|
|
}
|
|
|
|
</span><span class="hl-reserved">return </span><span class="hl-identifier">nodes</span><span class="hl-code">;
|
|
</span><span class="hl-brackets">}</span><span class="hl-code">;
|
|
|
|
</span><span class="hl-comment">/**
|
|
* Fires before the activeTab is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p>If handler returns false, the change will be cancelled, and the value will not
|
|
* be set.</p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> beforeActiveTabChange<br>
|
|
* <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
|
|
* prevValue</code> the currently active tab<br>
|
|
* <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
|
|
* newValue</code> the tab to be made active</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('beforeActiveTabChange', handler);</code></p>
|
|
* @event beforeActiveTabChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires after the activeTab is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> activeTabChange<br>
|
|
* <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
|
|
* prevValue</code> the formerly active tab<br>
|
|
* <code>&lt;<a href="YAHOO.widget.Tab.html">YAHOO.widget.Tab</a>&gt;
|
|
* newValue</code> the new active tab</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('activeTabChange', handler);</code></p>
|
|
* @event activeTabChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires before the orientation is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p>If handler returns false, the change will be cancelled, and the value will not
|
|
* be set.</p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> beforeOrientationChange<br>
|
|
* <code>&lt;String&gt;
|
|
* prevValue</code> the current orientation<br>
|
|
* <code>&lt;String&gt;
|
|
* newValue</code> the new orientation to be applied</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('beforeOrientationChange', handler);</code></p>
|
|
* @event beforeOrientationChange
|
|
*/
|
|
// holder
|
|
/**
|
|
* Fires after the orientation is changed.
|
|
* <p>See: <a href="YAHOO.util.Element.html#addListener">Element.addListener</a></p>
|
|
* <p><strong>Event fields:</strong><br>
|
|
* <code>&lt;String&gt; type</code> orientationChange<br>
|
|
* <code>&lt;String&gt;
|
|
* prevValue</code> the former orientation<br>
|
|
* <code>&lt;String&gt;
|
|
* newValue</code> the new orientation</p>
|
|
* <p><strong>Usage:</strong><br>
|
|
* <code>var handler = function(e) {var previous = e.prevValue};<br>
|
|
* myTabs.addListener('orientationChange', handler);</code></p>
|
|
* @event orientationChange
|
|
*/
|
|
</span><span class="hl-brackets">})()</span><span class="hl-default">;</span></pre></div><hr>Copyright © 2006 Jack Slocum. All rights reserved.</body></html> |