<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html xmlns:yui="http://yuilibrary.com/rdf/1.0/yui.rdf#">
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<title>API: console console.js (YUI Library)</title>
<link rel="stylesheet" type="text/css" href="assets/reset-fonts-grids-min.css" />
<link rel="stylesheet" type="text/css" href="assets/api.css" />
<script type="text/javascript" src="assets/api-js"></script>
<script type="text/javascript" src="assets/ac-js"></script>
</head>
<body id="yahoo-com">
<div id="doc3" class="yui-t2">
<div id="hd">
<h1><a href="http://developer.yahoo.com/yui/" title="Yahoo! UI Library">Yahoo! UI Library</a></h1>
<h3>console <span class="subtitle">3.0.0</span></h3>
<a href="./index.html" title="Yahoo! UI Library">Yahoo! UI Library</a>
> <a href="./module_console.html" title="console">console</a>
> console.js (source view)
<form onsubmit="return false">
<div id="propertysearch">
Search: <input autocomplete="off" id="searchinput" />
<div id="searchresults">
</div>
</div>
</form>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<form action="#" name="yui-classopts-form" method="get" id="yui-classopts-form">
<fieldset>
<legend>Filters</legend>
<span class="classopts"><input type="checkbox" name="show_private" id="show_private" /> <label for="show_private">Show Private</label></span>
<span class="classopts"><input type="checkbox" name="show_protected" id="show_protected" /> <label for="show_protected">Show Protected</label></span>
<span class="classopts"><input type="checkbox" name="show_deprecated" id="show_deprecated" /> <label for="show_deprecated">Show Deprecated</label></span>
</fieldset>
</form>
<div id="srcout">
<style>
#doc3 .classopts { display:none; }
</style>
<div class="highlight" ><pre><span class="c">/**</span>
<span class="c"> * Console creates a visualization for messages logged through calls to a YUI</span>
<span class="c"> * instance's <code>Y.log( message, category, source )</code> method. The</span>
<span class="c"> * debug versions of YUI modules will include logging statements to offer some</span>
<span class="c"> * insight into the steps executed during that module's operation. Including</span>
<span class="c"> * log statements in your code will cause those messages to also appear in the</span>
<span class="c"> * Console. Use Console to aid in developing your page or application.</span>
<span class="c"> *</span>
<span class="c"> * Entry categories &quot;info&quot;, &quot;warn&quot;, and &quot;error&quot;</span>
<span class="c"> * are also referred to as the log level, and entries are filtered against the</span>
<span class="c"> * configured logLevel.</span>
<span class="c"> *</span>
<span class="c"> * @module console</span>
<span class="c"> * @class Console</span>
<span class="c"> * @extends Widget</span>
<span class="c"> * @param conf {Object} Configuration object (see Configuration attributes)</span>
<span class="c"> * @constructor</span>
<span class="c"> */</span>
<span class="k">function</span> <span class="nx">Console</span><span class="o">()</span> <span class="o">{</span>
<span class="nx">Console</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">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span><span class="nx">arguments</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">var</span> <span class="nx">getCN</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">ClassNameManager</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">,</span>
<span class="nx">CHECKED</span> <span class="o">=</span> <span class="s1">'checked'</span><span class="o">,</span>
<span class="nx">CLEAR</span> <span class="o">=</span> <span class="s1">'clear'</span><span class="o">,</span>
<span class="nx">CLICK</span> <span class="o">=</span> <span class="s1">'click'</span><span class="o">,</span>
<span class="nx">COLLAPSED</span> <span class="o">=</span> <span class="s1">'collapsed'</span><span class="o">,</span>
<span class="nx">CONSOLE</span> <span class="o">=</span> <span class="s1">'console'</span><span class="o">,</span>
<span class="nx">CONTENT_BOX</span> <span class="o">=</span> <span class="s1">'contentBox'</span><span class="o">,</span>
<span class="nx">DISABLED</span> <span class="o">=</span> <span class="s1">'disabled'</span><span class="o">,</span>
<span class="nx">ENTRY</span> <span class="o">=</span> <span class="s1">'entry'</span><span class="o">,</span>
<span class="nx">ERROR</span> <span class="o">=</span> <span class="s1">'error'</span><span class="o">,</span>
<span class="nx">HEIGHT</span> <span class="o">=</span> <span class="s1">'height'</span><span class="o">,</span>
<span class="nx">INFO</span> <span class="o">=</span> <span class="s1">'info'</span><span class="o">,</span>
<span class="nx">INNER_HTML</span> <span class="o">=</span> <span class="s1">'innerHTML'</span><span class="o">,</span>
<span class="nx">LAST_TIME</span> <span class="o">=</span> <span class="s1">'lastTime'</span><span class="o">,</span>
<span class="nx">PAUSE</span> <span class="o">=</span> <span class="s1">'pause'</span><span class="o">,</span>
<span class="nx">PAUSED</span> <span class="o">=</span> <span class="s1">'paused'</span><span class="o">,</span>
<span class="nx">RESET</span> <span class="o">=</span> <span class="s1">'reset'</span><span class="o">,</span>
<span class="nx">START_TIME</span> <span class="o">=</span> <span class="s1">'startTime'</span><span class="o">,</span>
<span class="nx">TITLE</span> <span class="o">=</span> <span class="s1">'title'</span><span class="o">,</span>
<span class="nx">WARN</span> <span class="o">=</span> <span class="s1">'warn'</span><span class="o">,</span>
<span class="nx">DOT</span> <span class="o">=</span> <span class="s1">'.'</span><span class="o">,</span>
<span class="nx">C_BUTTON</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'button'</span><span class="o">),</span>
<span class="nx">C_CHECKBOX</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'checkbox'</span><span class="o">),</span>
<span class="nx">C_CLEAR</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">CLEAR</span><span class="o">),</span>
<span class="nx">C_COLLAPSE</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'collapse'</span><span class="o">),</span>
<span class="nx">C_COLLAPSED</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">COLLAPSED</span><span class="o">),</span>
<span class="nx">C_CONSOLE_CONTROLS</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'controls'</span><span class="o">),</span>
<span class="nx">C_CONSOLE_HD</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'hd'</span><span class="o">),</span>
<span class="nx">C_CONSOLE_BD</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'bd'</span><span class="o">),</span>
<span class="nx">C_CONSOLE_FT</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="s1">'ft'</span><span class="o">),</span>
<span class="nx">C_CONSOLE_TITLE</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">TITLE</span><span class="o">),</span>
<span class="nx">C_ENTRY</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">ENTRY</span><span class="o">),</span>
<span class="nx">C_ENTRY_CAT</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">ENTRY</span><span class="o">,</span><span class="s1">'cat'</span><span class="o">),</span>
<span class="nx">C_ENTRY_CONTENT</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">ENTRY</span><span class="o">,</span><span class="s1">'content'</span><span class="o">),</span>
<span class="nx">C_ENTRY_META</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">ENTRY</span><span class="o">,</span><span class="s1">'meta'</span><span class="o">),</span>
<span class="nx">C_ENTRY_SRC</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">ENTRY</span><span class="o">,</span><span class="s1">'src'</span><span class="o">),</span>
<span class="nx">C_ENTRY_TIME</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">ENTRY</span><span class="o">,</span><span class="s1">'time'</span><span class="o">),</span>
<span class="nx">C_PAUSE</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">PAUSE</span><span class="o">),</span>
<span class="nx">C_PAUSE_LABEL</span> <span class="o">=</span> <span class="nx">getCN</span><span class="o">(</span><span class="nx">CONSOLE</span><span class="o">,</span><span class="nx">PAUSE</span><span class="o">,</span><span class="s1">'label'</span><span class="o">),</span>
<span class="nx">RE_INLINE_SOURCE</span> <span class="o">=</span> <span class="sr">/^(\S+)\s/</span><span class="o">,</span>
<span class="nx">RE_AMP</span> <span class="o">=</span> <span class="sr">/&/g</span><span class="o">,</span>
<span class="nx">RE_GT</span> <span class="o">=</span> <span class="sr">/>/g</span><span class="o">,</span>
<span class="nx">RE_LT</span> <span class="o">=</span> <span class="sr">/</g</span><span class="o">,</span>
<span class="nx">ESC_AMP</span> <span class="o">=</span> <span class="s1">'&#38;'</span><span class="o">,</span>
<span class="nx">ESC_GT</span> <span class="o">=</span> <span class="s1">'&#62;'</span><span class="o">,</span>
<span class="nx">ESC_LT</span> <span class="o">=</span> <span class="s1">'&#60;'</span><span class="o">,</span>
<span class="nx">ENTRY_TEMPLATE_STR</span> <span class="o">=</span>
<span class="s1">'<div class="{entry_class} {cat_class} {src_class}">'</span><span class="o">+</span>
<span class="s1">'<p class="{entry_meta_class}">'</span><span class="o">+</span>
<span class="s1">'<span class="{entry_src_class}">'</span><span class="o">+</span>
<span class="s1">'{sourceAndDetail}'</span><span class="o">+</span>
<span class="s1">'</span>'</span><span class="o">+</span>
<span class="s1">'<span class="{entry_cat_class}">'</span><span class="o">+</span>
<span class="s1">'{category}</span>'</span><span class="o">+</span>
<span class="s1">'<span class="{entry_time_class}">'</span><span class="o">+</span>
<span class="s1">' {totalTime}ms (+{elapsedTime}) {localTime}'</span><span class="o">+</span>
<span class="s1">'</span>'</span><span class="o">+</span>
<span class="s1">'</p>'</span><span class="o">+</span>
<span class="s1">'<pre class="{entry_content_class}">{message}</pre>'</span><span class="o">+</span>
<span class="s1">'</div>'</span><span class="o">,</span>
<span class="nx">L</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">,</span>
<span class="nx">create</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Node</span><span class="o">.</span><span class="nx">create</span><span class="o">,</span>
<span class="nx">isNumber</span> <span class="o">=</span> <span class="nx">L</span><span class="o">.</span><span class="nx">isNumber</span><span class="o">,</span>
<span class="nx">isString</span> <span class="o">=</span> <span class="nx">L</span><span class="o">.</span><span class="nx">isString</span><span class="o">,</span>
<span class="nx">merge</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">merge</span><span class="o">,</span>
<span class="nx">substitute</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">substitute</span><span class="o">;</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">mix</span><span class="o">(</span><span class="nx">Console</span><span class="o">,</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * The identity of the widget.</span>
<span class="c"> *</span>
<span class="c"> * @property Console.NAME</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">NAME</span> <span class="o">:</span> <span class="nx">CONSOLE</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Static identifier for logLevel configuration setting to allow all</span>
<span class="c"> * incoming messages to generate Console entries.</span>
<span class="c"> *</span>
<span class="c"> * @property Console.LOG_LEVEL_INFO</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">LOG_LEVEL_INFO</span> <span class="o">:</span> <span class="nx">INFO</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Static identifier for logLevel configuration setting to allow only</span>
<span class="c"> * incoming messages of logLevel &quot;warn&quot; or &quot;error&quot;</span>
<span class="c"> * to generate Console entries.</span>
<span class="c"> *</span>
<span class="c"> * @property Console.LOG_LEVEL_WARN</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">LOG_LEVEL_WARN</span> <span class="o">:</span> <span class="nx">WARN</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Static identifier for logLevel configuration setting to allow only</span>
<span class="c"> * incoming messages of logLevel &quot;error&quot; to generate</span>
<span class="c"> * Console entries.</span>
<span class="c"> *</span>
<span class="c"> * @property Console.LOG_LEVEL_ERROR</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">LOG_LEVEL_ERROR</span> <span class="o">:</span> <span class="nx">ERROR</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Map (object) of classNames used to populate the placeholders in the</span>
<span class="c"> * Console.ENTRY_TEMPLATE markup when rendering a new Console entry.</span>
<span class="c"> *</span>
<span class="c"> * <p>By default, the keys contained in the object are:</p></span>
<span class="c"> * <ul></span>
<span class="c"> * <li>entry_class</li></span>
<span class="c"> * <li>entry_meta_class</li></span>
<span class="c"> * <li>entry_cat_class</li></span>
<span class="c"> * <li>entry_src_class</li></span>
<span class="c"> * <li>entry_time_class</li></span>
<span class="c"> * <li>entry_content_class</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @property Console.ENTRY_CLASSES</span>
<span class="c"> * @type Object</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">ENTRY_CLASSES</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">entry_class</span> <span class="o">:</span> <span class="nx">C_ENTRY</span><span class="o">,</span>
<span class="nx">entry_meta_class</span> <span class="o">:</span> <span class="nx">C_ENTRY_META</span><span class="o">,</span>
<span class="nx">entry_cat_class</span> <span class="o">:</span> <span class="nx">C_ENTRY_CAT</span><span class="o">,</span>
<span class="nx">entry_src_class</span> <span class="o">:</span> <span class="nx">C_ENTRY_SRC</span><span class="o">,</span>
<span class="nx">entry_time_class</span> <span class="o">:</span> <span class="nx">C_ENTRY_TIME</span><span class="o">,</span>
<span class="nx">entry_content_class</span> <span class="o">:</span> <span class="nx">C_ENTRY_CONTENT</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Map (object) of classNames used to populate the placeholders in the</span>
<span class="c"> * Console.HEADER_TEMPLATE, Console.BODY_TEMPLATE, and</span>
<span class="c"> * Console.FOOTER_TEMPLATE markup when rendering the Console UI.</span>
<span class="c"> *</span>
<span class="c"> * <p>By default, the keys contained in the object are:</p></span>
<span class="c"> * <ul></span>
<span class="c"> * <li>console_hd_class</li></span>
<span class="c"> * <li>console_bd_class</li></span>
<span class="c"> * <li>console_ft_class</li></span>
<span class="c"> * <li>console_controls_class</li></span>
<span class="c"> * <li>console_checkbox_class</li></span>
<span class="c"> * <li>console_pause_class</li></span>
<span class="c"> * <li>console_pause_label_class</li></span>
<span class="c"> * <li>console_button_class</li></span>
<span class="c"> * <li>console_clear_class</li></span>
<span class="c"> * <li>console_collapse_class</li></span>
<span class="c"> * <li>console_title_class</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @property Console.CHROME_CLASSES</span>
<span class="c"> * @type Object</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">CHROME_CLASSES</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">console_hd_class</span> <span class="o">:</span> <span class="nx">C_CONSOLE_HD</span><span class="o">,</span>
<span class="nx">console_bd_class</span> <span class="o">:</span> <span class="nx">C_CONSOLE_BD</span><span class="o">,</span>
<span class="nx">console_ft_class</span> <span class="o">:</span> <span class="nx">C_CONSOLE_FT</span><span class="o">,</span>
<span class="nx">console_controls_class</span> <span class="o">:</span> <span class="nx">C_CONSOLE_CONTROLS</span><span class="o">,</span>
<span class="nx">console_checkbox_class</span> <span class="o">:</span> <span class="nx">C_CHECKBOX</span><span class="o">,</span>
<span class="nx">console_pause_class</span> <span class="o">:</span> <span class="nx">C_PAUSE</span><span class="o">,</span>
<span class="nx">console_pause_label_class</span> <span class="o">:</span> <span class="nx">C_PAUSE_LABEL</span><span class="o">,</span>
<span class="nx">console_button_class</span> <span class="o">:</span> <span class="nx">C_BUTTON</span><span class="o">,</span>
<span class="nx">console_clear_class</span> <span class="o">:</span> <span class="nx">C_CLEAR</span><span class="o">,</span>
<span class="nx">console_collapse_class</span> <span class="o">:</span> <span class="nx">C_COLLAPSE</span><span class="o">,</span>
<span class="nx">console_title_class</span> <span class="o">:</span> <span class="nx">C_CONSOLE_TITLE</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Markup template used to generate the DOM structure for the header</span>
<span class="c"> * section of the Console when it is rendered. The template includes</span>
<span class="c"> * these {placeholder}s:</span>
<span class="c"> *</span>
<span class="c"> * <ul></span>
<span class="c"> * <li>console_button_class - contributed by Console.CHROME_CLASSES</li></span>
<span class="c"> * <li>console_collapse_class - contributed by Console.CHROME_CLASSES</li></span>
<span class="c"> * <li>console_hd_class - contributed by Console.CHROME_CLASSES</li></span>
<span class="c"> * <li>console_title_class - contributed by Console.CHROME_CLASSES</li></span>
<span class="c"> * <li>str_collapse - pulled from attribute strings.collapse</li></span>
<span class="c"> * <li>str_title - pulled from attribute strings.title</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @property Console.HEADER_TEMPLATE</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">HEADER_TEMPLATE</span> <span class="o">:</span>
<span class="s1">'<div class="{console_hd_class}">'</span><span class="o">+</span>
<span class="s1">'<h4 class="{console_title_class}">{str_title}</h4>'</span><span class="o">+</span>
<span class="s1">'<button type="button" class="'</span><span class="o">+</span>
<span class="s1">'{console_button_class} {console_collapse_class}">{str_collapse}'</span><span class="o">+</span>
<span class="s1">'</button>'</span><span class="o">+</span>
<span class="s1">'</div>'</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Markup template used to generate the DOM structure for the Console body</span>
<span class="c"> * (where the messages are inserted) when it is rendered. The template</span>
<span class="c"> * includes only the {placeholder} &quot;console_bd_class&quot;, which is</span>
<span class="c"> * constributed by Console.CHROME_CLASSES.</span>
<span class="c"> *</span>
<span class="c"> * @property Console.BODY_TEMPLATE</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">BODY_TEMPLATE</span> <span class="o">:</span> <span class="s1">'<div class="{console_bd_class}"></div>'</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Markup template used to generate the DOM structure for the footer</span>
<span class="c"> * section of the Console when it is rendered. The template includes</span>
<span class="c"> * many of the {placeholder}s from Console.CHROME_CLASSES as well as:</span>
<span class="c"> *</span>
<span class="c"> * <ul></span>
<span class="c"> * <li>id_guid - generated unique id, relates the label and checkbox</li></span>
<span class="c"> * <li>str_pause - pulled from attribute strings.pause</li></span>
<span class="c"> * <li>str_clear - pulled from attribute strings.clear</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @property Console.FOOTER_TEMPLATE</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">FOOTER_TEMPLATE</span> <span class="o">:</span>
<span class="s1">'<div class="{console_ft_class}">'</span><span class="o">+</span>
<span class="s1">'<div class="{console_controls_class}">'</span><span class="o">+</span>
<span class="s1">'<label for="{id_guid}" class="{console_pause_label_class}">'</span><span class="o">+</span>
<span class="s1">'<input type="checkbox" class="{console_checkbox_class} '</span><span class="o">+</span>
<span class="s1">'{console_pause_class}" value="1" id="{id_guid}"> '</span><span class="o">+</span>
<span class="s1">'{str_pause}</label>'</span> <span class="o">+</span>
<span class="s1">'<button type="button" class="'</span><span class="o">+</span>
<span class="s1">'{console_button_class} {console_clear_class}">{str_clear}'</span><span class="o">+</span>
<span class="s1">'</button>'</span><span class="o">+</span>
<span class="s1">'</div>'</span><span class="o">+</span>
<span class="s1">'</div>'</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Default markup template used to create the DOM structure for Console</span>
<span class="c"> * entries. The markup contains {placeholder}s for content and classes</span>
<span class="c"> * that are replaced via Y.substitute. The default template contains</span>
<span class="c"> * the {placeholder}s identified in Console.ENTRY_CLASSES as well as the</span>
<span class="c"> * following placeholders that will be populated by the log entry data:</span>
<span class="c"> *</span>
<span class="c"> * <ul></span>
<span class="c"> * <li>cat_class</li></span>
<span class="c"> * <li>src_class</li></span>
<span class="c"> * <li>totalTime</li></span>
<span class="c"> * <li>elapsedTime</li></span>
<span class="c"> * <li>localTime</li></span>
<span class="c"> * <li>sourceAndDetail</li></span>
<span class="c"> * <li>message</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @property Console.ENTRY_TEMPLATE</span>
<span class="c"> * @type String</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">ENTRY_TEMPLATE</span> <span class="o">:</span> <span class="nx">ENTRY_TEMPLATE_STR</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Static property used to define the default attribute configuration of</span>
<span class="c"> * the Widget.</span>
<span class="c"> *</span>
<span class="c"> * @property Console.ATTRS</span>
<span class="c"> * @Type Object</span>
<span class="c"> * @static</span>
<span class="c"> */</span>
<span class="nx">ATTRS</span> <span class="o">:</span> <span class="o">{</span>
<span class="c">/**</span>
<span class="c"> * Name of the custom event that will communicate log messages.</span>
<span class="c"> *</span>
<span class="c"> * @attribute logEvent</span>
<span class="c"> * @type String</span>
<span class="c"> * @default "yui:log"</span>
<span class="c"> */</span>
<span class="nx">logEvent</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="s1">'yui:log'</span><span class="o">,</span>
<span class="nx">writeOnce</span> <span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isString</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Object that will emit the log events. By default the YUI instance.</span>
<span class="c"> * To have a single Console capture events from all YUI instances, set</span>
<span class="c"> * this to the Y.Global object.</span>
<span class="c"> *</span>
<span class="c"> * @attribute logSource</span>
<span class="c"> * @type EventTarget</span>
<span class="c"> * @default Y</span>
<span class="c"> */</span>
<span class="nx">logSource</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="nx">Y</span><span class="o">,</span>
<span class="nx">writeOnce</span> <span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">v</span> <span class="o">&&</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Lang</span><span class="o">.</span><span class="nx">isFunction</span><span class="o">(</span><span class="nx">v</span><span class="o">.</span><span class="nx">on</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Collection of strings used to label elements in the Console UI.</span>
<span class="c"> * Default collection contains the following name:value pairs:</span>
<span class="c"> *</span>
<span class="c"> * <ul></span>
<span class="c"> * <li>title : &quot;Log Console&quot;</li></span>
<span class="c"> * <li>pause : &quot;Pause&quot;</li></span>
<span class="c"> * <li>clear : &quot;Clear&quot;</li></span>
<span class="c"> * <li>collapse : &quot;Collapse&quot;</li></span>
<span class="c"> * <li>expand : &quot;Expand&quot;</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @attribute strings</span>
<span class="c"> * @type Object</span>
<span class="c"> */</span>
<span class="nx">strings</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">title</span> <span class="o">:</span> <span class="s2">"Log Console"</span><span class="o">,</span>
<span class="nx">pause</span> <span class="o">:</span> <span class="s2">"Pause"</span><span class="o">,</span>
<span class="nx">clear</span> <span class="o">:</span> <span class="s2">"Clear"</span><span class="o">,</span>
<span class="nx">collapse</span> <span class="o">:</span> <span class="s2">"Collapse"</span><span class="o">,</span>
<span class="nx">expand</span> <span class="o">:</span> <span class="s2">"Expand"</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Boolean to pause the outputting of new messages to the console.</span>
<span class="c"> * When paused, messages will accumulate in the buffer.</span>
<span class="c"> *</span>
<span class="c"> * @attribute paused</span>
<span class="c"> * @type boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="nx">paused</span> <span class="o">:</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">L</span><span class="o">.</span><span class="nx">isBoolean</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * If a category is not specified in the Y.log(..) statement, this</span>
<span class="c"> * category will be used. Categories &quot;info&quot;,</span>
<span class="c"> * &quot;warn&quot;, and &quot;error&quot; are also called log level.</span>
<span class="c"> *</span>
<span class="c"> * @attribute defaultCategory</span>
<span class="c"> * @type String</span>
<span class="c"> * @default "info"</span>
<span class="c"> */</span>
<span class="nx">defaultCategory</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="nx">INFO</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isString</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * If a source is not specified in the Y.log(..) statement, this</span>
<span class="c"> * source will be used.</span>
<span class="c"> *</span>
<span class="c"> * @attribute defaultSource</span>
<span class="c"> * @type String</span>
<span class="c"> * @default "global"</span>
<span class="c"> */</span>
<span class="nx">defaultSource</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="s1">'global'</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isString</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Markup template used to create the DOM structure for Console entries.</span>
<span class="c"> *</span>
<span class="c"> * @attribute entryTemplate</span>
<span class="c"> * @type String</span>
<span class="c"> * @default Console.ENTRY_TEMPLATE</span>
<span class="c"> */</span>
<span class="nx">entryTemplate</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="nx">ENTRY_TEMPLATE_STR</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isString</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Minimum entry log level to render into the Console. The initial</span>
<span class="c"> * logLevel value for all Console instances defaults from the</span>
<span class="c"> * Y.config.logLevel YUI configuration, or Console.LOG_LEVEL_INFO if</span>
<span class="c"> * that configuration is not set.</span>
<span class="c"> *</span>
<span class="c"> * Possible values are &quot;info&quot;, &quot;warn&quot;,</span>
<span class="c"> * &quot;error&quot; (case insensitive), or their corresponding statics</span>
<span class="c"> * Console.LOG_LEVEL_INFO and so on.</span>
<span class="c"> *</span>
<span class="c"> * @attribute logLevel</span>
<span class="c"> * @type String</span>
<span class="c"> * @default Y.config.logLevel or Console.LOG_LEVEL_INFO</span>
<span class="c"> */</span>
<span class="nx">logLevel</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">logLevel</span> <span class="o">||</span> <span class="nx">INFO</span><span class="o">,</span>
<span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_setLogLevel</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Millisecond timeout between iterations of the print loop, moving</span>
<span class="c"> * entries from the buffer to the UI.</span>
<span class="c"> *</span>
<span class="c"> * @attribute printTimeout</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 100</span>
<span class="c"> */</span>
<span class="nx">printTimeout</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="m">100</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isNumber</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Maximum number of entries printed in each iteration of the print</span>
<span class="c"> * loop. This is used to prevent excessive logging locking the page UI.</span>
<span class="c"> *</span>
<span class="c"> * @attribute printLimit</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 50</span>
<span class="c"> */</span>
<span class="nx">printLimit</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="m">50</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isNumber</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Maximum number of Console entries allowed in the Console body at one</span>
<span class="c"> * time. This is used to keep acquired messages from exploding the</span>
<span class="c"> * DOM tree and impacting page performance.</span>
<span class="c"> *</span>
<span class="c"> * @attribute consoleLimit</span>
<span class="c"> * @type Number</span>
<span class="c"> * @default 300</span>
<span class="c"> */</span>
<span class="nx">consoleLimit</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="m">300</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="nx">isNumber</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * New entries should display at the top of the Console or the bottom?</span>
<span class="c"> *</span>
<span class="c"> * @attribute newestOnTop</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default true</span>
<span class="c"> */</span>
<span class="nx">newestOnTop</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="kc">true</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * When new entries are added to the Console UI, should they be</span>
<span class="c"> * scrolled into view?</span>
<span class="c"> *</span>
<span class="c"> * @attribute scrollIntoView</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default true</span>
<span class="c"> */</span>
<span class="nx">scrollIntoView</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="kc">true</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The baseline time for this Console instance, used to measure elapsed</span>
<span class="c"> * time from the moment the console module is <code>use</code>d to the</span>
<span class="c"> * moment each new entry is logged (not rendered).</span>
<span class="c"> *</span>
<span class="c"> * This value is reset by the instance method myConsole.reset().</span>
<span class="c"> *</span>
<span class="c"> * @attribute startTime</span>
<span class="c"> * @type Date</span>
<span class="c"> * @default The moment the console module is <code>use</code>d</span>
<span class="c"> */</span>
<span class="nx">startTime</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="k">new</span> <span class="nb">Date</span><span class="o">()</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * The precise time the last entry was logged. Used to measure elapsed</span>
<span class="c"> * time between log messages.</span>
<span class="c"> *</span>
<span class="c"> * @attribute lastTime</span>
<span class="c"> * @type Date</span>
<span class="c"> * @default The moment the console module is <code>use</code>d</span>
<span class="c"> */</span>
<span class="nx">lastTime</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="k">new</span> <span class="nb">Date</span><span class="o">(),</span>
<span class="nx">readOnly</span><span class="o">:</span> <span class="kc">true</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Controls the collapsed state of the Console</span>
<span class="c"> *</span>
<span class="c"> * @attribute collapsed</span>
<span class="c"> * @type Boolean</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="nx">collapsed</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="kc">false</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * String with units, or number, representing the height of the Console,</span>
<span class="c"> * inclusive of header and footer. If a number is provided, the default</span>
<span class="c"> * unit, defined by Widget's DEF_UNIT, property is used.</span>
<span class="c"> *</span>
<span class="c"> * @attribute height</span>
<span class="c"> * @default "300px"</span>
<span class="c"> * @type {String | Number}</span>
<span class="c"> */</span>
<span class="nx">height</span><span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span><span class="o">:</span> <span class="s2">"300px"</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * String with units, or number, representing the width of the Console.</span>
<span class="c"> * If a number is provided, the default unit, defined by Widget's</span>
<span class="c"> * DEF_UNIT, property is used.</span>
<span class="c"> *</span>
<span class="c"> * @attribute width</span>
<span class="c"> * @default "300px"</span>
<span class="c"> * @type {String | Number}</span>
<span class="c"> */</span>
<span class="nx">width</span><span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span><span class="o">:</span> <span class="s2">"300px"</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Pass through to the YUI instance useBrowserConsole configuration.</span>
<span class="c"> * By default this is set to false, which will disable logging to the</span>
<span class="c"> * browser console when a Console instance is created. If the</span>
<span class="c"> * logSource is not a YUI instance, this has no effect.</span>
<span class="c"> * </span>
<span class="c"> * @attribute useBrowserConsole</span>
<span class="c"> * @type {Boolean}</span>
<span class="c"> * @default false</span>
<span class="c"> */</span>
<span class="nx">useBrowserConsole</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">lazyAdd</span><span class="o">:</span> <span class="kc">false</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">getter</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">logSource</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'logSource'</span><span class="o">);</span>
<span class="k">return</span> <span class="nx">logSource</span> <span class="k">instanceof</span> <span class="nx">YUI</span> <span class="o">?</span>
<span class="nx">logSource</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">useBrowserConsole</span> <span class="o">:</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">},</span>
<span class="nx">setter</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">logSource</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'logSource'</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">logSource</span> <span class="k">instanceof</span> <span class="nx">YUI</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">v</span> <span class="o">=</span> <span class="o">!!</span><span class="nx">v</span><span class="o">;</span>
<span class="nx">logSource</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">useBrowserConsole</span> <span class="o">=</span> <span class="o">!!</span><span class="nx">v</span><span class="o">;</span>
<span class="k">return</span> <span class="nx">v</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="nx">Y</span><span class="o">.</span><span class="nx">Attribute</span><span class="o">.</span><span class="nx">INVALID_VALUE</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Allows the Console to flow in the document. Available values are</span>
<span class="c"> * 'inline', 'block', and 'separate' (the default). </span>
<span class="c"> *</span>
<span class="c"> * @attribute style</span>
<span class="c"> * @type {String}</span>
<span class="c"> * @default 'separate'</span>
<span class="c"> */</span>
<span class="nx">style</span> <span class="o">:</span> <span class="o">{</span>
<span class="nx">value</span> <span class="o">:</span> <span class="s1">'separate'</span><span class="o">,</span>
<span class="nx">writeOnce</span> <span class="o">:</span> <span class="kc">true</span><span class="o">,</span>
<span class="nx">validator</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">_validateStyle</span><span class="o">(</span><span class="nx">v</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">});</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">extend</span><span class="o">(</span><span class="nx">Console</span><span class="o">,</span><span class="nx">Y</span><span class="o">.</span><span class="nx">Widget</span><span class="o">,{</span>
<span class="c">/**</span>
<span class="c"> * Category to prefix all event subscriptions to allow for ease of detach</span>
<span class="c"> * during destroy.</span>
<span class="c"> *</span>
<span class="c"> * @property _evtCat</span>
<span class="c"> * @type string</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_evtCat</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Reference to the Node instance containing the header contents.</span>
<span class="c"> *</span>
<span class="c"> * @property _head</span>
<span class="c"> * @type Node</span>
<span class="c"> * @default null</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_head</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Reference to the Node instance that will house the console messages.</span>
<span class="c"> *</span>
<span class="c"> * @property _body</span>
<span class="c"> * @type Node</span>
<span class="c"> * @default null</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_body</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Reference to the Node instance containing the footer contents.</span>
<span class="c"> *</span>
<span class="c"> * @property _foot</span>
<span class="c"> * @type Node</span>
<span class="c"> * @default null</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_foot</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Holds the object API returned from <code>Y.later</code> for the print</span>
<span class="c"> * loop interval.</span>
<span class="c"> *</span>
<span class="c"> * @property _printLoop</span>
<span class="c"> * @type Object</span>
<span class="c"> * @default null</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_printLoop</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Array of normalized message objects awaiting printing.</span>
<span class="c"> *</span>
<span class="c"> * @property buffer</span>
<span class="c"> * @type Array</span>
<span class="c"> * @default null</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">buffer</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="c">/**</span>
<span class="c"> * Wrapper for <code>Y.log</code>.</span>
<span class="c"> *</span>
<span class="c"> * @method log</span>
<span class="c"> * @param arg* {MIXED} (all arguments passed through to <code>Y.log</code>)</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">log</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">log</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="nx">Y</span><span class="o">,</span><span class="nx">arguments</span><span class="o">);</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Clear the console of messages and flush the buffer of pending messages.</span>
<span class="c"> *</span>
<span class="c"> * @method clearConsole</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">clearConsole</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="c">// TODO: clear event listeners from console contents</span>
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">_body</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span><span class="s1">''</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_cancelPrintLoop</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">buffer</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Clears the console and resets internal timers.</span>
<span class="c"> *</span>
<span class="c"> * @method reset</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">reset</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">RESET</span><span class="o">);</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Collapses the body and footer.</span>
<span class="c"> *</span>
<span class="c"> * @method collapse</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">collapse</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">COLLAPSED</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Expands the body and footer if collapsed.</span>
<span class="c"> *</span>
<span class="c"> * @method expand</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">expand</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">COLLAPSED</span><span class="o">,</span> <span class="kc">false</span><span class="o">);</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Outputs buffered messages to the console UI. This is typically called</span>
<span class="c"> * from a scheduled interval until the buffer is empty (referred to as the</span>
<span class="c"> * print loop). The number of buffered messages output to the Console is</span>
<span class="c"> * limited to the number provided as an argument. If no limit is passed,</span>
<span class="c"> * all buffered messages are rendered.</span>
<span class="c"> * </span>
<span class="c"> * @method printBuffer</span>
<span class="c"> * @param limit {Number} (optional) max number of buffered entries to write</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">printBuffer</span><span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">limit</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">messages</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">buffer</span><span class="o">,</span>
<span class="nx">debug</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span><span class="o">,</span>
<span class="nx">entries</span> <span class="o">=</span> <span class="o">[],</span>
<span class="nx">consoleLimit</span><span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'consoleLimit'</span><span class="o">),</span>
<span class="nx">newestOnTop</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'newestOnTop'</span><span class="o">),</span>
<span class="nx">anchor</span> <span class="o">=</span> <span class="nx">newestOnTop</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="nx">get</span><span class="o">(</span><span class="s1">'firstChild'</span><span class="o">)</span> <span class="o">:</span> <span class="kc">null</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">messages</span><span class="o">.</span><span class="nx">length</span> <span class="o">></span> <span class="nx">consoleLimit</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">messages</span><span class="o">.</span><span class="nx">splice</span><span class="o">(</span><span class="m">0</span><span class="o">,</span> <span class="nx">messages</span><span class="o">.</span><span class="nx">length</span> <span class="o">-</span> <span class="nx">consoleLimit</span><span class="o">);</span>
<span class="o">}</span>
<span class="nx">limit</span> <span class="o">=</span> <span class="nb">Math</span><span class="o">.</span><span class="nx">min</span><span class="o">(</span><span class="nx">messages</span><span class="o">.</span><span class="nx">length</span><span class="o">,</span> <span class="o">(</span><span class="nx">limit</span> <span class="o">||</span> <span class="nx">messages</span><span class="o">.</span><span class="nx">length</span><span class="o">));</span>
<span class="c">// turn off logging system</span>
<span class="c"></span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">PAUSED</span><span class="o">)</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'rendered'</span><span class="o">))</span> <span class="o">{</span>
<span class="k">for</span> <span class="o">(</span><span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span> <span class="nx">i</span> <span class="o"><</span> <span class="nx">limit</span> <span class="o">&&</span> <span class="nx">messages</span><span class="o">.</span><span class="nx">length</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">entries</span><span class="o">[</span><span class="nx">i</span><span class="o">]</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_createEntryHTML</span><span class="o">(</span><span class="nx">messages</span><span class="o">.</span><span class="nx">shift</span><span class="o">());</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">messages</span><span class="o">.</span><span class="nx">length</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_cancelPrintLoop</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">entries</span><span class="o">.</span><span class="nx">length</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">newestOnTop</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">entries</span><span class="o">.</span><span class="nx">reverse</span><span class="o">();</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="nx">insertBefore</span><span class="o">(</span><span class="nx">create</span><span class="o">(</span><span class="nx">entries</span><span class="o">.</span><span class="nx">join</span><span class="o">(</span><span class="s1">''</span><span class="o">)),</span> <span class="nx">anchor</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">get</span><span class="o">(</span><span class="s1">'scrollIntoView'</span><span class="o">))</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">scrollToLatest</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_trimOldEntries</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="c">// restore logging system</span>
<span class="c"></span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="nx">debug</span><span class="o">;</span>
<span class="k">return</span> <span class="k">this</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Constructor code. Set up the buffer and entry template, publish</span>
<span class="c"> * internal events, and subscribe to the configured logEvent.</span>
<span class="c"> * </span>
<span class="c"> * @method initializer</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">initializer</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">stamp</span><span class="o">(</span><span class="k">this</span><span class="o">)</span> <span class="o">+</span> <span class="s1">'|'</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">buffer</span> <span class="o">=</span> <span class="o">[];</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'logSource'</span><span class="o">).</span><span class="nx">on</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">+</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'logEvent'</span><span class="o">),</span><span class="nx">Y</span><span class="o">.</span><span class="nx">bind</span><span class="o">(</span><span class="s2">"_onLogEvent"</span><span class="o">,</span><span class="k">this</span><span class="o">));</span>
<span class="c">/**</span>
<span class="c"> * Transfers a received message to the print loop buffer. Default</span>
<span class="c"> * behavior defined in _defEntryFn.</span>
<span class="c"> *</span>
<span class="c"> * @event entry</span>
<span class="c"> * @param event {Event.Facade} An Event Facade object with the following attribute specific properties added:</span>
<span class="c"> * <dl></span>
<span class="c"> * <dt>message</dt></span>
<span class="c"> * <dd>The message data normalized into an object literal (see _normalizeMessage)</dd></span>
<span class="c"> * </dl></span>
<span class="c"> * @preventable _defEntryFn</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">ENTRY</span><span class="o">,</span> <span class="o">{</span> <span class="nx">defaultFn</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_defEntryFn</span> <span class="o">});</span>
<span class="c">/**</span>
<span class="c"> * Triggers the reset behavior via the default logic in _defResetFn.</span>
<span class="c"> *</span>
<span class="c"> * @event reset</span>
<span class="c"> * @param event {Event.Facade} Event Facade object</span>
<span class="c"> * @preventable _defResetFn</span>
<span class="c"> */</span>
<span class="k">this</span><span class="o">.</span><span class="nx">publish</span><span class="o">(</span><span class="nx">RESET</span><span class="o">,</span> <span class="o">{</span> <span class="nx">defaultFn</span><span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_defResetFn</span> <span class="o">});</span>
<span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="s1">'rendered'</span><span class="o">,</span> <span class="k">this</span><span class="o">.</span><span class="nx">_schedulePrint</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Tears down the instance, flushing event subscriptions and purging the UI.</span>
<span class="c"> *</span>
<span class="c"> * @method destructor</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">destructor</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">bb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'boundingBox'</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_cancelPrintLoop</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'logSource'</span><span class="o">).</span><span class="nx">detach</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">+</span> <span class="s1">'*'</span><span class="o">);</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">Event</span><span class="o">.</span><span class="nx">purgeElement</span><span class="o">(</span><span class="nx">bb</span><span class="o">,</span> <span class="kc">true</span><span class="o">);</span>
<span class="nx">bb</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">'innerHTML'</span><span class="o">,</span><span class="s1">''</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Generate the Console UI.</span>
<span class="c"> *</span>
<span class="c"> * @method renderUI</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">renderUI</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initHead</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initBody</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_initFoot</span><span class="o">();</span>
<span class="c">// Apply positioning to the bounding box if appropriate</span>
<span class="c"></span> <span class="k">var</span> <span class="nx">style</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'style'</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">style</span> <span class="o">!==</span> <span class="s1">'block'</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'boundingBox'</span><span class="o">).</span><span class="nx">addClass</span><span class="o">(</span><span class="s1">'yui-'</span><span class="o">+</span><span class="nx">style</span><span class="o">+</span><span class="s1">'-console'</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Sync the UI state to the current attribute state.</span>
<span class="c"> *</span>
<span class="c"> * @method syncUI</span>
<span class="c"> */</span>
<span class="nx">syncUI</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiUpdatePaused</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">PAUSED</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiUpdateCollapsed</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">COLLAPSED</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiSetHeight</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">));</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Set up event listeners to wire up the UI to the internal state.</span>
<span class="c"> *</span>
<span class="c"> * @method bindUI</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">bindUI</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">).</span><span class="nx">query</span><span class="o">(</span><span class="s1">'button.'</span><span class="o">+</span><span class="nx">C_COLLAPSE</span><span class="o">).</span>
<span class="nx">on</span><span class="o">(</span><span class="nx">CLICK</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">_onCollapseClick</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">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">).</span><span class="nx">query</span><span class="o">(</span><span class="s1">'input[type=checkbox].'</span><span class="o">+</span><span class="nx">C_PAUSE</span><span class="o">).</span>
<span class="nx">on</span><span class="o">(</span><span class="nx">CLICK</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">_onPauseClick</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">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">).</span><span class="nx">query</span><span class="o">(</span><span class="s1">'button.'</span><span class="o">+</span><span class="nx">C_CLEAR</span><span class="o">).</span>
<span class="nx">on</span><span class="o">(</span><span class="nx">CLICK</span><span class="o">,</span><span class="k">this</span><span class="o">.</span><span class="nx">_onClearClick</span><span class="o">,</span><span class="k">this</span><span class="o">);</span>
<span class="c">// Attribute changes</span>
<span class="c"></span> <span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">+</span> <span class="s1">'stringsChange'</span><span class="o">,</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_afterStringsChange</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">+</span> <span class="s1">'pausedChange'</span><span class="o">,</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_afterPausedChange</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">+</span> <span class="s1">'consoleLimitChange'</span><span class="o">,</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_afterConsoleLimitChange</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">after</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_evtCat</span> <span class="o">+</span> <span class="s1">'collapsedChange'</span><span class="o">,</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_afterCollapsedChange</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Create the DOM structure for the header elements.</span>
<span class="c"> *</span>
<span class="c"> * @method _initHead</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_initHead</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">cb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">),</span>
<span class="nx">info</span> <span class="o">=</span> <span class="nx">merge</span><span class="o">(</span><span class="nx">Console</span><span class="o">.</span><span class="nx">CHROME_CLASSES</span><span class="o">,</span> <span class="o">{</span>
<span class="nx">str_collapse</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'strings.collapse'</span><span class="o">),</span>
<span class="nx">str_title</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'strings.title'</span><span class="o">)</span>
<span class="o">});</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_head</span> <span class="o">=</span> <span class="nx">create</span><span class="o">(</span><span class="nx">substitute</span><span class="o">(</span><span class="nx">Console</span><span class="o">.</span><span class="nx">HEADER_TEMPLATE</span><span class="o">,</span><span class="nx">info</span><span class="o">));</span>
<span class="nx">cb</span><span class="o">.</span><span class="nx">insertBefore</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_head</span><span class="o">,</span><span class="nx">cb</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'firstChild'</span><span class="o">));</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Create the DOM structure for the console body&#8212;where messages are</span>
<span class="c"> * rendered.</span>
<span class="c"> *</span>
<span class="c"> * @method _initBody</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_initBody</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</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="nx">create</span><span class="o">(</span><span class="nx">substitute</span><span class="o">(</span>
<span class="nx">Console</span><span class="o">.</span><span class="nx">BODY_TEMPLATE</span><span class="o">,</span>
<span class="nx">Console</span><span class="o">.</span><span class="nx">CHROME_CLASSES</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">).</span><span class="nx">appendChild</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="o">},</span>
<span class="c">/**</span>
<span class="c"> * Create the DOM structure for the footer elements.</span>
<span class="c"> *</span>
<span class="c"> * @method _initFoot</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_initFoot</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">info</span> <span class="o">=</span> <span class="nx">merge</span><span class="o">(</span><span class="nx">Console</span><span class="o">.</span><span class="nx">CHROME_CLASSES</span><span class="o">,</span> <span class="o">{</span>
<span class="nx">id_guid</span> <span class="o">:</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">guid</span><span class="o">(),</span>
<span class="nx">str_pause</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'strings.pause'</span><span class="o">),</span>
<span class="nx">str_clear</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'strings.clear'</span><span class="o">)</span>
<span class="o">});</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_foot</span> <span class="o">=</span> <span class="nx">create</span><span class="o">(</span><span class="nx">substitute</span><span class="o">(</span><span class="nx">Console</span><span class="o">.</span><span class="nx">FOOTER_TEMPLATE</span><span class="o">,</span><span class="nx">info</span><span class="o">));</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">).</span><span class="nx">appendChild</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_foot</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Determine if incoming log messages are within the configured logLevel</span>
<span class="c"> * to be buffered for printing.</span>
<span class="c"> *</span>
<span class="c"> * @method _isInLogLevel</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_isInLogLevel</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">cat</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">cat</span><span class="o">,</span> <span class="nx">lvl</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'logLevel'</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">lvl</span> <span class="o">!==</span> <span class="nx">INFO</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cat</span> <span class="o">=</span> <span class="nx">cat</span> <span class="o">||</span> <span class="nx">INFO</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">isString</span><span class="o">(</span><span class="nx">cat</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">cat</span> <span class="o">=</span> <span class="nx">cat</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">((</span><span class="nx">cat</span> <span class="o">===</span> <span class="nx">WARN</span> <span class="o">&&</span> <span class="nx">lvl</span> <span class="o">===</span> <span class="nx">ERROR</span><span class="o">)</span> <span class="o">||</span>
<span class="o">(</span><span class="nx">cat</span> <span class="o">===</span> <span class="nx">INFO</span> <span class="o">&&</span> <span class="nx">lvl</span> <span class="o">!==</span> <span class="nx">INFO</span><span class="o">))</span> <span class="o">{</span>
<span class="k">return</span> <span class="kc">false</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="k">return</span> <span class="kc">true</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Create a log entry message from the inputs including the following keys:</span>
<span class="c"> * <ul></span>
<span class="c"> * <li>time - this moment</li></span>
<span class="c"> * <li>message - leg message</li></span>
<span class="c"> * <li>category - logLevel or custom category for the message</li></span>
<span class="c"> * <li>source - when provided, the widget or util calling Y.log</li></span>
<span class="c"> * <li>sourceAndDetail - same as source but can include instance info</li></span>
<span class="c"> * <li>localTime - readable version of time</li></span>
<span class="c"> * <li>elapsedTime - ms since last entry</li></span>
<span class="c"> * <li>totalTime - ms since Console was instantiated or reset</li></span>
<span class="c"> * </ul></span>
<span class="c"> *</span>
<span class="c"> * @method _normalizeMessage</span>
<span class="c"> * @param e {Event} custom event containing the log message</span>
<span class="c"> * @return Object the message object</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_normalizeMessage</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">msg</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">msg</span><span class="o">,</span>
<span class="nx">cat</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">cat</span><span class="o">,</span>
<span class="nx">src</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">src</span><span class="o">,</span>
<span class="nx">m</span> <span class="o">=</span> <span class="o">{</span>
<span class="nx">time</span> <span class="o">:</span> <span class="k">new</span> <span class="nb">Date</span><span class="o">(),</span>
<span class="nx">message</span> <span class="o">:</span> <span class="nx">msg</span><span class="o">,</span>
<span class="nx">category</span> <span class="o">:</span> <span class="nx">cat</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'defaultCategory'</span><span class="o">),</span>
<span class="nx">sourceAndDetail</span> <span class="o">:</span> <span class="nx">src</span> <span class="o">||</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'defaultSource'</span><span class="o">),</span>
<span class="nx">source</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="nx">localTime</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="nx">elapsedTime</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="nx">totalTime</span> <span class="o">:</span> <span class="kc">null</span>
<span class="o">};</span>
<span class="c">// Extract m.source "Foo" from m.sourceAndDetail "Foo bar baz"</span>
<span class="c"></span> <span class="nx">m</span><span class="o">.</span><span class="nx">source</span> <span class="o">=</span> <span class="nx">RE_INLINE_SOURCE</span><span class="o">.</span><span class="nx">test</span><span class="o">(</span><span class="nx">m</span><span class="o">.</span><span class="nx">sourceAndDetail</span><span class="o">)</span> <span class="o">?</span>
<span class="nb">RegExp</span><span class="o">.</span><span class="nx">$1</span> <span class="o">:</span> <span class="nx">m</span><span class="o">.</span><span class="nx">sourceAndDetail</span><span class="o">;</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">localTime</span> <span class="o">=</span> <span class="nx">m</span><span class="o">.</span><span class="nx">time</span><span class="o">.</span><span class="nx">toLocaleTimeString</span> <span class="o">?</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">time</span><span class="o">.</span><span class="nx">toLocaleTimeString</span><span class="o">()</span> <span class="o">:</span> <span class="o">(</span><span class="nx">m</span><span class="o">.</span><span class="nx">time</span> <span class="o">+</span> <span class="s1">''</span><span class="o">);</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">elapsedTime</span> <span class="o">=</span> <span class="nx">m</span><span class="o">.</span><span class="nx">time</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">LAST_TIME</span><span class="o">);</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">totalTime</span> <span class="o">=</span> <span class="nx">m</span><span class="o">.</span><span class="nx">time</span> <span class="o">-</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">START_TIME</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_set</span><span class="o">(</span><span class="nx">LAST_TIME</span><span class="o">,</span><span class="nx">m</span><span class="o">.</span><span class="nx">time</span><span class="o">);</span>
<span class="k">return</span> <span class="nx">m</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Sets an interval for buffered messages to be output to the console.</span>
<span class="c"> *</span>
<span class="c"> * @method _schedulePrint</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_schedulePrint</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">_printLoop</span> <span class="o">&&</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">PAUSED</span><span class="o">)</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'rendered'</span><span class="o">))</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_printLoop</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">later</span><span class="o">(</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'printTimeout'</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">printBuffer</span><span class="o">,</span>
<span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'printLimit'</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"> * Translates message meta into the markup for a console entry.</span>
<span class="c"> *</span>
<span class="c"> * @method _createEntryHTML</span>
<span class="c"> * @param m {Object} object literal containing normalized message metadata</span>
<span class="c"> * @return String</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_createEntryHTML</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">m</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">m</span> <span class="o">=</span> <span class="nx">merge</span><span class="o">(</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_htmlEscapeMessage</span><span class="o">(</span><span class="nx">m</span><span class="o">),</span>
<span class="nx">Console</span><span class="o">.</span><span class="nx">ENTRY_CLASSES</span><span class="o">,</span>
<span class="o">{</span>
<span class="nx">cat_class</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">ENTRY</span><span class="o">,</span><span class="nx">m</span><span class="o">.</span><span class="nx">category</span><span class="o">),</span>
<span class="nx">src_class</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">getClassName</span><span class="o">(</span><span class="nx">ENTRY</span><span class="o">,</span><span class="nx">m</span><span class="o">.</span><span class="nx">source</span><span class="o">)</span>
<span class="o">});</span>
<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'entryTemplate'</span><span class="o">).</span><span class="nx">replace</span><span class="o">(</span><span class="sr">/\{(\w+)\}/g</span><span class="o">,</span>
<span class="k">function</span> <span class="o">(</span><span class="nx">_</span><span class="o">,</span><span class="nx">token</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">token</span> <span class="k">in</span> <span class="nx">m</span> <span class="o">?</span> <span class="nx">m</span><span class="o">[</span><span class="nx">token</span><span class="o">]</span> <span class="o">:</span> <span class="s1">''</span><span class="o">;</span>
<span class="o">});</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Scrolls to the most recent entry</span>
<span class="c"> *</span>
<span class="c"> * @method scrollToLatest</span>
<span class="c"> * @chainable</span>
<span class="c"> */</span>
<span class="nx">scrollToLatest</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">scrollTop</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'newestOnTop'</span><span class="o">)</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">_body</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'scrollHeight'</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="nx">set</span><span class="o">(</span><span class="s1">'scrollTop'</span><span class="o">,</span> <span class="nx">scrollTop</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Performs HTML escaping on strings in the message object.</span>
<span class="c"> *</span>
<span class="c"> * @method _htmlEscapeMessage</span>
<span class="c"> * @param m {Object} the normalized message object</span>
<span class="c"> * @return Object the message object with proper escapement</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_htmlEscapeMessage</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">m</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">message</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_encodeHTML</span><span class="o">(</span><span class="nx">m</span><span class="o">.</span><span class="nx">message</span><span class="o">);</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">source</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_encodeHTML</span><span class="o">(</span><span class="nx">m</span><span class="o">.</span><span class="nx">source</span><span class="o">);</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">sourceAndDetail</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_encodeHTML</span><span class="o">(</span><span class="nx">m</span><span class="o">.</span><span class="nx">sourceAndDetail</span><span class="o">);</span>
<span class="nx">m</span><span class="o">.</span><span class="nx">category</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_encodeHTML</span><span class="o">(</span><span class="nx">m</span><span class="o">.</span><span class="nx">category</span><span class="o">);</span>
<span class="k">return</span> <span class="nx">m</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Removes the oldest message entries from the UI to maintain the limit</span>
<span class="c"> * specified in the consoleLimit configuration.</span>
<span class="c"> *</span>
<span class="c"> * @method _trimOldEntries</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_trimOldEntries</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="c">// Turn off the logging system for the duration of this operation</span>
<span class="c"></span> <span class="c">// to prevent an infinite loop</span>
<span class="c"></span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">var</span> <span class="nx">bd</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="nx">limit</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'consoleLimit'</span><span class="o">),</span>
<span class="nx">debug</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span><span class="o">,</span>
<span class="nx">entries</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">l</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">bd</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">entries</span> <span class="o">=</span> <span class="nx">bd</span><span class="o">.</span><span class="nx">queryAll</span><span class="o">(</span><span class="nx">DOT</span><span class="o">+</span><span class="nx">C_ENTRY</span><span class="o">);</span>
<span class="nx">l</span> <span class="o">=</span> <span class="nx">entries</span><span class="o">.</span><span class="nx">size</span><span class="o">()</span> <span class="o">-</span> <span class="nx">limit</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">l</span> <span class="o">></span> <span class="m">0</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">get</span><span class="o">(</span><span class="s1">'newestOnTop'</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">i</span> <span class="o">=</span> <span class="nx">limit</span><span class="o">;</span>
<span class="nx">l</span> <span class="o">=</span> <span class="nx">entries</span><span class="o">.</span><span class="nx">size</span><span class="o">();</span>
<span class="o">}</span> <span class="k">else</span> <span class="o">{</span>
<span class="nx">i</span> <span class="o">=</span> <span class="m">0</span><span class="o">;</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_body</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="s1">'display'</span><span class="o">,</span><span class="s1">'none'</span><span class="o">);</span>
<span class="k">for</span> <span class="o">(;</span><span class="nx">i</span> <span class="o"><</span> <span class="nx">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">e</span> <span class="o">=</span> <span class="nx">entries</span><span class="o">.</span><span class="nx">item</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">e</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">e</span><span class="o">.</span><span class="nx">remove</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">_body</span><span class="o">.</span><span class="nx">setStyle</span><span class="o">(</span><span class="s1">'display'</span><span class="o">,</span><span class="s1">''</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="nx">debug</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Returns the input string with ampersands (&amp;), &lt, and &gt; encoded</span>
<span class="c"> * as HTML entities.</span>
<span class="c"> *</span>
<span class="c"> * @method _encodeHTML</span>
<span class="c"> * @param s {String} the raw string</span>
<span class="c"> * @return String the encoded string</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_encodeHTML</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">s</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">isString</span><span class="o">(</span><span class="nx">s</span><span class="o">)</span> <span class="o">?</span>
<span class="nx">s</span><span class="o">.</span><span class="nx">replace</span><span class="o">(</span><span class="nx">RE_AMP</span><span class="o">,</span><span class="nx">ESC_AMP</span><span class="o">).</span>
<span class="nx">replace</span><span class="o">(</span><span class="nx">RE_LT</span><span class="o">,</span> <span class="nx">ESC_LT</span><span class="o">).</span>
<span class="nx">replace</span><span class="o">(</span><span class="nx">RE_GT</span><span class="o">,</span> <span class="nx">ESC_GT</span><span class="o">)</span> <span class="o">:</span>
<span class="nx">s</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Clears the timeout for printing buffered messages.</span>
<span class="c"> *</span>
<span class="c"> * @method _cancelPrintLoop</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_cancelPrintLoop</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">_printLoop</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_printLoop</span><span class="o">.</span><span class="nx">cancel</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_printLoop</span> <span class="o">=</span> <span class="kc">null</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Validates input value for style attribute. Accepts only values 'inline',</span>
<span class="c"> * 'block', and 'separate'.</span>
<span class="c"> *</span>
<span class="c"> * @method _validateStyle</span>
<span class="c"> * @param style {String} the proposed value</span>
<span class="c"> * @return {Boolean} pass/fail</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_validateStyle</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">style</span><span class="o">)</span> <span class="o">{</span>
<span class="k">return</span> <span class="nx">style</span> <span class="o">===</span> <span class="s1">'inline'</span> <span class="o">||</span> <span class="nx">style</span> <span class="o">===</span> <span class="s1">'block'</span> <span class="o">||</span> <span class="nx">style</span> <span class="o">===</span> <span class="s1">'separate'</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event handler for clicking on the Pause checkbox to update the paused</span>
<span class="c"> * attribute.</span>
<span class="c"> *</span>
<span class="c"> * @method _onPauseClick</span>
<span class="c"> * @param e {Event} DOM event facade for the click event</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_onPauseClick</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">PAUSED</span><span class="o">,</span><span class="nx">e</span><span class="o">.</span><span class="nx">target</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CHECKED</span><span class="o">));</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event handler for clicking on the Clear button. Pass-through to</span>
<span class="c"> * <code>this.clearConsole()</code>.</span>
<span class="c"> *</span>
<span class="c"> * @method _onClearClick</span>
<span class="c"> * @param e {Event} DOM event facade for the click event</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_onClearClick</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearConsole</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Event handler for clicking on the Collapse/Expand button. Sets the</span>
<span class="c"> * &quot;collapsed&quot; attribute accordingly.</span>
<span class="c"> *</span>
<span class="c"> * @method _onCollapseClick</span>
<span class="c"> * @param e {Event} DOM event facade for the click event</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_onCollapseClick</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">COLLAPSED</span><span class="o">,</span> <span class="o">!</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">COLLAPSED</span><span class="o">));</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Setter method for logLevel attribute. Acceptable values are</span>
<span class="c"> * &quot;error&quot, &quot;warn&quot, and &quot;info&quot (case</span>
<span class="c"> * insensitive). Other values are treated as &quot;info&quot;.</span>
<span class="c"> *</span>
<span class="c"> * @method _setLogLevel</span>
<span class="c"> * @param v {String} the desired log level</span>
<span class="c"> * @return String One of Console.LOG_LEVEL_INFO, _WARN, or _ERROR</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_setLogLevel</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">isString</span><span class="o">(</span><span class="nx">v</span><span class="o">))</span> <span class="o">{</span>
<span class="nx">v</span> <span class="o">=</span> <span class="nx">v</span><span class="o">.</span><span class="nx">toLowerCase</span><span class="o">();</span>
<span class="o">}</span>
<span class="k">return</span> <span class="o">(</span><span class="nx">v</span> <span class="o">===</span> <span class="nx">WARN</span> <span class="o">||</span> <span class="nx">v</span> <span class="o">===</span> <span class="nx">ERROR</span><span class="o">)</span> <span class="o">?</span> <span class="nx">v</span> <span class="o">:</span> <span class="nx">INFO</span><span class="o">;</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Set the height of the Console container. Set the body height to the difference between the configured height and the calculated heights of the header and footer.</span>
<span class="c"> * Overrides Widget.prototype._uiSetHeight.</span>
<span class="c"> *</span>
<span class="c"> * @method _uiSetHeight</span>
<span class="c"> * @param v {String|Number} the new height</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_uiSetHeight</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">Console</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">_uiSetHeight</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span><span class="nx">arguments</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">_head</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">_foot</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">h</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'boundingBox'</span><span class="o">).</span><span class="nx">get</span><span class="o">(</span><span class="s1">'offsetHeight'</span><span class="o">)</span> <span class="o">-</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_head</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'offsetHeight'</span><span class="o">)</span> <span class="o">-</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_foot</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'offsetHeight'</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="nx">setStyle</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">,</span><span class="nx">h</span><span class="o">+</span><span class="s1">'px'</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Updates the UI if changes are made to any of the strings in the strings</span>
<span class="c"> * attribute.</span>
<span class="c"> *</span>
<span class="c"> * @method _afterStringsChange</span>
<span class="c"> * @param e {Event} Custom event for the attribute change</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_afterStringsChange</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">prop</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">subAttrName</span> <span class="o">?</span> <span class="nx">e</span><span class="o">.</span><span class="nx">subAttrName</span><span class="o">.</span><span class="nx">split</span><span class="o">(</span><span class="nx">DOT</span><span class="o">)[</span><span class="m">1</span><span class="o">]</span> <span class="o">:</span> <span class="kc">null</span><span class="o">,</span>
<span class="nx">cb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">CONTENT_BOX</span><span class="o">),</span>
<span class="nx">before</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">prevVal</span><span class="o">,</span>
<span class="nx">after</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">;</span>
<span class="k">if</span> <span class="o">((!</span><span class="nx">prop</span> <span class="o">||</span> <span class="nx">prop</span> <span class="o">===</span> <span class="nx">TITLE</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">before</span><span class="o">.</span><span class="nx">title</span> <span class="o">!==</span> <span class="nx">after</span><span class="o">.</span><span class="nx">title</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cb</span><span class="o">.</span><span class="nx">queryAll</span><span class="o">(</span><span class="nx">DOT</span><span class="o">+</span><span class="nx">C_CONSOLE_TITLE</span><span class="o">).</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span> <span class="nx">after</span><span class="o">.</span><span class="nx">title</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">((!</span><span class="nx">prop</span> <span class="o">||</span> <span class="nx">prop</span> <span class="o">===</span> <span class="nx">PAUSE</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">before</span><span class="o">.</span><span class="nx">pause</span> <span class="o">!==</span> <span class="nx">after</span><span class="o">.</span><span class="nx">pause</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cb</span><span class="o">.</span><span class="nx">queryAll</span><span class="o">(</span><span class="nx">DOT</span><span class="o">+</span><span class="nx">C_PAUSE_LABEL</span><span class="o">).</span><span class="nx">set</span><span class="o">(</span><span class="nx">INNER_HTML</span><span class="o">,</span> <span class="nx">after</span><span class="o">.</span><span class="nx">pause</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">((!</span><span class="nx">prop</span> <span class="o">||</span> <span class="nx">prop</span> <span class="o">===</span> <span class="nx">CLEAR</span><span class="o">)</span> <span class="o">&&</span> <span class="nx">before</span><span class="o">.</span><span class="nx">clear</span> <span class="o">!==</span> <span class="nx">after</span><span class="o">.</span><span class="nx">clear</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">cb</span><span class="o">.</span><span class="nx">queryAll</span><span class="o">(</span><span class="nx">DOT</span><span class="o">+</span><span class="nx">C_CLEAR</span><span class="o">).</span><span class="nx">set</span><span class="o">(</span><span class="s1">'value'</span><span class="o">,</span><span class="nx">after</span><span class="o">.</span><span class="nx">clear</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Updates the UI and schedules or cancels the print loop.</span>
<span class="c"> *</span>
<span class="c"> * @method _afterPausedChange</span>
<span class="c"> * @param e {Event} Custom event for the attribute change</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_afterPausedChange</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">paused</span> <span class="o">=</span> <span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">;</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">src</span> <span class="o">!==</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">Widget</span><span class="o">.</span><span class="nx">SRC_UI</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiUpdatePaused</span><span class="o">(</span><span class="nx">paused</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">if</span> <span class="o">(!</span><span class="nx">paused</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_schedulePrint</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="k">this</span><span class="o">.</span><span class="nx">_printLoop</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_cancelPrintLoop</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Checks or unchecks the paused checkbox</span>
<span class="c"> *</span>
<span class="c"> * @method _uiUpdatePaused</span>
<span class="c"> * @param on {Boolean} the new checked state</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_uiUpdatePaused</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">on</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">node</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">_foot</span><span class="o">.</span><span class="nx">queryAll</span><span class="o">(</span><span class="s1">'input[type=checkbox].'</span><span class="o">+</span><span class="nx">C_PAUSE</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">node</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">node</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">CHECKED</span><span class="o">,</span><span class="nx">on</span><span class="o">);</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Calls this._trimOldEntries() in response to changes in the configured</span>
<span class="c"> * consoleLimit attribute.</span>
<span class="c"> * </span>
<span class="c"> * @method _afterConsoleLimitChange</span>
<span class="c"> * @param e {Event} Custom event for the attribute change</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_afterConsoleLimitChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_trimOldEntries</span><span class="o">();</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Updates the className of the contentBox, which should trigger CSS to</span>
<span class="c"> * hide or show the body and footer sections depending on the new value.</span>
<span class="c"> *</span>
<span class="c"> * @method _afterCollapsedChange</span>
<span class="c"> * @param e {Event} Custom event for the attribute change</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_afterCollapsedChange</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">e</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiUpdateCollapsed</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Updates the UI to reflect the new Collapsed state</span>
<span class="c"> *</span>
<span class="c"> * @method _uiUpdateCollapsed</span>
<span class="c"> * @param v {Boolean} true for collapsed, false for expanded</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_uiUpdateCollapsed</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">var</span> <span class="nx">bb</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'boundingBox'</span><span class="o">),</span>
<span class="nx">button</span> <span class="o">=</span> <span class="nx">bb</span><span class="o">.</span><span class="nx">queryAll</span><span class="o">(</span><span class="s1">'button.'</span><span class="o">+</span><span class="nx">C_COLLAPSE</span><span class="o">),</span>
<span class="nx">method</span> <span class="o">=</span> <span class="nx">v</span> <span class="o">?</span> <span class="s1">'addClass'</span> <span class="o">:</span> <span class="s1">'removeClass'</span><span class="o">,</span>
<span class="nx">str</span> <span class="o">=</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'strings.'</span><span class="o">+(</span><span class="nx">v</span> <span class="o">?</span> <span class="s1">'expand'</span> <span class="o">:</span> <span class="s1">'collapse'</span><span class="o">));</span>
<span class="nx">bb</span><span class="o">[</span><span class="nx">method</span><span class="o">](</span><span class="nx">C_COLLAPSED</span><span class="o">);</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">button</span><span class="o">)</span> <span class="o">{</span>
<span class="nx">button</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="s1">'innerHTML'</span><span class="o">,</span><span class="nx">str</span><span class="o">);</span>
<span class="o">}</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiSetHeight</span><span class="o">(</span><span class="nx">v</span> <span class="o">?</span> <span class="k">this</span><span class="o">.</span><span class="nx">_head</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="s1">'offsetHeight'</span><span class="o">):</span> <span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">));</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Makes adjustments to the UI if needed when the Console is hidden or shown</span>
<span class="c"> *</span>
<span class="c"> * @method _afterVisibleChange</span>
<span class="c"> * @param e {Event} the visibleChange event</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_afterVisibleChange</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="nx">Console</span><span class="o">.</span><span class="nx">superclass</span><span class="o">.</span><span class="nx">_afterVisibleChange</span><span class="o">.</span><span class="nx">apply</span><span class="o">(</span><span class="k">this</span><span class="o">,</span><span class="nx">arguments</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiUpdateFromHideShow</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">newVal</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Recalculates dimensions and updates appropriately when shown</span>
<span class="c"> *</span>
<span class="c"> * @method _uiUpdateFromHideShow</span>
<span class="c"> * @param v {Boolean} true for visible, false for hidden</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_uiUpdateFromHideShow</span> <span class="o">:</span> <span class="k">function</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">if</span> <span class="o">(</span><span class="nx">v</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_uiSetHeight</span><span class="o">(</span><span class="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">HEIGHT</span><span class="o">));</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Responds to log events by normalizing qualifying messages and passing</span>
<span class="c"> * them along through the entry event for buffering etc.</span>
<span class="c"> * </span>
<span class="c"> * @method _onLogEvent</span>
<span class="c"> * @param msg {String} the log message</span>
<span class="c"> * @param cat {String} OPTIONAL the category or logLevel of the message</span>
<span class="c"> * @param src {String} OPTIONAL the source of the message (e.g. widget name)</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_onLogEvent</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="k">this</span><span class="o">.</span><span class="nx">get</span><span class="o">(</span><span class="nx">DISABLED</span><span class="o">)</span> <span class="o">&&</span> <span class="k">this</span><span class="o">.</span><span class="nx">_isInLogLevel</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">debug</span> <span class="o">=</span> <span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span><span class="o">;</span>
<span class="c">/* TODO: needed? */</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="kc">false</span><span class="o">;</span>
<span class="k">this</span><span class="o">.</span><span class="nx">fire</span><span class="o">(</span><span class="nx">ENTRY</span><span class="o">,</span> <span class="o">{</span>
<span class="nx">message</span> <span class="o">:</span> <span class="k">this</span><span class="o">.</span><span class="nx">_normalizeMessage</span><span class="o">(</span><span class="nx">e</span><span class="o">)</span>
<span class="o">});</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">config</span><span class="o">.</span><span class="nx">debug</span> <span class="o">=</span> <span class="nx">debug</span><span class="o">;</span>
<span class="o">}</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Clears the console, resets the startTime attribute, enables and</span>
<span class="c"> * unpauses the widget.</span>
<span class="c"> *</span>
<span class="c"> * @method _defResetFn</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_defResetFn</span> <span class="o">:</span> <span class="k">function</span> <span class="o">()</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">clearConsole</span><span class="o">();</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">START_TIME</span><span class="o">,</span><span class="k">new</span> <span class="nb">Date</span><span class="o">());</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">DISABLED</span><span class="o">,</span><span class="kc">false</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">set</span><span class="o">(</span><span class="nx">PAUSED</span><span class="o">,</span><span class="kc">false</span><span class="o">);</span>
<span class="o">},</span>
<span class="c">/**</span>
<span class="c"> * Buffers incoming message objects and schedules the printing.</span>
<span class="c"> *</span>
<span class="c"> * @method _defEntryFn</span>
<span class="c"> * @param e {Event} The Custom event carrying the message in its payload</span>
<span class="c"> * @protected</span>
<span class="c"> */</span>
<span class="nx">_defEntryFn</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">e</span><span class="o">.</span><span class="nx">message</span><span class="o">)</span> <span class="o">{</span>
<span class="k">this</span><span class="o">.</span><span class="nx">buffer</span><span class="o">.</span><span class="nx">push</span><span class="o">(</span><span class="nx">e</span><span class="o">.</span><span class="nx">message</span><span class="o">);</span>
<span class="k">this</span><span class="o">.</span><span class="nx">_schedulePrint</span><span class="o">();</span>
<span class="o">}</span>
<span class="o">}</span>
<span class="o">});</span>
<span class="nx">Y</span><span class="o">.</span><span class="nx">Console</span> <span class="o">=</span> <span class="nx">Console</span><span class="o">;</span>
</pre></div>
</div>
</div>
</div>
<div class="yui-b">
<div class="nav">
<div id="moduleList" class="module">
<h4>Modules</h4>
<ul class="content">
<li class=""><a href="module_anim.html" title="anim">anim</a></li>
<li class=""><a href="module_async-queue.html" title="async-queue">async-queue</a></li>
<li class=""><a href="module_attribute.html" title="attribute">attribute</a></li>
<li class=""><a href="module_base.html" title="base">base</a></li>
<li class=""><a href="module_cache.html" title="cache">cache</a></li>
<li class=""><a href="module_classnamemanager.html" title="classnamemanager">classnamemanager</a></li>
<li class=""><a href="module_collection.html" title="collection">collection</a></li>
<li class="selected"><a href="module_console.html" title="console">console</a></li>
<li class=""><a href="module_console-filters.html" title="console-filters">console-filters</a></li>
<li class=""><a href="module_cookie.html" title="cookie">cookie</a></li>
<li class=""><a href="module_dataschema.html" title="dataschema">dataschema</a></li>
<li class=""><a href="module_datasource.html" title="datasource">datasource</a></li>
<li class=""><a href="module_datatype.html" title="datatype">datatype</a></li>
<li class=""><a href="module_dd.html" title="dd">dd</a></li>
<li class=""><a href="module_dom.html" title="dom">dom</a></li>
<li class=""><a href="module_dump.html" title="dump">dump</a></li>
<li class=""><a href="module_event.html" title="event">event</a></li>
<li class=""><a href="module_event-custom.html" title="event-custom">event-custom</a></li>
<li class=""><a href="module_event-simulate.html" title="event-simulate">event-simulate</a></li>
<li class=""><a href="module_history.html" title="history">history</a></li>
<li class=""><a href="module_imageloader.html" title="imageloader">imageloader</a></li>
<li class=""><a href="module_io.html" title="io">io</a></li>
<li class=""><a href="module_json.html" title="json">json</a></li>
<li class=""><a href="module_node.html" title="node">node</a></li>
<li class=""><a href="module_node-focusmanager.html" title="node-focusmanager">node-focusmanager</a></li>
<li class=""><a href="module_node-menunav.html" title="node-menunav">node-menunav</a></li>
<li class=""><a href="module_oop.html" title="oop">oop</a></li>
<li class=""><a href="module_overlay.html" title="overlay">overlay</a></li>
<li class=""><a href="module_plugin.html" title="plugin">plugin</a></li>
<li class=""><a href="module_profiler.html" title="profiler">profiler</a></li>
<li class=""><a href="module_queue-promote.html" title="queue-promote">queue-promote</a></li>
<li class=""><a href="module_slider.html" title="slider">slider</a></li>
<li class=""><a href="module_stylesheet.html" title="stylesheet">stylesheet</a></li>
<li class=""><a href="module_substitute.html" title="substitute">substitute</a></li>
<li class=""><a href="module_test.html" title="test">test</a></li>
<li class=""><a href="module_widget.html" title="widget">widget</a></li>
<li class=""><a href="module_widget-position.html" title="widget-position">widget-position</a></li>
<li class=""><a href="module_widget-position-ext.html" title="widget-position-ext">widget-position-ext</a></li>
<li class=""><a href="module_widget-stack.html" title="widget-stack">widget-stack</a></li>
<li class=""><a href="module_widget-stdmod.html" title="widget-stdmod">widget-stdmod</a></li>
<li class=""><a href="module_yui.html" title="yui">yui</a></li>
</ul>
</div>
<div id="classList" class="module">
<h4>Classes</h4>
<ul class="content">
<li class=""><a href="Console.html" title="Console">Console</a></li>
</ul>
</div>
<div id="fileList" class="module">
<h4>Files</h4>
<ul class="content">
<li class="selected"><a href="console.js.html" title="console.js">console.js</a></li>
</ul>
</div>
</div>
</div>
</div>
<div id="ft">
<hr />
Copyright © 2009 Yahoo! Inc. All rights reserved.
</div>
</div>
<script type="text/javascript">
ALL_YUI_PROPS = [{"access": "protected", "host": "Console", "name": "_afterCollapsedChange", "url": "Console.html#method__afterCollapsedChange", "type": "method"}, {"access": "protected", "host": "Console", "name": "_afterConsoleLimitChange", "url": "Console.html#method__afterConsoleLimitChange", "type": "method"}, {"access": "protected", "host": "Console", "name": "_afterPausedChange", "url": "Console.html#method__afterPausedChange", "type": "method"}, {"access": "protected", "host": "Console", "name": "_afterStringsChange", "url": "Console.html#method__afterStringsChange", "type": "method"}, {"access": "protected", "host": "Console", "name": "_afterVisibleChange", "url": "Console.html#method__afterVisibleChange", "type": "method"}, {"access": "protected", "host": "Console", "name": "bindUI", "url": "Console.html#method_bindUI", "type": "method"}, {"access": "protected", "host": "Console", "name": "_body", "url": "Console.html#property__body", "type": "property"}, {"access": "protected", "host": "Console", "name": "buffer", "url": "Console.html#property_buffer", "type": "property"}, {"access": "protected", "host": "Console", "name": "_cancelPrintLoop", "url": "Console.html#method__cancelPrintLoop", "type": "method"}, {"access": "", "host": "Console", "name": "clearConsole", "url": "Console.html#method_clearConsole", "type": "method"}, {"access": "", "host": "Console", "name": "collapse", "url": "Console.html#method_collapse", "type": "method"}, {"access": "", "host": "Console", "name": "collapsed", "url": "Console.html#config_collapsed", "type": "config"}, {"access": "", "host": "Console", "name": "collapsedChange", "url": "Console.html#event_collapsedChange", "type": "event"}, {"access": "", "host": "Console", "name": "Console.ATTRS", "url": "Console.html#property_Console.ATTRS", "type": "property"}, {"access": "", "host": "Console", "name": "Console.BODY_TEMPLATE", "url": "Console.html#property_Console.BODY_TEMPLATE", "type": "property"}, {"access": "", "host": "Console", "name": "Console.CHROME_CLASSES", "url": "Console.html#property_Console.CHROME_CLASSES", "type": "property"}, {"access": "", "host": "Console", "name": "Console.ENTRY_CLASSES", "url": "Console.html#property_Console.ENTRY_CLASSES", "type": "property"}, {"access": "", "host": "Console", "name": "Console.ENTRY_TEMPLATE", "url": "Console.html#property_Console.ENTRY_TEMPLATE", "type": "property"}, {"access": "", "host": "Console", "name": "Console.FOOTER_TEMPLATE", "url": "Console.html#property_Console.FOOTER_TEMPLATE", "type": "property"}, {"access": "", "host": "Console", "name": "Console.HEADER_TEMPLATE", "url": "Console.html#property_Console.HEADER_TEMPLATE", "type": "property"}, {"access": "", "host": "Console", "name": "consoleLimit", "url": "Console.html#config_consoleLimit", "type": "config"}, {"access": "", "host": "Console", "name": "consoleLimitChange", "url": "Console.html#event_consoleLimitChange", "type": "event"}, {"access": "", "host": "Console", "name": "Console.LOG_LEVEL_ERROR", "url": "Console.html#property_Console.LOG_LEVEL_ERROR", "type": "property"}, {"access": "", "host": "Console", "name": "Console.LOG_LEVEL_INFO", "url": "Console.html#property_Console.LOG_LEVEL_INFO", "type": "property"}, {"access": "", "host": "Console", "name": "Console.LOG_LEVEL_WARN", "url": "Console.html#property_Console.LOG_LEVEL_WARN", "type": "property"}, {"access": "", "host": "Console", "name": "Console.NAME", "url": "Console.html#property_Console.NAME", "type": "property"}, {"access": "protected", "host": "Console", "name": "_createEntryHTML", "url": "Console.html#method__createEntryHTML", "type": "method"}, {"access": "", "host": "Console", "name": "defaultCategory", "url": "Console.html#config_defaultCategory", "type": "config"}, {"access": "", "host": "Console", "name": "defaultCategoryChange", "url": "Console.html#event_defaultCategoryChange", "type": "event"}, {"access": "", "host": "Console", "name": "defaultSource", "url": "Console.html#config_defaultSource", "type": "config"}, {"access": "", "host": "Console", "name": "defaultSourceChange", "url": "Console.html#event_defaultSourceChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "_defEntryFn", "url": "Console.html#method__defEntryFn", "type": "method"}, {"access": "protected", "host": "Console", "name": "_defResetFn", "url": "Console.html#method__defResetFn", "type": "method"}, {"access": "protected", "host": "Console", "name": "destructor", "url": "Console.html#method_destructor", "type": "method"}, {"access": "protected", "host": "Console", "name": "_encodeHTML", "url": "Console.html#method__encodeHTML", "type": "method"}, {"access": "", "host": "Console", "name": "entry", "url": "Console.html#event_entry", "type": "event"}, {"access": "", "host": "Console", "name": "entryTemplate", "url": "Console.html#config_entryTemplate", "type": "config"}, {"access": "", "host": "Console", "name": "entryTemplateChange", "url": "Console.html#event_entryTemplateChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "_evtCat", "url": "Console.html#property__evtCat", "type": "property"}, {"access": "", "host": "Console", "name": "expand", "url": "Console.html#method_expand", "type": "method"}, {"access": "protected", "host": "Console", "name": "_foot", "url": "Console.html#property__foot", "type": "property"}, {"access": "protected", "host": "Console", "name": "_head", "url": "Console.html#property__head", "type": "property"}, {"access": "", "host": "Console", "name": "height", "url": "Console.html#config_height", "type": "config"}, {"access": "", "host": "Console", "name": "heightChange", "url": "Console.html#event_heightChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "_htmlEscapeMessage", "url": "Console.html#method__htmlEscapeMessage", "type": "method"}, {"access": "protected", "host": "Console", "name": "_initBody", "url": "Console.html#method__initBody", "type": "method"}, {"access": "protected", "host": "Console", "name": "_initFoot", "url": "Console.html#method__initFoot", "type": "method"}, {"access": "protected", "host": "Console", "name": "_initHead", "url": "Console.html#method__initHead", "type": "method"}, {"access": "protected", "host": "Console", "name": "initializer", "url": "Console.html#method_initializer", "type": "method"}, {"access": "protected", "host": "Console", "name": "_isInLogLevel", "url": "Console.html#method__isInLogLevel", "type": "method"}, {"access": "", "host": "Console", "name": "lastTime", "url": "Console.html#config_lastTime", "type": "config"}, {"access": "", "host": "Console", "name": "lastTimeChange", "url": "Console.html#event_lastTimeChange", "type": "event"}, {"access": "", "host": "Console", "name": "log", "url": "Console.html#method_log", "type": "method"}, {"access": "", "host": "Console", "name": "logEvent", "url": "Console.html#config_logEvent", "type": "config"}, {"access": "", "host": "Console", "name": "logEventChange", "url": "Console.html#event_logEventChange", "type": "event"}, {"access": "", "host": "Console", "name": "logLevel", "url": "Console.html#config_logLevel", "type": "config"}, {"access": "", "host": "Console", "name": "logLevelChange", "url": "Console.html#event_logLevelChange", "type": "event"}, {"access": "", "host": "Console", "name": "logSource", "url": "Console.html#config_logSource", "type": "config"}, {"access": "", "host": "Console", "name": "logSourceChange", "url": "Console.html#event_logSourceChange", "type": "event"}, {"access": "", "host": "Console", "name": "newestOnTop", "url": "Console.html#config_newestOnTop", "type": "config"}, {"access": "", "host": "Console", "name": "newestOnTopChange", "url": "Console.html#event_newestOnTopChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "_normalizeMessage", "url": "Console.html#method__normalizeMessage", "type": "method"}, {"access": "protected", "host": "Console", "name": "_onClearClick", "url": "Console.html#method__onClearClick", "type": "method"}, {"access": "protected", "host": "Console", "name": "_onCollapseClick", "url": "Console.html#method__onCollapseClick", "type": "method"}, {"access": "protected", "host": "Console", "name": "_onLogEvent", "url": "Console.html#method__onLogEvent", "type": "method"}, {"access": "protected", "host": "Console", "name": "_onPauseClick", "url": "Console.html#method__onPauseClick", "type": "method"}, {"access": "", "host": "Console", "name": "paused", "url": "Console.html#config_paused", "type": "config"}, {"access": "", "host": "Console", "name": "pausedChange", "url": "Console.html#event_pausedChange", "type": "event"}, {"access": "", "host": "Console", "name": "printBuffer", "url": "Console.html#method_printBuffer", "type": "method"}, {"access": "", "host": "Console", "name": "printLimit", "url": "Console.html#config_printLimit", "type": "config"}, {"access": "", "host": "Console", "name": "printLimitChange", "url": "Console.html#event_printLimitChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "_printLoop", "url": "Console.html#property__printLoop", "type": "property"}, {"access": "", "host": "Console", "name": "printTimeout", "url": "Console.html#config_printTimeout", "type": "config"}, {"access": "", "host": "Console", "name": "printTimeoutChange", "url": "Console.html#event_printTimeoutChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "renderUI", "url": "Console.html#method_renderUI", "type": "method"}, {"access": "", "host": "Console", "name": "reset", "url": "Console.html#method_reset", "type": "method"}, {"access": "", "host": "Console", "name": "reset", "url": "Console.html#event_reset", "type": "event"}, {"access": "protected", "host": "Console", "name": "_schedulePrint", "url": "Console.html#method__schedulePrint", "type": "method"}, {"access": "", "host": "Console", "name": "scrollIntoView", "url": "Console.html#config_scrollIntoView", "type": "config"}, {"access": "", "host": "Console", "name": "scrollIntoViewChange", "url": "Console.html#event_scrollIntoViewChange", "type": "event"}, {"access": "", "host": "Console", "name": "scrollToLatest", "url": "Console.html#method_scrollToLatest", "type": "method"}, {"access": "protected", "host": "Console", "name": "_setLogLevel", "url": "Console.html#method__setLogLevel", "type": "method"}, {"access": "", "host": "Console", "name": "startTime", "url": "Console.html#config_startTime", "type": "config"}, {"access": "", "host": "Console", "name": "startTimeChange", "url": "Console.html#event_startTimeChange", "type": "event"}, {"access": "", "host": "Console", "name": "strings", "url": "Console.html#config_strings", "type": "config"}, {"access": "", "host": "Console", "name": "stringsChange", "url": "Console.html#event_stringsChange", "type": "event"}, {"access": "", "host": "Console", "name": "style", "url": "Console.html#config_style", "type": "config"}, {"access": "", "host": "Console", "name": "styleChange", "url": "Console.html#event_styleChange", "type": "event"}, {"access": "", "host": "Console", "name": "syncUI", "url": "Console.html#method_syncUI", "type": "method"}, {"access": "protected", "host": "Console", "name": "_trimOldEntries", "url": "Console.html#method__trimOldEntries", "type": "method"}, {"access": "protected", "host": "Console", "name": "_uiSetHeight", "url": "Console.html#method__uiSetHeight", "type": "method"}, {"access": "protected", "host": "Console", "name": "_uiUpdateCollapsed", "url": "Console.html#method__uiUpdateCollapsed", "type": "method"}, {"access": "protected", "host": "Console", "name": "_uiUpdateFromHideShow", "url": "Console.html#method__uiUpdateFromHideShow", "type": "method"}, {"access": "protected", "host": "Console", "name": "_uiUpdatePaused", "url": "Console.html#method__uiUpdatePaused", "type": "method"}, {"access": "", "host": "Console", "name": "useBrowserConsole", "url": "Console.html#config_useBrowserConsole", "type": "config"}, {"access": "", "host": "Console", "name": "useBrowserConsoleChange", "url": "Console.html#event_useBrowserConsoleChange", "type": "event"}, {"access": "protected", "host": "Console", "name": "_validateStyle", "url": "Console.html#method__validateStyle", "type": "method"}, {"access": "", "host": "Console", "name": "width", "url": "Console.html#config_width", "type": "config"}, {"access": "", "host": "Console", "name": "widthChange", "url": "Console.html#event_widthChange", "type": "event"}];
</script>
</body>
</html>