data tables are going to need some work yet, but the other stuff seems to be working 100%
2381 lines
250 KiB
HTML
2381 lines
250 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
|
|
<html>
|
|
<head>
|
|
<title>API: container Overlay.js (YUI Library)</title>
|
|
<link rel="stylesheet" type="text/css" href="assets/api.css">
|
|
<script type="text/javascript" src="assets/api-js"></script>
|
|
<script type="text/javascript" src="assets/ac-js"></script>
|
|
</head>
|
|
|
|
<body id="yahoo-com">
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="hd">
|
|
<a href="http://developer.yahoo.com/yui/"><h1>Yahoo! UI Library</h1></a>
|
|
<h3>Container <span class="subtitle">2.6.0</span></h3>
|
|
<p>
|
|
<a href="./index.html">Yahoo! UI Library</a>
|
|
> <a href="./module_container.html">container</a>
|
|
|
|
> Overlay.js (source view)
|
|
</p>
|
|
|
|
|
|
</div>
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
<form name="yui-classopts-form">
|
|
<span id="classopts"><input type="checkbox" name="showprivate" id="showprivate" /> <label for="showprivate">Show Private</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showprotected" id="showprotected" /> <label for="showprotected">Show Protected</label></span>
|
|
<span id="classopts"><input type="checkbox" name="showdeprecated" id="showdeprecated" /> <label for="showdeprecated">Show Deprecated</label></span>
|
|
</form>
|
|
|
|
<div id="srcout">
|
|
<style>
|
|
#doc3 #classopts { display:none; }
|
|
</style>
|
|
<div class="highlight" ><pre><span class="o">(</span><span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Overlay is a Module that is absolutely positioned above the page flow. It </span>
|
|
<span class="c"> * has convenience methods for positioning and sizing, as well as options for </span>
|
|
<span class="c"> * controlling zIndex and constraining the Overlay's position to the current </span>
|
|
<span class="c"> * visible viewport. Overlay also contains a dynamicly generated IFRAME which </span>
|
|
<span class="c"> * is placed beneath it for Internet Explorer 6 and 5.x so that it will be </span>
|
|
<span class="c"> * properly rendered above SELECT elements.</span>
|
|
<span class="c"> * @namespace YAHOO.widget</span>
|
|
<span class="c"> * @class Overlay</span>
|
|
<span class="c"> * @extends YAHOO.widget.Module</span>
|
|
<span class="c"> * @param {String} el The element ID representing the Overlay <em>OR</em></span>
|
|
<span class="c"> * @param {HTMLElement} el The element representing the Overlay</span>
|
|
<span class="c"> * @param {Object} userConfig The configuration object literal containing </span>
|
|
<span class="c"> * the configuration that should be set for this Overlay. See configuration </span>
|
|
<span class="c"> * documentation for more details.</span>
|
|
<span class="c"> * @constructor</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">userConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">constructor</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">el</span><span class="o">,</span> <span class="nx">userConfig</span><span class="o">);</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="k">var</span> <span class="nx">Lang</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">,</span>
|
|
<span class="nx">CustomEvent</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">CustomEvent</span><span class="o">,</span>
|
|
<span class="nx">Module</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Module</span><span class="o">,</span>
|
|
<span class="nx">Event</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Event</span><span class="o">,</span>
|
|
<span class="nx">Dom</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Dom</span><span class="o">,</span>
|
|
<span class="nx">Config</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">util</span><span class="o">.</span><span class="nx">Config</span><span class="o">,</span>
|
|
<span class="nx">UA</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">env</span><span class="o">.</span><span class="nx">ua</span><span class="o">,</span>
|
|
<span class="nx">Overlay</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Overlay</span><span class="o">,</span>
|
|
|
|
<span class="nx">_SUBSCRIBE</span> <span class="o">=</span> <span class="s2">"subscribe"</span><span class="o">,</span>
|
|
<span class="nx">_UNSUBSCRIBE</span> <span class="o">=</span> <span class="s2">"unsubscribe"</span><span class="o">,</span>
|
|
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">,</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the name of the Overlay's events</span>
|
|
<span class="c"> * @property EVENT_TYPES</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">EVENT_TYPES</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="s2">"BEFORE_MOVE"</span><span class="o">:</span> <span class="s2">"beforeMove"</span><span class="o">,</span>
|
|
<span class="s2">"MOVE"</span><span class="o">:</span> <span class="s2">"move"</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the Overlay's configuration properties</span>
|
|
<span class="c"> * @property DEFAULT_CONFIG</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">DEFAULT_CONFIG</span> <span class="o">=</span> <span class="o">{</span>
|
|
|
|
<span class="s2">"X"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"x"</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"iframe"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"Y"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"y"</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"iframe"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"XY"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"xy"</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"iframe"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"CONTEXT"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"context"</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"iframe"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"FIXED_CENTER"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"fixedcenter"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"iframe"</span><span class="o">,</span> <span class="s2">"visible"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"WIDTH"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"width"</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"context"</span><span class="o">,</span> <span class="s2">"fixedcenter"</span><span class="o">,</span> <span class="s2">"iframe"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"HEIGHT"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"height"</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"context"</span><span class="o">,</span> <span class="s2">"fixedcenter"</span><span class="o">,</span> <span class="s2">"iframe"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"AUTO_FILL_HEIGHT"</span> <span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"autofillheight"</span><span class="o">,</span>
|
|
<span class="nx">supressEvent</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"height"</span><span class="o">],</span>
|
|
<span class="nx">value</span><span class="o">:</span><span class="s2">"body"</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"ZINDEX"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"zindex"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">null</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"CONSTRAIN_TO_VIEWPORT"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"constraintoviewport"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"iframe"</span><span class="o">,</span> <span class="s2">"x"</span><span class="o">,</span> <span class="s2">"y"</span><span class="o">,</span> <span class="s2">"xy"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"IFRAME"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"iframe"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">==</span> <span class="m">6</span> <span class="o">?</span> <span class="kc">true</span> <span class="o">:</span> <span class="kc">false</span><span class="o">),</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"zindex"</span><span class="o">]</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="s2">"PREVENT_CONTEXT_OVERLAP"</span><span class="o">:</span> <span class="o">{</span>
|
|
<span class="nx">key</span><span class="o">:</span> <span class="s2">"preventcontextoverlap"</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="kc">false</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">isBoolean</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="o">[</span><span class="s2">"constraintoviewport"</span><span class="o">]</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The URL that will be placed in the iframe</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.IFRAME_SRC</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">IFRAME_SRC</span> <span class="o">=</span> <span class="s2">"javascript:false;"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Number representing how much the iframe shim should be offset from each </span>
|
|
<span class="c"> * side of an Overlay instance, in pixels.</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.IFRAME_SRC</span>
|
|
<span class="c"> * @default 3</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">IFRAME_OFFSET</span> <span class="o">=</span> <span class="m">3</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Number representing the minimum distance an Overlay instance should be </span>
|
|
<span class="c"> * positioned relative to the boundaries of the browser's viewport, in pixels.</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.VIEWPORT_OFFSET</span>
|
|
<span class="c"> * @default 10</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">VIEWPORT_OFFSET</span> <span class="o">=</span> <span class="m">10</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the top left corner of an element, used for </span>
|
|
<span class="c"> * configuring the context element alignment</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.TOP_LEFT</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">TOP_LEFT</span> <span class="o">=</span> <span class="s2">"tl"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the top right corner of an element, used for </span>
|
|
<span class="c"> * configuring the context element alignment</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.TOP_RIGHT</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">TOP_RIGHT</span> <span class="o">=</span> <span class="s2">"tr"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the top bottom left corner of an element, used for </span>
|
|
<span class="c"> * configuring the context element alignment</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.BOTTOM_LEFT</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">BOTTOM_LEFT</span> <span class="o">=</span> <span class="s2">"bl"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the bottom right corner of an element, used for </span>
|
|
<span class="c"> * configuring the context element alignment</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.BOTTOM_RIGHT</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">BOTTOM_RIGHT</span> <span class="o">=</span> <span class="s2">"br"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the default CSS class used for an Overlay</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.CSS_OVERLAY</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">CSS_OVERLAY</span> <span class="o">=</span> <span class="s2">"yui-overlay"</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Constant representing the names of the standard module elements</span>
|
|
<span class="c"> * used in the overlay.</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay.STD_MOD_RE</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> * @type RegExp</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">STD_MOD_RE</span> <span class="o">=</span> <span class="sr">/^\s*?(body|footer|header)\s*?$/i</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * A singleton CustomEvent used for reacting to the DOM event for </span>
|
|
<span class="c"> * window scroll</span>
|
|
<span class="c"> * @event YAHOO.widget.Overlay.windowScrollEvent</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CustomEvent</span><span class="o">(</span><span class="s2">"windowScroll"</span><span class="o">);</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * A singleton CustomEvent used for reacting to the DOM event for</span>
|
|
<span class="c"> * window resize</span>
|
|
<span class="c"> * @event YAHOO.widget.Overlay.windowResizeEvent</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span> <span class="o">=</span> <span class="k">new</span> <span class="nx">CustomEvent</span><span class="o">(</span><span class="s2">"windowResize"</span><span class="o">);</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The DOM event handler used to fire the CustomEvent for window scroll</span>
|
|
<span class="c"> * @method YAHOO.widget.Overlay.windowScrollHandler</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @param {DOMEvent} e The DOM scroll event</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollHandler</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">t</span> <span class="o">=</span> <span class="nx">Event</span><span class="o">.</span><span class="nx">getTarget</span><span class="o">(</span><span class="nx">e</span><span class="o">);</span>
|
|
|
|
<span class="c">// - Webkit (Safari 2/3) and Opera 9.2x bubble scroll events from elements to window</span>
|
|
<span class="c"></span> <span class="c">// - FF2/3 and IE6/7, Opera 9.5x don't bubble scroll events from elements to window</span>
|
|
<span class="c"></span> <span class="c">// - IE doesn't recognize scroll registered on the document.</span>
|
|
<span class="c"></span> <span class="c">//</span>
|
|
<span class="c"></span> <span class="c">// Also, when document view is scrolled, IE doesn't provide a target, </span>
|
|
<span class="c"></span> <span class="c">// rest of the browsers set target to window.document, apart from opera </span>
|
|
<span class="c"></span> <span class="c">// which sets target to window.</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(!</span><span class="nx">t</span> <span class="o">||</span> <span class="nx">t</span> <span class="o">===</span> <span class="nb">window</span> <span class="o">||</span> <span class="nx">t</span> <span class="o">===</span> <span class="nb">window</span><span class="o">.</span><span class="nb">document</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nb">window</span><span class="o">.</span><span class="nx">scrollEnd</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nb">window</span><span class="o">.</span><span class="nx">scrollEnd</span> <span class="o">=</span> <span class="o">-</span><span class="m">1</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">clearTimeout</span><span class="o">(</span><span class="nb">window</span><span class="o">.</span><span class="nx">scrollEnd</span><span class="o">);</span>
|
|
|
|
<span class="nb">window</span><span class="o">.</span><span class="nx">scrollEnd</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">},</span> <span class="m">1</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The DOM event handler used to fire the CustomEvent for window resize</span>
|
|
<span class="c"> * @method YAHOO.widget.Overlay.windowResizeHandler</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @param {DOMEvent} e The DOM resize event</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeHandler</span> <span class="o">=</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nb">window</span><span class="o">.</span><span class="nx">resizeEnd</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nb">window</span><span class="o">.</span><span class="nx">resizeEnd</span> <span class="o">=</span> <span class="o">-</span><span class="m">1</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">clearTimeout</span><span class="o">(</span><span class="nb">window</span><span class="o">.</span><span class="nx">resizeEnd</span><span class="o">);</span>
|
|
|
|
<span class="nb">window</span><span class="o">.</span><span class="nx">resizeEnd</span> <span class="o">=</span> <span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">},</span> <span class="m">100</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * A boolean that indicated whether the window resize and scroll events have </span>
|
|
<span class="c"> * already been subscribed to.</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay._initialized</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">_initialized</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span><span class="o">.</span><span class="nx">_initialized</span> <span class="o">===</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nb">window</span><span class="o">,</span> <span class="s2">"scroll"</span><span class="o">,</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollHandler</span><span class="o">);</span>
|
|
<span class="nx">Event</span><span class="o">.</span><span class="nx">on</span><span class="o">(</span><span class="nb">window</span><span class="o">,</span> <span class="s2">"resize"</span><span class="o">,</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeHandler</span><span class="o">);</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">_initialized</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Internal map of special event types, which are provided</span>
|
|
<span class="c"> * by the instance. It maps the event type to the custom event </span>
|
|
<span class="c"> * instance. Contains entries for the "windowScroll", "windowResize" and</span>
|
|
<span class="c"> * "textResize" static container events.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @property YAHOO.widget.Overlay._TRIGGER_MAP</span>
|
|
<span class="c"> * @type Object</span>
|
|
<span class="c"> * @static</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">_TRIGGER_MAP</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="s2">"windowScroll"</span> <span class="o">:</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollEvent</span><span class="o">,</span>
|
|
<span class="s2">"windowResize"</span> <span class="o">:</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">,</span>
|
|
<span class="s2">"textResize"</span> <span class="o">:</span> <span class="nx">Module</span><span class="o">.</span><span class="nx">textResizeEvent</span>
|
|
<span class="o">};</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">Overlay</span><span class="o">,</span> <span class="nx">Module</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * Array of default event types which will trigger</span>
|
|
<span class="c"> * context alignment for the Overlay class.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p>The array is empty by default for Overlay,</span>
|
|
<span class="c"> * but maybe populated in future releases, so classes extending</span>
|
|
<span class="c"> * Overlay which need to define their own set of CONTEXT_TRIGGERS</span>
|
|
<span class="c"> * should concatenate their super class's prototype.CONTEXT_TRIGGERS </span>
|
|
<span class="c"> * value with their own array of values.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * E.g.:</span>
|
|
<span class="c"> * <code>CustomOverlay.prototype.CONTEXT_TRIGGERS = YAHOO.widget.Overlay.prototype.CONTEXT_TRIGGERS.concat(["windowScroll"]);</code></span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @property CONTEXT_TRIGGERS</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> * @final</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">CONTEXT_TRIGGERS</span> <span class="o">:</span> <span class="o">[],</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The Overlay initialization method, which is executed for Overlay and </span>
|
|
<span class="c"> * all of its subclasses. This method is automatically called by the </span>
|
|
<span class="c"> * constructor, and sets up all DOM references for pre-existing markup, </span>
|
|
<span class="c"> * and creates required markup if it is not already present.</span>
|
|
<span class="c"> * @method init</span>
|
|
<span class="c"> * @param {String} el The element ID representing the Overlay <em>OR</em></span>
|
|
<span class="c"> * @param {HTMLElement} el The element representing the Overlay</span>
|
|
<span class="c"> * @param {Object} userConfig The configuration object literal </span>
|
|
<span class="c"> * containing the configuration that should be set for this Overlay. </span>
|
|
<span class="c"> * See configuration documentation for more details.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">init</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="nx">userConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Note that we don't pass the user config in here yet because we</span>
|
|
<span class="c"> only want it executed once, at the lowest subclass level</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">init</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">el</span><span class="c">/*, userConfig*/</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeInitEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">Overlay</span><span class="o">);</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">CSS_OVERLAY</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">userConfig</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">applyConfig</span><span class="o">(</span><span class="nx">userConfig</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">"mac"</span> <span class="o">&&</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">gecko</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMacGeckoScrollbars</span><span class="o">,</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">showMacGeckoScrollbars</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMacGeckoScrollbars</span><span class="o">,</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hideMacGeckoScrollbars</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">initEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">Overlay</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Initializes the custom events for Overlay which are fired </span>
|
|
<span class="c"> * automatically at appropriate times by the Overlay class.</span>
|
|
<span class="c"> * @method initEvents</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">initEvents</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">initEvents</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">SIGNATURE</span> <span class="o">=</span> <span class="nx">CustomEvent</span><span class="o">.</span><span class="nx">LIST</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CustomEvent fired before the Overlay is moved.</span>
|
|
<span class="c"> * @event beforeMoveEvent</span>
|
|
<span class="c"> * @param {Number} x x coordinate</span>
|
|
<span class="c"> * @param {Number} y y coordinate</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="nx">EVENT_TYPES</span><span class="o">.</span><span class="nx">BEFORE_MOVE</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="o">;</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CustomEvent fired after the Overlay is moved.</span>
|
|
<span class="c"> * @event moveEvent</span>
|
|
<span class="c"> * @param {Number} x x coordinate</span>
|
|
<span class="c"> * @param {Number} y y coordinate</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">moveEvent</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">createEvent</span><span class="o">(</span><span class="nx">EVENT_TYPES</span><span class="o">.</span><span class="nx">MOVE</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">moveEvent</span><span class="o">.</span><span class="nx">signature</span> <span class="o">=</span> <span class="nx">SIGNATURE</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Initializes the class's configurable properties which can be changed </span>
|
|
<span class="c"> * using the Overlay's Config object (cfg).</span>
|
|
<span class="c"> * @method initDefaultConfig</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">initDefaultConfig</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">initDefaultConfig</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">cfg</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">;</span>
|
|
|
|
<span class="c">// Add overlay config properties //</span>
|
|
<span class="c"></span>
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The absolute x-coordinate position of the Overlay</span>
|
|
<span class="c"> * @config x</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">X</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configX</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">X</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">X</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">X</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The absolute y-coordinate position of the Overlay</span>
|
|
<span class="c"> * @config y</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">Y</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configY</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">Y</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">Y</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">Y</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * An array with the absolute x and y positions of the Overlay</span>
|
|
<span class="c"> * @config xy</span>
|
|
<span class="c"> * @type Number[]</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">XY</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configXY</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">XY</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">XY</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * The array of context arguments for context-sensitive positioning. </span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * The format of the array is: <code>[contextElementOrId, overlayCorner, contextCorner, arrayOfTriggerEvents (optional)]</code>, the</span>
|
|
<span class="c"> * the 4 array elements described in detail below:</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * <dl></span>
|
|
<span class="c"> * <dt>contextElementOrId &#60;String|HTMLElement&#62;</dt></span>
|
|
<span class="c"> * <dd>A reference to the context element to which the overlay should be aligned (or it's id).</dd></span>
|
|
<span class="c"> * <dt>overlayCorner &#60;String&#62;</dt></span>
|
|
<span class="c"> * <dd>The corner of the overlay which is to be used for alignment. This corner will be aligned to the </span>
|
|
<span class="c"> * corner of the context element defined by the "contextCorner" entry which follows. Supported string values are: </span>
|
|
<span class="c"> * "tr" (top right), "tl" (top left), "br" (bottom right), or "bl" (bottom left).</dd></span>
|
|
<span class="c"> * <dt>contextCorner &#60;String&#62;</dt></span>
|
|
<span class="c"> * <dd>The corner of the context element which is to be used for alignment. Supported string values are the same ones listed for the "overlayCorner" entry above.</dd></span>
|
|
<span class="c"> * <dt>arrayOfTriggerEvents (optional) &#60;Array[String|CustomEvent]&#62;</dt></span>
|
|
<span class="c"> * <dd></span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * By default, context alignment is a one time operation, aligning the Overlay to the context element when context configuration property is set, or when the <a href="#method_align">align</a> </span>
|
|
<span class="c"> * method is invoked. However, you can use the optional "arrayOfTriggerEvents" entry to define the list of events which should force the overlay to re-align itself with the context element. </span>
|
|
<span class="c"> * This is useful in situations where the layout of the document may change, resulting in the context element's position being modified.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * The array can contain either event type strings for events the instance publishes (e.g. "beforeShow") or CustomEvent instances. Additionally the following</span>
|
|
<span class="c"> * 3 static container event types are also currently supported : <code>"windowResize", "windowScroll", "textResize"</code> (defined in <a href="#property__TRIGGER_MAP">_TRIGGER_MAP</a> private property).</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * </dd></span>
|
|
<span class="c"> * </dl></span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * For example, setting this property to <code>["img1", "tl", "bl"]</code> will </span>
|
|
<span class="c"> * align the Overlay's top left corner to the bottom left corner of the</span>
|
|
<span class="c"> * context element with id "img1".</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * Adding the optional trigger values: <code>["img1", "tl", "bl", ["beforeShow", "windowResize"]]</code>,</span>
|
|
<span class="c"> * will re-align the overlay position, whenever the "beforeShow" or "windowResize" events are fired.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @config context</span>
|
|
<span class="c"> * @type Array</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONTEXT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configContext</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONTEXT</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONTEXT</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * True if the Overlay should be anchored to the center of </span>
|
|
<span class="c"> * the viewport.</span>
|
|
<span class="c"> * @config fixedcenter</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">FIXED_CENTER</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configFixedCenter</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">FIXED_CENTER</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">FIXED_CENTER</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">FIXED_CENTER</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CSS width of the Overlay.</span>
|
|
<span class="c"> * @config width</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">WIDTH</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configWidth</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">WIDTH</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">WIDTH</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CSS height of the Overlay.</span>
|
|
<span class="c"> * @config height</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">HEIGHT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configHeight</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">HEIGHT</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">HEIGHT</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Standard module element which should auto fill out the height of the Overlay if the height config property is set.</span>
|
|
<span class="c"> * Supported values are "header", "body", "footer".</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @config autofillheight</span>
|
|
<span class="c"> * @type String</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configAutoFillHeight</span><span class="o">,</span>
|
|
<span class="nx">value</span> <span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateAutoFill</span><span class="o">,</span>
|
|
<span class="nx">suppressEvent</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="o">.</span><span class="nx">suppressEvent</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">AUTO_FILL_HEIGHT</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * CSS z-index of the Overlay.</span>
|
|
<span class="c"> * @config zIndex</span>
|
|
<span class="c"> * @type Number</span>
|
|
<span class="c"> * @default null</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">ZINDEX</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configzIndex</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">ZINDEX</span><span class="o">.</span><span class="nx">value</span>
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * True if the Overlay should be prevented from being positioned </span>
|
|
<span class="c"> * out of the viewport.</span>
|
|
<span class="c"> * @config constraintoviewport</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configConstrainToViewport</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">CONSTRAIN_TO_VIEWPORT</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @config iframe</span>
|
|
<span class="c"> * @description Boolean indicating whether or not the Overlay should </span>
|
|
<span class="c"> * have an IFRAME shim; used to prevent SELECT elements from </span>
|
|
<span class="c"> * poking through an Overlay instance in IE6. When set to "true", </span>
|
|
<span class="c"> * the iframe shim is created when the Overlay instance is intially</span>
|
|
<span class="c"> * made visible.</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default true for IE6 and below, false for all other browsers.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">handler</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">configIframe</span><span class="o">,</span>
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">IFRAME</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * @config preventcontextoverlap</span>
|
|
<span class="c"> * @description Boolean indicating whether or not the Overlay should overlap its </span>
|
|
<span class="c"> * context element (defined using the "context" configuration property) when the </span>
|
|
<span class="c"> * "constraintoviewport" configuration property is set to "true".</span>
|
|
<span class="c"> * @type Boolean</span>
|
|
<span class="c"> * @default false</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">cfg</span><span class="o">.</span><span class="nx">addProperty</span><span class="o">(</span><span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="o">.</span><span class="nx">key</span><span class="o">,</span> <span class="o">{</span>
|
|
|
|
<span class="nx">value</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="o">.</span><span class="nx">value</span><span class="o">,</span>
|
|
<span class="nx">validator</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="o">.</span><span class="nx">validator</span><span class="o">,</span>
|
|
<span class="nx">supercedes</span><span class="o">:</span> <span class="nx">DEFAULT_CONFIG</span><span class="o">.</span><span class="nx">PREVENT_CONTEXT_OVERLAP</span><span class="o">.</span><span class="nx">supercedes</span>
|
|
|
|
<span class="o">});</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Moves the Overlay to the specified position. This function is </span>
|
|
<span class="c"> * identical to calling this.cfg.setProperty("xy", [x,y]);</span>
|
|
<span class="c"> * @method moveTo</span>
|
|
<span class="c"> * @param {Number} x The Overlay's new x position</span>
|
|
<span class="c"> * @param {Number} y The Overlay's new y position</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">moveTo</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">,</span> <span class="o">[</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Adds a CSS class ("hide-scrollbars") and removes a CSS class </span>
|
|
<span class="c"> * ("show-scrollbars") to the Overlay to fix a bug in Gecko on Mac OS X </span>
|
|
<span class="c"> * (https://bugzilla.mozilla.org/show_bug.cgi?id=187435)</span>
|
|
<span class="c"> * @method hideMacGeckoScrollbars</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hideMacGeckoScrollbars</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">replaceClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"show-scrollbars"</span><span class="o">,</span> <span class="s2">"hide-scrollbars"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Adds a CSS class ("show-scrollbars") and removes a CSS class </span>
|
|
<span class="c"> * ("hide-scrollbars") to the Overlay to fix a bug in Gecko on Mac OS X </span>
|
|
<span class="c"> * (https://bugzilla.mozilla.org/show_bug.cgi?id=187435)</span>
|
|
<span class="c"> * @method showMacGeckoScrollbars</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">showMacGeckoScrollbars</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">replaceClass</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"hide-scrollbars"</span><span class="o">,</span> <span class="s2">"show-scrollbars"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">// BEGIN BUILT-IN PROPERTY EVENT HANDLERS //</span>
|
|
<span class="c"></span> <span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "visible" property is </span>
|
|
<span class="c"> * changed. This method is responsible for firing showEvent</span>
|
|
<span class="c"> * and hideEvent.</span>
|
|
<span class="c"> * @method configVisible</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration</span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configVisible</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">visible</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">currentVis</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"visibility"</span><span class="o">),</span>
|
|
<span class="nx">effect</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"effect"</span><span class="o">),</span>
|
|
<span class="nx">effectInstances</span> <span class="o">=</span> <span class="o">[],</span>
|
|
<span class="nx">isMacGecko</span> <span class="o">=</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">platform</span> <span class="o">==</span> <span class="s2">"mac"</span> <span class="o">&&</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">gecko</span><span class="o">),</span>
|
|
<span class="nx">alreadySubscribed</span> <span class="o">=</span> <span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">,</span>
|
|
<span class="nx">eff</span><span class="o">,</span> <span class="nx">ei</span><span class="o">,</span> <span class="nx">e</span><span class="o">,</span> <span class="nx">i</span><span class="o">,</span> <span class="nx">j</span><span class="o">,</span> <span class="nx">k</span><span class="o">,</span> <span class="nx">h</span><span class="o">,</span>
|
|
<span class="nx">nEffects</span><span class="o">,</span>
|
|
<span class="nx">nEffectInstances</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">"inherit"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">e</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">while</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">nodeType</span> <span class="o">!=</span> <span class="m">9</span> <span class="o">&&</span> <span class="nx">e</span><span class="o">.</span><span class="nx">nodeType</span> <span class="o">!=</span> <span class="m">11</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">currentVis</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="s2">"visibility"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">!=</span> <span class="s2">"inherit"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">e</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">"inherit"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">currentVis</span> <span class="o">=</span> <span class="s2">"visible"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">effect</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">effect</span> <span class="k">instanceof</span> <span class="nb">Array</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">nEffects</span> <span class="o">=</span> <span class="nx">effect</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
|
|
<span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">nEffects</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
|
|
<span class="nx">eff</span> <span class="o">=</span> <span class="nx">effect</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
|
|
<span class="nx">effectInstances</span><span class="o">[</span><span class="nx">effectInstances</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span>
|
|
<span class="nx">eff</span><span class="o">.</span><span class="nx">effect</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">eff</span><span class="o">.</span><span class="nx">duration</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">effectInstances</span><span class="o">[</span><span class="nx">effectInstances</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span>
|
|
<span class="nx">effect</span><span class="o">.</span><span class="nx">effect</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">effect</span><span class="o">.</span><span class="nx">duration</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">visible</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Show</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">isMacGecko</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showMacGeckoScrollbars</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">effect</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Animate in</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">visible</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Animate in if not showing</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">!=</span> <span class="s2">"visible"</span> <span class="o">||</span> <span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">""</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="nx">nEffectInstances</span> <span class="o">=</span> <span class="nx">effectInstances</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
|
|
<span class="k">for</span> <span class="o">(</span><span class="nx">j</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">j</span> <span class="o"><</span> <span class="nx">nEffectInstances</span><span class="o">;</span> <span class="nx">j</span><span class="o">++)</span> <span class="o">{</span>
|
|
<span class="nx">ei</span> <span class="o">=</span> <span class="nx">effectInstances</span><span class="o">[</span><span class="nx">j</span><span class="o">];</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">j</span> <span class="o">===</span> <span class="m">0</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">alreadySubscribed</span><span class="o">(</span>
|
|
<span class="nx">ei</span><span class="o">.</span><span class="nx">animateInCompleteEvent</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Delegate showEvent until end </span>
|
|
<span class="c"> of animateInComplete</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">ei</span><span class="o">.</span><span class="nx">animateInCompleteEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">ei</span><span class="o">.</span><span class="nx">animateIn</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span> <span class="c">// Show</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">!=</span> <span class="s2">"visible"</span> <span class="o">||</span> <span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">""</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"visibility"</span><span class="o">,</span> <span class="s2">"visible"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span> <span class="c">// Hide</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">isMacGecko</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideMacGeckoScrollbars</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">effect</span><span class="o">)</span> <span class="o">{</span> <span class="c">// Animate out if showing</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">"visible"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeHideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
|
|
<span class="nx">nEffectInstances</span> <span class="o">=</span> <span class="nx">effectInstances</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span>
|
|
<span class="k">for</span> <span class="o">(</span><span class="nx">k</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">k</span> <span class="o"><</span> <span class="nx">nEffectInstances</span><span class="o">;</span> <span class="nx">k</span><span class="o">++)</span> <span class="o">{</span>
|
|
<span class="nx">h</span> <span class="o">=</span> <span class="nx">effectInstances</span><span class="o">[</span><span class="nx">k</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">k</span> <span class="o">===</span> <span class="m">0</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">alreadySubscribed</span><span class="o">(</span>
|
|
<span class="nx">h</span><span class="o">.</span><span class="nx">animateOutCompleteEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">,</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">))</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Delegate hideEvent until end </span>
|
|
<span class="c"> of animateOutComplete</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">h</span><span class="o">.</span><span class="nx">animateOutCompleteEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="nx">h</span><span class="o">.</span><span class="nx">animateOut</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">""</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"visibility"</span><span class="o">,</span> <span class="s2">"hidden"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span> <span class="c">// Simple hide</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">currentVis</span> <span class="o">==</span> <span class="s2">"visible"</span> <span class="o">||</span> <span class="nx">currentVis</span> <span class="o">===</span> <span class="s2">""</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeHideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"visibility"</span><span class="o">,</span> <span class="s2">"hidden"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Center event handler used for centering on scroll/resize, but only if </span>
|
|
<span class="c"> * the Overlay is visible</span>
|
|
<span class="c"> * @method doCenterOnDOMEvent</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">doCenterOnDOMEvent</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">center</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "fixedcenter" property </span>
|
|
<span class="c"> * is changed.</span>
|
|
<span class="c"> * @method configFixedCenter</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configFixedCenter</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">alreadySubscribed</span> <span class="o">=</span> <span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">,</span>
|
|
<span class="nx">windowResizeEvent</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">,</span>
|
|
<span class="nx">windowScrollEvent</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollEvent</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">center</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">center</span><span class="o">,</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">center</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="nx">windowResizeEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="nx">windowScrollEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">windowScrollEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">center</span><span class="o">);</span>
|
|
|
|
<span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">windowScrollEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "height" property is changed.</span>
|
|
<span class="c"> * @method configHeight</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configHeight</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"height"</span><span class="o">,</span> <span class="nx">height</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "autofillheight" property is changed.</span>
|
|
<span class="c"> * @method configAutoFillHeight</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configAutoFillHeight</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">fillEl</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">currEl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"autofillheight"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">unsubscribeFromConfigEvent</span><span class="o">(</span><span class="s2">"height"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_autoFillOnHeightChange</span><span class="o">);</span>
|
|
<span class="nx">Module</span><span class="o">.</span><span class="nx">textResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="s2">"height"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_autoFillOnHeightChange</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">currEl</span> <span class="o">&&</span> <span class="nx">fillEl</span> <span class="o">!==</span> <span class="nx">currEl</span> <span class="o">&&</span> <span class="k">this</span><span class="o">[</span><span class="nx">currEl</span><span class="o">])</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">[</span><span class="nx">currEl</span><span class="o">],</span> <span class="s2">"height"</span><span class="o">,</span> <span class="s2">""</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">fillEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">fillEl</span> <span class="o">=</span> <span class="nx">Lang</span><span class="o">.</span><span class="nx">trim</span><span class="o">(</span><span class="nx">fillEl</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">());</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">subscribeToConfigEvent</span><span class="o">(</span><span class="s2">"height"</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_autoFillOnHeightChange</span><span class="o">,</span> <span class="k">this</span><span class="o">[</span><span class="nx">fillEl</span><span class="o">],</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="nx">Module</span><span class="o">.</span><span class="nx">textResizeEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_autoFillOnHeightChange</span><span class="o">,</span> <span class="k">this</span><span class="o">[</span><span class="nx">fillEl</span><span class="o">],</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"autofillheight"</span><span class="o">,</span> <span class="nx">fillEl</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "width" property is changed.</span>
|
|
<span class="c"> * @method configWidth</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configWidth</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">width</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"width"</span><span class="o">,</span> <span class="nx">width</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "zIndex" property is changed.</span>
|
|
<span class="c"> * @method configzIndex</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configzIndex</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">zIndex</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">el</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">zIndex</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">zIndex</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">zIndex</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="o">(</span><span class="nx">zIndex</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">zIndex</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">)</span> <span class="o">===</span> <span class="kc">true</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">zIndex</span> <span class="o"><=</span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">zIndex</span> <span class="o">=</span> <span class="m">1</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">,</span> <span class="nx">zIndex</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"zIndex"</span><span class="o">,</span> <span class="nx">zIndex</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">stackIframe</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "xy" property is changed.</span>
|
|
<span class="c"> * @method configXY</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configXY</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">x</span> <span class="o">=</span> <span class="nx">pos</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="nx">pos</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">,</span> <span class="nx">x</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">,</span> <span class="nx">y</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
|
|
<span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">);</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">);</span>
|
|
|
|
<span class="nx">YAHOO</span><span class="o">.</span><span class="nx">log</span><span class="o">((</span><span class="s2">"xy: "</span> <span class="o">+</span> <span class="o">[</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]),</span> <span class="s2">"iframe"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">moveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "x" property is changed.</span>
|
|
<span class="c"> * @method configX</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configX</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">,</span> <span class="nx">x</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">,</span> <span class="nx">y</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
|
|
<span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">);</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">);</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setX</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">x</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">,</span> <span class="o">[</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">],</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">moveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "y" property is changed.</span>
|
|
<span class="c"> * @method configY</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configY</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">),</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">,</span> <span class="nx">x</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">,</span> <span class="nx">y</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
|
|
<span class="nx">x</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">);</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">);</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setY</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="nx">y</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">,</span> <span class="o">[</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">],</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">moveEvent</span><span class="o">.</span><span class="nx">fire</span><span class="o">([</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">]);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Shows the iframe shim, if it has been enabled.</span>
|
|
<span class="c"> * @method showIframe</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">showIframe</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oIFrame</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span>
|
|
<span class="nx">oParentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oIFrame</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">oParentNode</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oParentNode</span> <span class="o">!=</span> <span class="nx">oIFrame</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_addToParent</span><span class="o">(</span><span class="nx">oParentNode</span><span class="o">,</span> <span class="nx">oIFrame</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">oIFrame</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"block"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Hides the iframe shim, if it has been enabled.</span>
|
|
<span class="c"> * @method hideIframe</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">hideIframe</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Syncronizes the size and position of iframe shim to that of its </span>
|
|
<span class="c"> * corresponding Overlay instance.</span>
|
|
<span class="c"> * @method syncIframe</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">syncIframe</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oIFrame</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">nOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">IFRAME_OFFSET</span><span class="o">,</span>
|
|
<span class="nx">nDimensionOffset</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nOffset</span> <span class="o">*</span> <span class="m">2</span><span class="o">),</span>
|
|
<span class="nx">aXY</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oIFrame</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Size <iframe></span>
|
|
<span class="c"></span> <span class="nx">oIFrame</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">width</span> <span class="o">=</span> <span class="o">(</span><span class="nx">oElement</span><span class="o">.</span><span class="nx">offsetWidth</span> <span class="o">+</span> <span class="nx">nDimensionOffset</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
<span class="nx">oIFrame</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">height</span> <span class="o">=</span> <span class="o">(</span><span class="nx">oElement</span><span class="o">.</span><span class="nx">offsetHeight</span> <span class="o">+</span> <span class="nx">nDimensionOffset</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
|
|
<span class="c">// Position <iframe></span>
|
|
<span class="c"></span> <span class="nx">aXY</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isArray</span><span class="o">(</span><span class="nx">aXY</span><span class="o">)</span> <span class="o">||</span> <span class="o">(</span><span class="nb">isNaN</span><span class="o">(</span><span class="nx">aXY</span><span class="o">[</span><span class="m">0</span><span class="o">])</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="o">(</span><span class="nx">aXY</span><span class="o">[</span><span class="m">1</span><span class="o">])))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">syncPosition</span><span class="o">();</span>
|
|
<span class="nx">aXY</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setXY</span><span class="o">(</span><span class="nx">oIFrame</span><span class="o">,</span> <span class="o">[(</span><span class="nx">aXY</span><span class="o">[</span><span class="m">0</span><span class="o">]</span> <span class="o">-</span> <span class="nx">nOffset</span><span class="o">),</span> <span class="o">(</span><span class="nx">aXY</span><span class="o">[</span><span class="m">1</span><span class="o">]</span> <span class="o">-</span> <span class="nx">nOffset</span><span class="o">)]);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Sets the zindex of the iframe shim, if it exists, based on the zindex of</span>
|
|
<span class="c"> * the Overlay element. The zindex of the iframe is set to be one less </span>
|
|
<span class="c"> * than the Overlay element's zindex.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * <p>NOTE: This method will not bump up the zindex of the Overlay element</span>
|
|
<span class="c"> * to ensure that the iframe shim has a non-negative zindex.</span>
|
|
<span class="c"> * If you require the iframe zindex to be 0 or higher, the zindex of </span>
|
|
<span class="c"> * the Overlay element should be set to a value greater than 0, before </span>
|
|
<span class="c"> * this method is called.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * @method stackIframe</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">stackIframe</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">overlayZ</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="nx">overlayZ</span><span class="o">)</span> <span class="o">&&</span> <span class="o">!</span><span class="nb">isNaN</span><span class="o">(</span><span class="nx">overlayZ</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">,</span> <span class="o">(</span><span class="nx">overlayZ</span> <span class="o">-</span> <span class="m">1</span><span class="o">));</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "iframe" property is changed.</span>
|
|
<span class="c"> * @method configIframe</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configIframe</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">bIFrame</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">function</span> <span class="nx">createIFrame</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oIFrame</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">,</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">oParent</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">oIFrame</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nx">m_oIFrameTemplate</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oIFrameTemplate</span> <span class="o">=</span> <span class="nb">document</span><span class="o">.</span><span class="nx">createElement</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">isSecure</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">src</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">IFRAME_SRC</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Set the opacity of the <iframe> to 0 so that it </span>
|
|
<span class="c"> doesn't modify the opacity of any transparent </span>
|
|
<span class="c"> elements that may be on top of it (like a shadow).</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">filter</span> <span class="o">=</span> <span class="s2">"alpha(opacity=0)"</span><span class="o">;</span>
|
|
<span class="c">/*</span>
|
|
<span class="c"> Need to set the "frameBorder" property to 0 </span>
|
|
<span class="c"> supress the default <iframe> border in IE. </span>
|
|
<span class="c"> Setting the CSS "border" property alone </span>
|
|
<span class="c"> doesn't supress it.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">frameBorder</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">opacity</span> <span class="o">=</span> <span class="s2">"0"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">position</span> <span class="o">=</span> <span class="s2">"absolute"</span><span class="o">;</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">border</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">margin</span> <span class="o">=</span> <span class="s2">"0"</span><span class="o">;</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">padding</span> <span class="o">=</span> <span class="s2">"0"</span><span class="o">;</span>
|
|
<span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">display</span> <span class="o">=</span> <span class="s2">"none"</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oIFrame</span> <span class="o">=</span> <span class="nx">m_oIFrameTemplate</span><span class="o">.</span><span class="nx">cloneNode</span><span class="o">(</span><span class="kc">false</span><span class="o">);</span>
|
|
<span class="nx">oParent</span> <span class="o">=</span> <span class="nx">oElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
|
|
<span class="k">var</span> <span class="nx">parentNode</span> <span class="o">=</span> <span class="nx">oParent</span> <span class="o">||</span> <span class="nb">document</span><span class="o">.</span><span class="nx">body</span><span class="o">;</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_addToParent</span><span class="o">(</span><span class="nx">parentNode</span><span class="o">,</span> <span class="nx">oIFrame</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="nx">oIFrame</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Show the <iframe> before positioning it since the "setXY" </span>
|
|
<span class="c"> method of DOM requires the element be in the document </span>
|
|
<span class="c"> and visible.</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showIframe</span><span class="o">();</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Syncronize the size and position of the <iframe> to that </span>
|
|
<span class="c"> of the Overlay.</span>
|
|
<span class="c"> */</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">syncIframe</span><span class="o">();</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">stackIframe</span><span class="o">();</span>
|
|
|
|
<span class="c">// Add event listeners to update the <iframe> when necessary</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasIframeEventListeners</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">showIframe</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hideIframe</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">changeContentEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">syncIframe</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasIframeEventListeners</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">onBeforeShow</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">createIFrame</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="nx">onBeforeShow</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_iframeDeferred</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bIFrame</span><span class="o">)</span> <span class="o">{</span> <span class="c">// <iframe> shim is enabled</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"visible"</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">createIFrame</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">_iframeDeferred</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="nx">onBeforeShow</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_iframeDeferred</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span> <span class="c">// <iframe> shim is disabled</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">hideIframe</span><span class="o">();</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_hasIframeEventListeners</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">showEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">showIframe</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">hideEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">hideIframe</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">changeContentEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">syncIframe</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_hasIframeEventListeners</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Set's the container's XY value from DOM if not already set.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * Differs from syncPosition, in that the XY value is only sync'd with DOM if </span>
|
|
<span class="c"> * not already set. The method also refire's the XY config property event, so any</span>
|
|
<span class="c"> * beforeMove, Move event listeners are invoked.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _primeXYFromDOM</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_primeXYFromDOM</span> <span class="o">:</span> <span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">YAHOO</span><span class="o">.</span><span class="nx">lang</span><span class="o">.</span><span class="nx">isUndefined</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">)))</span> <span class="o">{</span>
|
|
<span class="c">// Set CFG XY based on DOM XY</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">syncPosition</span><span class="o">();</span>
|
|
<span class="c">// Account for XY being set silently in syncPosition (no moveTo fired/called)</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_primeXYFromDOM</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "constraintoviewport" </span>
|
|
<span class="c"> * property is changed.</span>
|
|
<span class="c"> * @method configConstrainToViewport</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for </span>
|
|
<span class="c"> * the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configConstrainToViewport</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">val</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">enforceConstraints</span><span class="o">,</span> <span class="k">this</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">enforceConstraints</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">Config</span><span class="o">.</span><span class="nx">alreadySubscribed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_primeXYFromDOM</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">subscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_primeXYFromDOM</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeShowEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_primeXYFromDOM</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">beforeMoveEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">enforceConstraints</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler fired when the "context" property</span>
|
|
<span class="c"> * is changed.</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method configContext</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">configContext</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">contextArgs</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">contextEl</span><span class="o">,</span>
|
|
<span class="nx">elementMagnetCorner</span><span class="o">,</span>
|
|
<span class="nx">contextMagnetCorner</span><span class="o">,</span>
|
|
<span class="nx">triggers</span><span class="o">,</span>
|
|
<span class="nx">defTriggers</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">CONTEXT_TRIGGERS</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">contextArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">contextEl</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="nx">elementMagnetCorner</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
|
|
<span class="nx">contextMagnetCorner</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
|
|
<span class="nx">triggers</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">3</span><span class="o">];</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">defTriggers</span> <span class="o">&&</span> <span class="nx">defTriggers</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">0</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">triggers</span> <span class="o">=</span> <span class="o">(</span><span class="nx">triggers</span> <span class="o">||</span> <span class="o">[]).</span><span class="nx">concat</span><span class="o">(</span><span class="nx">defTriggers</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">contextEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">typeof</span> <span class="nx">contextEl</span> <span class="o">==</span> <span class="s2">"string"</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"context"</span><span class="o">,</span> <span class="o">[</span>
|
|
<span class="nb">document</span><span class="o">.</span><span class="nx">getElementById</span><span class="o">(</span><span class="nx">contextEl</span><span class="o">),</span>
|
|
<span class="nx">elementMagnetCorner</span><span class="o">,</span>
|
|
<span class="nx">contextMagnetCorner</span><span class="o">,</span>
|
|
<span class="nx">triggers</span> <span class="o">],</span>
|
|
<span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">elementMagnetCorner</span> <span class="o">&&</span> <span class="nx">contextMagnetCorner</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">align</span><span class="o">(</span><span class="nx">elementMagnetCorner</span><span class="o">,</span> <span class="nx">contextMagnetCorner</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_contextTriggers</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Unsubscribe Old Set</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">_processTriggers</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_contextTriggers</span><span class="o">,</span> <span class="nx">_UNSUBSCRIBE</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_alignOnTrigger</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">triggers</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Subscribe New Set</span>
|
|
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">_processTriggers</span><span class="o">(</span><span class="nx">triggers</span><span class="o">,</span> <span class="nx">_SUBSCRIBE</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_alignOnTrigger</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">_contextTriggers</span> <span class="o">=</span> <span class="nx">triggers</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Custom Event handler for context alignment triggers. Invokes the align method</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @method _alignOnTrigger</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @param {String} type The event type (not used by the default implementation)</span>
|
|
<span class="c"> * @param {Any[]} args The array of arguments for the trigger event (not used by the default implementation)</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_alignOnTrigger</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">align</span><span class="o">();</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Helper method to locate the custom event instance for the event name string</span>
|
|
<span class="c"> * passed in. As a convenience measure, any custom events passed in are returned.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _findTriggerCE</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {String|CustomEvent} t Either a CustomEvent, or event type (e.g. "windowScroll") for which a </span>
|
|
<span class="c"> * custom event instance needs to be looked up from the Overlay._TRIGGER_MAP.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_findTriggerCE</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">t</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">tce</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">t</span> <span class="k">instanceof</span> <span class="nx">CustomEvent</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">tce</span> <span class="o">=</span> <span class="nx">t</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">Overlay</span><span class="o">.</span><span class="nx">_TRIGGER_MAP</span><span class="o">[</span><span class="nx">t</span><span class="o">])</span> <span class="o">{</span>
|
|
<span class="nx">tce</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">_TRIGGER_MAP</span><span class="o">[</span><span class="nx">t</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span> <span class="nx">tce</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Utility method that subscribes or unsubscribes the given </span>
|
|
<span class="c"> * function from the list of trigger events provided.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _processTriggers</span>
|
|
<span class="c"> * @protected </span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {Array[String|CustomEvent]} triggers An array of either CustomEvents, event type strings </span>
|
|
<span class="c"> * (e.g. "beforeShow", "windowScroll") to/from which the provided function should be </span>
|
|
<span class="c"> * subscribed/unsubscribed respectively.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {String} mode Either "subscribe" or "unsubscribe", specifying whether or not</span>
|
|
<span class="c"> * we are subscribing or unsubscribing trigger listeners</span>
|
|
<span class="c"> * </span>
|
|
<span class="c"> * @param {Function} fn The function to be subscribed/unsubscribed to/from the trigger event.</span>
|
|
<span class="c"> * Context is always set to the overlay instance, and no additional object argument </span>
|
|
<span class="c"> * get passed to the subscribed function.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_processTriggers</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">triggers</span><span class="o">,</span> <span class="nx">mode</span><span class="o">,</span> <span class="nx">fn</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">t</span><span class="o">,</span> <span class="nx">tce</span><span class="o">;</span>
|
|
|
|
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">triggers</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">l</span><span class="o">;</span> <span class="o">++</span><span class="nx">i</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">t</span> <span class="o">=</span> <span class="nx">triggers</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
|
|
<span class="nx">tce</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_findTriggerCE</span><span class="o">(</span><span class="nx">t</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">tce</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">tce</span><span class="o">[</span><span class="nx">mode</span><span class="o">](</span><span class="nx">fn</span><span class="o">,</span> <span class="k">this</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">[</span><span class="nx">mode</span><span class="o">](</span><span class="nx">t</span><span class="o">,</span> <span class="nx">fn</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">// END BUILT-IN PROPERTY EVENT HANDLERS //</span>
|
|
<span class="c"></span> <span class="c">/**</span>
|
|
<span class="c"> * Aligns the Overlay to its context element using the specified corner </span>
|
|
<span class="c"> * points (represented by the constants TOP_LEFT, TOP_RIGHT, BOTTOM_LEFT, </span>
|
|
<span class="c"> * and BOTTOM_RIGHT.</span>
|
|
<span class="c"> * @method align</span>
|
|
<span class="c"> * @param {String} elementAlign The String representing the corner of </span>
|
|
<span class="c"> * the Overlay that should be aligned to the context element</span>
|
|
<span class="c"> * @param {String} contextAlign The corner of the context element </span>
|
|
<span class="c"> * that the elementAlign corner should stick to.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">align</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">elementAlign</span><span class="o">,</span> <span class="nx">contextAlign</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">contextArgs</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"context"</span><span class="o">),</span>
|
|
<span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">context</span><span class="o">,</span>
|
|
<span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">contextRegion</span><span class="o">;</span>
|
|
|
|
<span class="k">function</span> <span class="nx">doAlign</span><span class="o">(</span><span class="nx">v</span><span class="o">,</span> <span class="nx">h</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">elementAlign</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">TOP_LEFT</span><span class="o">:</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">moveTo</span><span class="o">(</span><span class="nx">h</span><span class="o">,</span> <span class="nx">v</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">TOP_RIGHT</span><span class="o">:</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">moveTo</span><span class="o">((</span><span class="nx">h</span> <span class="o">-</span> <span class="nx">element</span><span class="o">.</span><span class="nx">offsetWidth</span><span class="o">),</span> <span class="nx">v</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">BOTTOM_LEFT</span><span class="o">:</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">moveTo</span><span class="o">(</span><span class="nx">h</span><span class="o">,</span> <span class="o">(</span><span class="nx">v</span> <span class="o">-</span> <span class="nx">element</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">));</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">BOTTOM_RIGHT</span><span class="o">:</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">moveTo</span><span class="o">((</span><span class="nx">h</span> <span class="o">-</span> <span class="nx">element</span><span class="o">.</span><span class="nx">offsetWidth</span><span class="o">),</span>
|
|
<span class="o">(</span><span class="nx">v</span> <span class="o">-</span> <span class="nx">element</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">));</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">contextArgs</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">context</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="nx">element</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
<span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">elementAlign</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">elementAlign</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">1</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span> <span class="nx">contextAlign</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">contextAlign</span> <span class="o">=</span> <span class="nx">contextArgs</span><span class="o">[</span><span class="m">2</span><span class="o">];</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">element</span> <span class="o">&&</span> <span class="nx">context</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">contextRegion</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getRegion</span><span class="o">(</span><span class="nx">context</span><span class="o">);</span>
|
|
|
|
<span class="nx">switch</span> <span class="o">(</span><span class="nx">contextAlign</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">TOP_LEFT</span><span class="o">:</span>
|
|
<span class="nx">doAlign</span><span class="o">(</span><span class="nx">contextRegion</span><span class="o">.</span><span class="nx">top</span><span class="o">,</span> <span class="nx">contextRegion</span><span class="o">.</span><span class="nx">left</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">TOP_RIGHT</span><span class="o">:</span>
|
|
<span class="nx">doAlign</span><span class="o">(</span><span class="nx">contextRegion</span><span class="o">.</span><span class="nx">top</span><span class="o">,</span> <span class="nx">contextRegion</span><span class="o">.</span><span class="nx">right</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">BOTTOM_LEFT</span><span class="o">:</span>
|
|
<span class="nx">doAlign</span><span class="o">(</span><span class="nx">contextRegion</span><span class="o">.</span><span class="nx">bottom</span><span class="o">,</span> <span class="nx">contextRegion</span><span class="o">.</span><span class="nx">left</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
|
|
<span class="nx">case</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">BOTTOM_RIGHT</span><span class="o">:</span>
|
|
<span class="nx">doAlign</span><span class="o">(</span><span class="nx">contextRegion</span><span class="o">.</span><span class="nx">bottom</span><span class="o">,</span> <span class="nx">contextRegion</span><span class="o">.</span><span class="nx">right</span><span class="o">);</span>
|
|
<span class="k">break</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default event handler executed when the moveEvent is fired, if the </span>
|
|
<span class="c"> * "constraintoviewport" is set to true.</span>
|
|
<span class="c"> * @method enforceConstraints</span>
|
|
<span class="c"> * @param {String} type The CustomEvent type (usually the property name)</span>
|
|
<span class="c"> * @param {Object[]} args The CustomEvent arguments. For configuration </span>
|
|
<span class="c"> * handlers, args[0] will equal the newly applied value for the property.</span>
|
|
<span class="c"> * @param {Object} obj The scope object. For configuration handlers, </span>
|
|
<span class="c"> * this will usually equal the owner.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">enforceConstraints</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">args</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
|
|
<span class="k">var</span> <span class="nx">cXY</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">getConstrainedXY</span><span class="o">(</span><span class="nx">pos</span><span class="o">[</span><span class="m">0</span><span class="o">],</span> <span class="nx">pos</span><span class="o">[</span><span class="m">1</span><span class="o">]);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">,</span> <span class="nx">cXY</span><span class="o">[</span><span class="m">0</span><span class="o">],</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">,</span> <span class="nx">cXY</span><span class="o">[</span><span class="m">1</span><span class="o">],</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">,</span> <span class="nx">cXY</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Given x coordinate value, returns the calculated x coordinate required to </span>
|
|
<span class="c"> * position the Overlay if it is to be constrained to the viewport, based on the </span>
|
|
<span class="c"> * current element size, viewport dimensions and scroll values.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {Number} x The X coordinate value to be constrained</span>
|
|
<span class="c"> * @return {Number} The constrained x coordinate</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getConstrainedX</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">x</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oOverlay</span> <span class="o">=</span> <span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">oOverlayEl</span> <span class="o">=</span> <span class="nx">oOverlay</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">nOverlayOffsetWidth</span> <span class="o">=</span> <span class="nx">oOverlayEl</span><span class="o">.</span><span class="nx">offsetWidth</span><span class="o">,</span>
|
|
|
|
<span class="nx">nViewportOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="o">,</span>
|
|
<span class="nx">viewPortWidth</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportWidth</span><span class="o">(),</span>
|
|
<span class="nx">scrollX</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollLeft</span><span class="o">(),</span>
|
|
|
|
<span class="nx">bCanConstrain</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nOverlayOffsetWidth</span> <span class="o">+</span> <span class="nx">nViewportOffset</span> <span class="o"><</span> <span class="nx">viewPortWidth</span><span class="o">),</span>
|
|
|
|
<span class="nx">aContext</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"context"</span><span class="o">),</span>
|
|
<span class="nx">oContextEl</span><span class="o">,</span>
|
|
<span class="nx">nContextElX</span><span class="o">,</span>
|
|
<span class="nx">nContextElWidth</span><span class="o">,</span>
|
|
|
|
<span class="nx">bFlipped</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
<span class="nx">nLeftRegionWidth</span><span class="o">,</span>
|
|
<span class="nx">nRightRegionWidth</span><span class="o">,</span>
|
|
|
|
<span class="nx">leftConstraint</span><span class="o">,</span>
|
|
<span class="nx">rightConstraint</span><span class="o">,</span>
|
|
|
|
<span class="nx">xNew</span> <span class="o">=</span> <span class="nx">x</span><span class="o">,</span>
|
|
|
|
<span class="nx">oOverlapPositions</span> <span class="o">=</span> <span class="o">{</span>
|
|
|
|
<span class="s2">"tltr"</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s2">"blbr"</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s2">"brbl"</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s2">"trtl"</span><span class="o">:</span> <span class="kc">true</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">flipHorizontal</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nNewX</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">((</span><span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">)</span> <span class="o">-</span> <span class="nx">scrollX</span><span class="o">)</span> <span class="o">></span> <span class="nx">nContextElX</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">nNewX</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nContextElX</span> <span class="o">-</span> <span class="nx">nOverlayOffsetWidth</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">nNewX</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nContextElX</span> <span class="o">+</span> <span class="nx">nContextElWidth</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
|
|
<span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">,</span> <span class="o">(</span><span class="nx">nNewX</span> <span class="o">+</span> <span class="nx">scrollX</span><span class="o">),</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">return</span> <span class="nx">nNewX</span><span class="o">;</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Uses the context element's position to calculate the availble width </span>
|
|
<span class="c"> to the right and left of it to display its corresponding Overlay.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">var</span> <span class="nx">getDisplayRegionWidth</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="c">// The Overlay is to the right of the context element</span>
|
|
<span class="c"></span>
|
|
<span class="k">if</span> <span class="o">((</span><span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">)</span> <span class="o">-</span> <span class="nx">scrollX</span><span class="o">)</span> <span class="o">></span> <span class="nx">nContextElX</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">nRightRegionWidth</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span> <span class="c">// The Overlay is to the left of the context element</span>
|
|
<span class="c"></span> <span class="k">return</span> <span class="o">(</span><span class="nx">nLeftRegionWidth</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Positions the Overlay to the left or right of the context element so that it remains </span>
|
|
<span class="c"> inside the viewport.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">var</span> <span class="nx">setHorizontalPosition</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nDisplayRegionWidth</span> <span class="o">=</span> <span class="nx">getDisplayRegionWidth</span><span class="o">(),</span>
|
|
<span class="nx">fnReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nOverlayOffsetWidth</span> <span class="o">></span> <span class="nx">nDisplayRegionWidth</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bFlipped</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> All possible positions and values have been </span>
|
|
<span class="c"> tried, but none were successful, so fall back </span>
|
|
<span class="c"> to the original size and position.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">flipHorizontal</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">flipHorizontal</span><span class="o">();</span>
|
|
|
|
<span class="nx">bFlipped</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="nx">fnReturnVal</span> <span class="o">=</span> <span class="nx">setHorizontalPosition</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">fnReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"preventcontextoverlap"</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">aContext</span> <span class="o">&&</span>
|
|
<span class="nx">oOverlapPositions</span><span class="o">[(</span><span class="nx">aContext</span><span class="o">[</span><span class="m">1</span><span class="o">]</span> <span class="o">+</span> <span class="nx">aContext</span><span class="o">[</span><span class="m">2</span><span class="o">])])</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bCanConstrain</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oContextEl</span> <span class="o">=</span> <span class="nx">aContext</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="nx">nContextElX</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getX</span><span class="o">(</span><span class="nx">oContextEl</span><span class="o">)</span> <span class="o">-</span> <span class="nx">scrollX</span><span class="o">;</span>
|
|
<span class="nx">nContextElWidth</span> <span class="o">=</span> <span class="nx">oContextEl</span><span class="o">.</span><span class="nx">offsetWidth</span><span class="o">;</span>
|
|
<span class="nx">nLeftRegionWidth</span> <span class="o">=</span> <span class="nx">nContextElX</span><span class="o">;</span>
|
|
<span class="nx">nRightRegionWidth</span> <span class="o">=</span> <span class="o">(</span><span class="nx">viewPortWidth</span> <span class="o">-</span> <span class="o">(</span><span class="nx">nContextElX</span> <span class="o">+</span> <span class="nx">nContextElWidth</span><span class="o">));</span>
|
|
|
|
<span class="nx">setHorizontalPosition</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">xNew</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bCanConstrain</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">leftConstraint</span> <span class="o">=</span> <span class="nx">scrollX</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="nx">rightConstraint</span> <span class="o">=</span>
|
|
<span class="nx">scrollX</span> <span class="o">+</span> <span class="nx">viewPortWidth</span> <span class="o">-</span> <span class="nx">nOverlayOffsetWidth</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">x</span> <span class="o"><</span> <span class="nx">leftConstraint</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">xNew</span> <span class="o">=</span> <span class="nx">leftConstraint</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">x</span> <span class="o">></span> <span class="nx">rightConstraint</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">xNew</span> <span class="o">=</span> <span class="nx">rightConstraint</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">xNew</span> <span class="o">=</span> <span class="nx">nViewportOffset</span> <span class="o">+</span> <span class="nx">scrollX</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">xNew</span><span class="o">;</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Given y coordinate value, returns the calculated y coordinate required to </span>
|
|
<span class="c"> * position the Overlay if it is to be constrained to the viewport, based on the </span>
|
|
<span class="c"> * current element size, viewport dimensions and scroll values.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {Number} y The Y coordinate value to be constrained</span>
|
|
<span class="c"> * @return {Number} The constrained y coordinate</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getConstrainedY</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">y</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oOverlay</span> <span class="o">=</span> <span class="k">this</span><span class="o">,</span>
|
|
<span class="nx">oOverlayEl</span> <span class="o">=</span> <span class="nx">oOverlay</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">nOverlayOffsetHeight</span> <span class="o">=</span> <span class="nx">oOverlayEl</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">,</span>
|
|
|
|
<span class="nx">nViewportOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="o">,</span>
|
|
<span class="nx">viewPortHeight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportHeight</span><span class="o">(),</span>
|
|
<span class="nx">scrollY</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollTop</span><span class="o">(),</span>
|
|
|
|
<span class="nx">bCanConstrain</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nOverlayOffsetHeight</span> <span class="o">+</span> <span class="nx">nViewportOffset</span> <span class="o"><</span> <span class="nx">viewPortHeight</span><span class="o">),</span>
|
|
|
|
<span class="nx">aContext</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"context"</span><span class="o">),</span>
|
|
<span class="nx">oContextEl</span><span class="o">,</span>
|
|
<span class="nx">nContextElY</span><span class="o">,</span>
|
|
<span class="nx">nContextElHeight</span><span class="o">,</span>
|
|
|
|
<span class="nx">bFlipped</span> <span class="o">=</span> <span class="kc">false</span><span class="o">,</span>
|
|
|
|
<span class="nx">nTopRegionHeight</span><span class="o">,</span>
|
|
<span class="nx">nBottomRegionHeight</span><span class="o">,</span>
|
|
|
|
<span class="nx">topConstraint</span><span class="o">,</span>
|
|
<span class="nx">bottomConstraint</span><span class="o">,</span>
|
|
|
|
<span class="nx">yNew</span> <span class="o">=</span> <span class="nx">y</span><span class="o">,</span>
|
|
|
|
<span class="nx">oOverlapPositions</span> <span class="o">=</span> <span class="o">{</span>
|
|
<span class="s2">"trbr"</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s2">"tlbl"</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s2">"bltl"</span><span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
|
|
<span class="s2">"brtr"</span><span class="o">:</span> <span class="kc">true</span>
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="k">var</span> <span class="nx">flipVertical</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nNewY</span><span class="o">;</span>
|
|
|
|
<span class="c">// The Overlay is below the context element, flip it above</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">((</span><span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">)</span> <span class="o">-</span> <span class="nx">scrollY</span><span class="o">)</span> <span class="o">></span> <span class="nx">nContextElY</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">nNewY</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nContextElY</span> <span class="o">-</span> <span class="nx">nOverlayOffsetHeight</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span> <span class="c">// The Overlay is above the context element, flip it below</span>
|
|
<span class="c"></span> <span class="nx">nNewY</span> <span class="o">=</span> <span class="o">(</span><span class="nx">nContextElY</span> <span class="o">+</span> <span class="nx">nContextElHeight</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">,</span> <span class="o">(</span><span class="nx">nNewY</span> <span class="o">+</span> <span class="nx">scrollY</span><span class="o">),</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="k">return</span> <span class="nx">nNewY</span><span class="o">;</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Uses the context element's position to calculate the availble height </span>
|
|
<span class="c"> above and below it to display its corresponding Overlay.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">var</span> <span class="nx">getDisplayRegionHeight</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="c">// The Overlay is below the context element</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">((</span><span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">)</span> <span class="o">-</span> <span class="nx">scrollY</span><span class="o">)</span> <span class="o">></span> <span class="nx">nContextElY</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">nBottomRegionHeight</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span> <span class="c">// The Overlay is above the context element</span>
|
|
<span class="c"></span> <span class="k">return</span> <span class="o">(</span><span class="nx">nTopRegionHeight</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> Trys to place the Overlay in the best possible position (either above or </span>
|
|
<span class="c"> below its corresponding context element).</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="k">var</span> <span class="nx">setVerticalPosition</span> <span class="o">=</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nDisplayRegionHeight</span> <span class="o">=</span> <span class="nx">getDisplayRegionHeight</span><span class="o">(),</span>
|
|
<span class="nx">fnReturnVal</span><span class="o">;</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nOverlayOffsetHeight</span> <span class="o">></span> <span class="nx">nDisplayRegionHeight</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bFlipped</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="c">/*</span>
|
|
<span class="c"> All possible positions and values for the </span>
|
|
<span class="c"> "maxheight" configuration property have been </span>
|
|
<span class="c"> tried, but none were successful, so fall back </span>
|
|
<span class="c"> to the original size and position.</span>
|
|
<span class="c"> */</span>
|
|
|
|
<span class="nx">flipVertical</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="nx">flipVertical</span><span class="o">();</span>
|
|
|
|
<span class="nx">bFlipped</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
|
|
<span class="nx">fnReturnVal</span> <span class="o">=</span> <span class="nx">setVerticalPosition</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">fnReturnVal</span><span class="o">;</span>
|
|
|
|
<span class="o">};</span>
|
|
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"preventcontextoverlap"</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">aContext</span> <span class="o">&&</span>
|
|
<span class="nx">oOverlapPositions</span><span class="o">[(</span><span class="nx">aContext</span><span class="o">[</span><span class="m">1</span><span class="o">]</span> <span class="o">+</span> <span class="nx">aContext</span><span class="o">[</span><span class="m">2</span><span class="o">])])</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bCanConstrain</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">oContextEl</span> <span class="o">=</span> <span class="nx">aContext</span><span class="o">[</span><span class="m">0</span><span class="o">];</span>
|
|
<span class="nx">nContextElHeight</span> <span class="o">=</span> <span class="nx">oContextEl</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">;</span>
|
|
<span class="nx">nContextElY</span> <span class="o">=</span> <span class="o">(</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">getY</span><span class="o">(</span><span class="nx">oContextEl</span><span class="o">)</span> <span class="o">-</span> <span class="nx">scrollY</span><span class="o">);</span>
|
|
|
|
<span class="nx">nTopRegionHeight</span> <span class="o">=</span> <span class="nx">nContextElY</span><span class="o">;</span>
|
|
<span class="nx">nBottomRegionHeight</span> <span class="o">=</span> <span class="o">(</span><span class="nx">viewPortHeight</span> <span class="o">-</span> <span class="o">(</span><span class="nx">nContextElY</span> <span class="o">+</span> <span class="nx">nContextElHeight</span><span class="o">));</span>
|
|
|
|
<span class="nx">setVerticalPosition</span><span class="o">();</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">yNew</span> <span class="o">=</span> <span class="nx">oOverlay</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">getProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">);</span>
|
|
|
|
<span class="o">}</span>
|
|
<span class="k">else</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bCanConstrain</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="nx">topConstraint</span> <span class="o">=</span> <span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
<span class="nx">bottomConstraint</span> <span class="o">=</span>
|
|
<span class="nx">scrollY</span> <span class="o">+</span> <span class="nx">viewPortHeight</span> <span class="o">-</span> <span class="nx">nOverlayOffsetHeight</span> <span class="o">-</span> <span class="nx">nViewportOffset</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">y</span> <span class="o"><</span> <span class="nx">topConstraint</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">yNew</span> <span class="o">=</span> <span class="nx">topConstraint</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">y</span> <span class="o">></span> <span class="nx">bottomConstraint</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">yNew</span> <span class="o">=</span> <span class="nx">bottomConstraint</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">yNew</span> <span class="o">=</span> <span class="nx">nViewportOffset</span> <span class="o">+</span> <span class="nx">scrollY</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">yNew</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Given x, y coordinate values, returns the calculated coordinates required to </span>
|
|
<span class="c"> * position the Overlay if it is to be constrained to the viewport, based on the </span>
|
|
<span class="c"> * current element size, viewport dimensions and scroll values.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @param {Number} x The X coordinate value to be constrained</span>
|
|
<span class="c"> * @param {Number} y The Y coordinate value to be constrained</span>
|
|
<span class="c"> * @return {Array} The constrained x and y coordinates at index 0 and 1 respectively;</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">getConstrainedXY</span><span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">x</span><span class="o">,</span> <span class="nx">y</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">getConstrainedX</span><span class="o">(</span><span class="nx">x</span><span class="o">),</span> <span class="k">this</span><span class="o">.</span><span class="nx">getConstrainedY</span><span class="o">(</span><span class="nx">y</span><span class="o">)];</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Centers the container in the viewport.</span>
|
|
<span class="c"> * @method center</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">center</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">nViewportOffset</span> <span class="o">=</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">VIEWPORT_OFFSET</span><span class="o">,</span>
|
|
<span class="nx">elementWidth</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">offsetWidth</span><span class="o">,</span>
|
|
<span class="nx">elementHeight</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">,</span>
|
|
<span class="nx">viewPortWidth</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportWidth</span><span class="o">(),</span>
|
|
<span class="nx">viewPortHeight</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getViewportHeight</span><span class="o">(),</span>
|
|
<span class="nx">x</span><span class="o">,</span>
|
|
<span class="nx">y</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">elementWidth</span> <span class="o"><</span> <span class="nx">viewPortWidth</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">x</span> <span class="o">=</span> <span class="o">(</span><span class="nx">viewPortWidth</span> <span class="sr">/ 2) - (elementWidth /</span> <span class="m">2</span><span class="o">)</span> <span class="o">+</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollLeft</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">x</span> <span class="o">=</span> <span class="nx">nViewportOffset</span> <span class="o">+</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollLeft</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">elementHeight</span> <span class="o"><</span> <span class="nx">viewPortHeight</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="o">(</span><span class="nx">viewPortHeight</span> <span class="sr">/ 2) - (elementHeight /</span> <span class="m">2</span><span class="o">)</span> <span class="o">+</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollTop</span><span class="o">();</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">y</span> <span class="o">=</span> <span class="nx">nViewportOffset</span> <span class="o">+</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getDocumentScrollTop</span><span class="o">();</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">,</span> <span class="o">[</span><span class="nb">parseInt</span><span class="o">(</span><span class="nx">x</span><span class="o">,</span> <span class="m">10</span><span class="o">),</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">y</span><span class="o">,</span> <span class="m">10</span><span class="o">)]);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Synchronizes the Panel's "xy", "x", and "y" properties with the </span>
|
|
<span class="c"> * Panel's position in the DOM. This is primarily used to update </span>
|
|
<span class="c"> * position information during drag & drop.</span>
|
|
<span class="c"> * @method syncPosition</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">syncPosition</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">pos</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getXY</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">);</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"x"</span><span class="o">,</span> <span class="nx">pos</span><span class="o">[</span><span class="m">0</span><span class="o">],</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"y"</span><span class="o">,</span> <span class="nx">pos</span><span class="o">[</span><span class="m">1</span><span class="o">],</span> <span class="kc">true</span><span class="o">);</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"xy"</span><span class="o">,</span> <span class="nx">pos</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
|
|
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Event handler fired when the resize monitor element is resized.</span>
|
|
<span class="c"> * @method onDomResize</span>
|
|
<span class="c"> * @param {DOMEvent} e The resize DOM event</span>
|
|
<span class="c"> * @param {Object} obj The scope object</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">onDomResize</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">,</span> <span class="nx">obj</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">me</span> <span class="o">=</span> <span class="k">this</span><span class="o">;</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">onDomResize</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">,</span> <span class="nx">e</span><span class="o">,</span> <span class="nx">obj</span><span class="o">);</span>
|
|
|
|
<span class="nx">setTimeout</span><span class="o">(</span><span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">syncPosition</span><span class="o">();</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"iframe"</span><span class="o">);</span>
|
|
<span class="nx">me</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">refireEvent</span><span class="o">(</span><span class="s2">"context"</span><span class="o">);</span>
|
|
<span class="o">},</span> <span class="m">0</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Determines the content box height of the given element (height of the element, without padding or borders) in pixels.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _getComputedHeight</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {HTMLElement} el The element for which the content height needs to be determined</span>
|
|
<span class="c"> * @return {Number} The content box height of the given element, or null if it could not be determined.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_getComputedHeight</span> <span class="o">:</span> <span class="o">(</span><span class="k">function</span><span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nb">document</span><span class="o">.</span><span class="nx">defaultView</span> <span class="o">&&</span> <span class="nb">document</span><span class="o">.</span><span class="nx">defaultView</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">ownerDocument</span> <span class="o">&&</span> <span class="nx">el</span><span class="o">.</span><span class="nx">ownerDocument</span><span class="o">.</span><span class="nx">defaultView</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">computed</span> <span class="o">=</span> <span class="nx">el</span><span class="o">.</span><span class="nx">ownerDocument</span><span class="o">.</span><span class="nx">defaultView</span><span class="o">.</span><span class="nx">getComputedStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s1">''</span><span class="o">);</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">computed</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">height</span> <span class="o">=</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">computed</span><span class="o">.</span><span class="nx">height</span><span class="o">,</span> <span class="m">10</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">(</span><span class="nx">height</span><span class="o">))</span> <span class="o">?</span> <span class="nx">height</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">};</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">pixelHeight</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">height</span> <span class="o">=</span> <span class="nx">el</span><span class="o">.</span><span class="nx">style</span><span class="o">.</span><span class="nx">pixelHeight</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="k">return</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">(</span><span class="nx">height</span><span class="o">))</span> <span class="o">?</span> <span class="nx">height</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
|
|
<span class="o">};</span>
|
|
<span class="o">}</span>
|
|
<span class="o">})(),</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * autofillheight validator. Verifies that the autofill value is either null </span>
|
|
<span class="c"> * or one of the strings : "body", "header" or "footer".</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _validateAutoFillHeight</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} val</span>
|
|
<span class="c"> * @return true, if valid, false otherwise</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_validateAutoFillHeight</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">(!</span><span class="nx">val</span><span class="o">)</span> <span class="o">||</span> <span class="o">(</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isString</span><span class="o">(</span><span class="nx">val</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">STD_MOD_RE</span><span class="o">.</span><span class="nx">test</span><span class="o">(</span><span class="nx">val</span><span class="o">));</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * The default custom event handler executed when the overlay's height is changed, </span>
|
|
<span class="c"> * if the autofillheight property has been set.</span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method _autoFillOnHeightChange</span>
|
|
<span class="c"> * @protected</span>
|
|
<span class="c"> * @param {String} type The event type</span>
|
|
<span class="c"> * @param {Array} args The array of arguments passed to event subscribers</span>
|
|
<span class="c"> * @param {HTMLElement} el The header, body or footer element which is to be resized to fill</span>
|
|
<span class="c"> * out the containers height</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_autoFillOnHeightChange</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">type</span><span class="o">,</span> <span class="nx">args</span><span class="o">,</span> <span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">fillHeight</span><span class="o">(</span><span class="nx">el</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns the sub-pixel height of the el, using getBoundingClientRect, if available,</span>
|
|
<span class="c"> * otherwise returns the offsetHeight</span>
|
|
<span class="c"> * @method _getPreciseHeight</span>
|
|
<span class="c"> * @private</span>
|
|
<span class="c"> * @param {HTMLElement} el</span>
|
|
<span class="c"> * @return {Float} The sub-pixel height if supported by the browser, else the rounded height.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">_getPreciseHeight</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">height</span> <span class="o">=</span> <span class="nx">el</span><span class="o">.</span><span class="nx">offsetHeight</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">getBoundingClientRect</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">rect</span> <span class="o">=</span> <span class="nx">el</span><span class="o">.</span><span class="nx">getBoundingClientRect</span><span class="o">();</span>
|
|
<span class="nx">height</span> <span class="o">=</span> <span class="nx">rect</span><span class="o">.</span><span class="nx">bottom</span> <span class="o">-</span> <span class="nx">rect</span><span class="o">.</span><span class="nx">top</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">return</span> <span class="nx">height</span><span class="o">;</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * <p></span>
|
|
<span class="c"> * Sets the height on the provided header, body or footer element to </span>
|
|
<span class="c"> * fill out the height of the container. It determines the height of the </span>
|
|
<span class="c"> * containers content box, based on it's configured height value, and </span>
|
|
<span class="c"> * sets the height of the autofillheight element to fill out any </span>
|
|
<span class="c"> * space remaining after the other standard module element heights </span>
|
|
<span class="c"> * have been accounted for.</span>
|
|
<span class="c"> * </p></span>
|
|
<span class="c"> * <p><strong>NOTE:</strong> This method is not designed to work if an explicit </span>
|
|
<span class="c"> * height has not been set on the container, since for an "auto" height container, </span>
|
|
<span class="c"> * the heights of the header/body/footer will drive the height of the container.</p></span>
|
|
<span class="c"> *</span>
|
|
<span class="c"> * @method fillHeight</span>
|
|
<span class="c"> * @param {HTMLElement} el The element which should be resized to fill out the height</span>
|
|
<span class="c"> * of the container element.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">fillHeight</span> <span class="o">:</span> <span class="k">function</span><span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">container</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">innerElement</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">,</span>
|
|
<span class="nx">containerEls</span> <span class="o">=</span> <span class="o">[</span><span class="k">this</span><span class="o">.</span><span class="nx">header</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">body</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">footer</span><span class="o">],</span>
|
|
<span class="nx">containerEl</span><span class="o">,</span>
|
|
<span class="nx">total</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
|
|
<span class="nx">filled</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
|
|
<span class="nx">remaining</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span>
|
|
<span class="nx">validEl</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="k">for</span> <span class="o">(</span><span class="k">var</span> <span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">,</span> <span class="nx">l</span> <span class="o">=</span> <span class="nx">containerEls</span><span class="o">.</span><span class="nx">length</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">l</span><span class="o">;</span> <span class="nx">i</span><span class="o">++)</span> <span class="o">{</span>
|
|
<span class="nx">containerEl</span> <span class="o">=</span> <span class="nx">containerEls</span><span class="o">[</span><span class="nx">i</span><span class="o">];</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">containerEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">el</span> <span class="o">!==</span> <span class="nx">containerEl</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">filled</span> <span class="o">+=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getPreciseHeight</span><span class="o">(</span><span class="nx">containerEl</span><span class="o">);</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">validEl</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">validEl</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">UA</span><span class="o">.</span><span class="nx">ie</span> <span class="o">||</span> <span class="nx">UA</span><span class="o">.</span><span class="nx">opera</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="c">// Need to set height to 0, to allow height to be reduced</span>
|
|
<span class="c"></span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s1">'height'</span><span class="o">,</span> <span class="m">0</span> <span class="o">+</span> <span class="s1">'px'</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">total</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_getComputedHeight</span><span class="o">(</span><span class="nx">container</span><span class="o">);</span>
|
|
|
|
<span class="c">// Fallback, if we can't get computed value for content height</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">total</span> <span class="o">===</span> <span class="kc">null</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">addClass</span><span class="o">(</span><span class="nx">container</span><span class="o">,</span> <span class="s2">"yui-override-padding"</span><span class="o">);</span>
|
|
<span class="nx">total</span> <span class="o">=</span> <span class="nx">container</span><span class="o">.</span><span class="nx">clientHeight</span><span class="o">;</span> <span class="c">// Content, No Border, 0 Padding (set by yui-override-padding)</span>
|
|
<span class="c"></span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">removeClass</span><span class="o">(</span><span class="nx">container</span><span class="o">,</span> <span class="s2">"yui-override-padding"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">remaining</span> <span class="o">=</span> <span class="nx">total</span> <span class="o">-</span> <span class="nx">filled</span><span class="o">;</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"height"</span><span class="o">,</span> <span class="nx">remaining</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
|
|
<span class="c">// Re-adjust height if required, to account for el padding and border</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">offsetHeight</span> <span class="o">!=</span> <span class="nx">remaining</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">remaining</span> <span class="o">=</span> <span class="nx">remaining</span> <span class="o">-</span> <span class="o">(</span><span class="nx">el</span><span class="o">.</span><span class="nx">offsetHeight</span> <span class="o">-</span> <span class="nx">remaining</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="nx">el</span><span class="o">,</span> <span class="s2">"height"</span><span class="o">,</span> <span class="nx">remaining</span> <span class="o">+</span> <span class="s2">"px"</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Places the Overlay on top of all other instances of </span>
|
|
<span class="c"> * YAHOO.widget.Overlay.</span>
|
|
<span class="c"> * @method bringToTop</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">bringToTop</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">aOverlays</span> <span class="o">=</span> <span class="o">[],</span>
|
|
<span class="nx">oElement</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">element</span><span class="o">;</span>
|
|
|
|
<span class="k">function</span> <span class="nx">compareZIndexDesc</span><span class="o">(</span><span class="nx">p_oOverlay1</span><span class="o">,</span> <span class="nx">p_oOverlay2</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">sZIndex1</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="nx">p_oOverlay1</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">),</span>
|
|
<span class="nx">sZIndex2</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="nx">p_oOverlay2</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">),</span>
|
|
|
|
<span class="nx">nZIndex1</span> <span class="o">=</span> <span class="o">(!</span><span class="nx">sZIndex1</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="o">(</span><span class="nx">sZIndex1</span><span class="o">))</span> <span class="o">?</span> <span class="m">0</span> <span class="o">:</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">sZIndex1</span><span class="o">,</span> <span class="m">10</span><span class="o">),</span>
|
|
<span class="nx">nZIndex2</span> <span class="o">=</span> <span class="o">(!</span><span class="nx">sZIndex2</span> <span class="o">||</span> <span class="nb">isNaN</span><span class="o">(</span><span class="nx">sZIndex2</span><span class="o">))</span> <span class="o">?</span> <span class="m">0</span> <span class="o">:</span> <span class="nb">parseInt</span><span class="o">(</span><span class="nx">sZIndex2</span><span class="o">,</span> <span class="m">10</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">nZIndex1</span> <span class="o">></span> <span class="nx">nZIndex2</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="o">-</span><span class="m">1</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">nZIndex1</span> <span class="o"><</span> <span class="nx">nZIndex2</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="m">1</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="m">0</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">function</span> <span class="nx">isOverlayElement</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
|
|
<span class="k">var</span> <span class="nx">isOverlay</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">Overlay</span><span class="o">.</span><span class="nx">CSS_OVERLAY</span><span class="o">),</span>
|
|
<span class="nx">Panel</span> <span class="o">=</span> <span class="nx">YAHOO</span><span class="o">.</span><span class="nx">widget</span><span class="o">.</span><span class="nx">Panel</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">isOverlay</span> <span class="o">&&</span> <span class="o">!</span><span class="nx">Dom</span><span class="o">.</span><span class="nx">isAncestor</span><span class="o">(</span><span class="nx">oElement</span><span class="o">,</span> <span class="nx">p_oElement</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">Panel</span> <span class="o">&&</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">hasClass</span><span class="o">(</span><span class="nx">p_oElement</span><span class="o">,</span> <span class="nx">Panel</span><span class="o">.</span><span class="nx">CSS_PANEL</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">aOverlays</span><span class="o">[</span><span class="nx">aOverlays</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
|
|
<span class="nx">aOverlays</span><span class="o">[</span><span class="nx">aOverlays</span><span class="o">.</span><span class="nx">length</span><span class="o">]</span> <span class="o">=</span> <span class="nx">p_oElement</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="nx">Dom</span><span class="o">.</span><span class="nx">getElementsBy</span><span class="o">(</span><span class="nx">isOverlayElement</span><span class="o">,</span> <span class="s2">"DIV"</span><span class="o">,</span> <span class="nb">document</span><span class="o">.</span><span class="nx">body</span><span class="o">);</span>
|
|
|
|
<span class="nx">aOverlays</span><span class="o">.</span><span class="nx">sort</span><span class="o">(</span><span class="nx">compareZIndexDesc</span><span class="o">);</span>
|
|
|
|
<span class="k">var</span> <span class="nx">oTopOverlay</span> <span class="o">=</span> <span class="nx">aOverlays</span><span class="o">[</span><span class="m">0</span><span class="o">],</span>
|
|
<span class="nx">nTopZIndex</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oTopOverlay</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">nTopZIndex</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="nx">oTopOverlay</span><span class="o">,</span> <span class="s2">"zIndex"</span><span class="o">);</span>
|
|
|
|
<span class="k">if</span> <span class="o">(!</span><span class="nb">isNaN</span><span class="o">(</span><span class="nx">nTopZIndex</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">bRequiresBump</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">oTopOverlay</span> <span class="o">!=</span> <span class="nx">oElement</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="nx">bRequiresBump</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span> <span class="k">else</span> <span class="k">if</span> <span class="o">(</span><span class="nx">aOverlays</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="m">1</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">var</span> <span class="nx">nNextZIndex</span> <span class="o">=</span> <span class="nx">Dom</span><span class="o">.</span><span class="nx">getStyle</span><span class="o">(</span><span class="nx">aOverlays</span><span class="o">[</span><span class="m">1</span><span class="o">],</span> <span class="s2">"zIndex"</span><span class="o">);</span>
|
|
<span class="c">// Don't rely on DOM order to stack if 2 overlays are at the same zindex.</span>
|
|
<span class="c"></span> <span class="k">if</span> <span class="o">(!</span><span class="nb">isNaN</span><span class="o">(</span><span class="nx">nNextZIndex</span><span class="o">)</span> <span class="o">&&</span> <span class="o">(</span><span class="nx">nTopZIndex</span> <span class="o">==</span> <span class="nx">nNextZIndex</span><span class="o">))</span> <span class="o">{</span>
|
|
<span class="nx">bRequiresBump</span> <span class="o">=</span> <span class="kc">true</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="k">if</span> <span class="o">(</span><span class="nx">bRequiresBump</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">cfg</span><span class="o">.</span><span class="nx">setProperty</span><span class="o">(</span><span class="s2">"zindex"</span><span class="o">,</span> <span class="o">(</span><span class="nb">parseInt</span><span class="o">(</span><span class="nx">nTopZIndex</span><span class="o">,</span> <span class="m">10</span><span class="o">)</span> <span class="o">+</span> <span class="m">2</span><span class="o">));</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">}</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Removes the Overlay element from the DOM and sets all child </span>
|
|
<span class="c"> * elements to null.</span>
|
|
<span class="c"> * @method destroy</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">destroy</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
|
|
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">)</span> <span class="o">{</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">.</span><span class="nx">parentNode</span><span class="o">.</span><span class="nx">removeChild</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">iframe</span><span class="o">);</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">iframe</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">windowScrollEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span>
|
|
<span class="k">this</span><span class="o">.</span><span class="nx">doCenterOnDOMEvent</span><span class="o">,</span> <span class="k">this</span><span class="o">);</span>
|
|
|
|
<span class="nx">Module</span><span class="o">.</span><span class="nx">textResizeEvent</span><span class="o">.</span><span class="nx">unsubscribe</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_autoFillOnHeightChange</span><span class="o">);</span>
|
|
|
|
<span class="nx">Overlay</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">destroy</span><span class="o">.</span><span class="nx">call</span><span class="o">(</span><span class="k">this</span><span class="o">);</span>
|
|
<span class="o">},</span>
|
|
|
|
<span class="c">/**</span>
|
|
<span class="c"> * Returns a String representation of the object.</span>
|
|
<span class="c"> * @method toString</span>
|
|
<span class="c"> * @return {String} The string representation of the Overlay.</span>
|
|
<span class="c"> */</span>
|
|
<span class="nx">toString</span><span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
|
|
<span class="k">return</span> <span class="s2">"Overlay "</span> <span class="o">+</span> <span class="k">this</span><span class="o">.</span><span class="nx">id</span><span class="o">;</span>
|
|
<span class="o">}</span>
|
|
|
|
<span class="o">});</span>
|
|
<span class="o">}());</span>
|
|
</pre></div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="yui-b">
|
|
<div class="nav">
|
|
|
|
<div class="module">
|
|
<h4>Modules</h4>
|
|
<ul class="content">
|
|
|
|
<li class=""><a href="module_animation.html">animation</a></li>
|
|
|
|
<li class=""><a href="module_autocomplete.html">autocomplete</a></li>
|
|
|
|
<li class=""><a href="module_button.html">button</a></li>
|
|
|
|
<li class=""><a href="module_calendar.html">calendar</a></li>
|
|
|
|
<li class=""><a href="module_carousel.html">carousel</a></li>
|
|
|
|
<li class=""><a href="module_charts.html">charts</a></li>
|
|
|
|
<li class=""><a href="module_colorpicker.html">colorpicker</a></li>
|
|
|
|
<li class=""><a href="module_connection.html">connection</a></li>
|
|
|
|
<li class="selected"><a href="module_container.html">container</a></li>
|
|
|
|
<li class=""><a href="module_cookie.html">cookie</a></li>
|
|
|
|
<li class=""><a href="module_datasource.html">datasource</a></li>
|
|
|
|
<li class=""><a href="module_datatable.html">datatable</a></li>
|
|
|
|
<li class=""><a href="module_dom.html">dom</a></li>
|
|
|
|
<li class=""><a href="module_dragdrop.html">dragdrop</a></li>
|
|
|
|
<li class=""><a href="module_editor.html">editor</a></li>
|
|
|
|
<li class=""><a href="module_element.html">element</a></li>
|
|
|
|
<li class=""><a href="module_event.html">event</a></li>
|
|
|
|
<li class=""><a href="module_get.html">get</a></li>
|
|
|
|
<li class=""><a href="module_history.html">history</a></li>
|
|
|
|
<li class=""><a href="module_imagecropper.html">imagecropper</a></li>
|
|
|
|
<li class=""><a href="module_imageloader.html">imageloader</a></li>
|
|
|
|
<li class=""><a href="module_json.html">json</a></li>
|
|
|
|
<li class=""><a href="module_layout.html">layout</a></li>
|
|
|
|
<li class=""><a href="module_logger.html">logger</a></li>
|
|
|
|
<li class=""><a href="module_menu.html">menu</a></li>
|
|
|
|
<li class=""><a href="module_paginator.html">paginator</a></li>
|
|
|
|
<li class=""><a href="module_profiler.html">profiler</a></li>
|
|
|
|
<li class=""><a href="module_profilerviewer.html">profilerviewer</a></li>
|
|
|
|
<li class=""><a href="module_resize.html">resize</a></li>
|
|
|
|
<li class=""><a href="module_selector.html">selector</a></li>
|
|
|
|
<li class=""><a href="module_slider.html">slider</a></li>
|
|
|
|
<li class=""><a href="module_tabview.html">tabview</a></li>
|
|
|
|
<li class=""><a href="module_treeview.html">treeview</a></li>
|
|
|
|
<li class=""><a href="module_uploader.html">uploader</a></li>
|
|
|
|
<li class=""><a href="module_yahoo.html">yahoo</a></li>
|
|
|
|
<li class=""><a href="module_yuiloader.html">yuiloader</a></li>
|
|
|
|
<li class=""><a href="module_yuitest.html">yuitest</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Classes</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="YAHOO.util.Config.html">YAHOO.util.Config</a></li>
|
|
<li class=""><a href="YAHOO.widget.ContainerEffect.html">YAHOO.widget.ContainerEffect</a></li>
|
|
<li class=""><a href="YAHOO.widget.Dialog.html">YAHOO.widget.Dialog</a></li>
|
|
<li class=""><a href="YAHOO.widget.Module.html">YAHOO.widget.Module</a></li>
|
|
<li class=""><a href="YAHOO.widget.Overlay.html">YAHOO.widget.Overlay</a></li>
|
|
<li class=""><a href="YAHOO.widget.OverlayManager.html">YAHOO.widget.OverlayManager</a></li>
|
|
<li class=""><a href="YAHOO.widget.Panel.html">YAHOO.widget.Panel</a></li>
|
|
<li class=""><a href="YAHOO.widget.SimpleDialog.html">YAHOO.widget.SimpleDialog</a></li>
|
|
<li class=""><a href="YAHOO.widget.Tooltip.html">YAHOO.widget.Tooltip</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="module">
|
|
<h4>Files</h4>
|
|
<ul class="content">
|
|
<li class=""><a href="Config.js.html">Config.js</a></li>
|
|
<li class=""><a href="ContainerEffect.js.html">ContainerEffect.js</a></li>
|
|
<li class=""><a href="Dialog.js.html">Dialog.js</a></li>
|
|
<li class=""><a href="Module.js.html">Module.js</a></li>
|
|
<li class="selected"><a href="Overlay.js.html">Overlay.js</a></li>
|
|
<li class=""><a href="OverlayManager.js.html">OverlayManager.js</a></li>
|
|
<li class=""><a href="Panel.js.html">Panel.js</a></li>
|
|
<li class=""><a href="SimpleDialog.js.html">SimpleDialog.js</a></li>
|
|
<li class=""><a href="Tooltip.js.html">Tooltip.js</a></li>
|
|
</ul>
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="ft">
|
|
<hr />
|
|
Copyright © 2008 Yahoo! Inc. All rights reserved.
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|