Wplace-BlueMarble/docs/global.html
2026-03-17 01:31:43 +00:00

18797 lines
No EOL
271 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Global - Documentation</title>
<script src="scripts/prettify/prettify.js"></script>
<script src="scripts/prettify/lang-css.js"></script>
<!--[if lt IE 9]>
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<link type="text/css" rel="stylesheet" href="https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css">
<link type="text/css" rel="stylesheet" href="styles/prettify-tomorrow.css">
<link type="text/css" rel="stylesheet" href="styles/jsdoc-default.css">
</head>
<body>
<input type="checkbox" id="nav-trigger" class="nav-trigger" />
<label for="nav-trigger" class="navicon-button x">
<div class="navicon"></div>
</label>
<label for="nav-trigger" class="overlay"></label>
<nav>
<li class="nav-link nav-home-link"><a href="index.html">Home</a></li><li class="nav-heading">Classes</li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="ApiManager.html">ApiManager</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="ConfettiManager.html">ConfettiManager</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Observers.html">Observers</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Overlay.html">Overlay</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="SettingsManager.html">SettingsManager</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="Template.html">Template</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="TemplateManager.html">TemplateManager</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="WindowCredits.html">WindowCredits</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="WindowFilter.html">WindowFilter</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="WindowMain.html">WindowMain</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="WindowSettings.html">WindowSettings</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="WindowTelemetry.html">WindowTelemetry</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="WindowWizard.html">WindowWizard</a></span></li><li class="nav-heading"><span class="nav-item-type type-class">C</span><span class="nav-item-name"><a href="module.exports_module.exports.html">exports</a></span></li><li class="nav-heading"><a href="global.html">Globals</a></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addBr">addBr</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addButton">addButton</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addButtonHelp">addButtonHelp</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addCaption">addCaption</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addCheckbox">addCheckbox</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addDetails">addDetails</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addDiv">addDiv</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addDragbar">addDragbar</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addFieldset">addFieldset</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addForm">addForm</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addHeader">addHeader</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addHr">addHr</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addImg">addImg</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addInput">addInput</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addInputFile">addInputFile</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addLegend">addLegend</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addLi">addLi</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addMenu">addMenu</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addOl">addOl</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addOption">addOption</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addP">addP</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addSelect">addSelect</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addSmall">addSmall</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addSpan">addSpan</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addSummary">addSummary</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTable">addTable</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTbody">addTbody</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTd">addTd</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTextarea">addTextarea</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTfoot">addTfoot</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTh">addTh</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addThead">addThead</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTimer">addTimer</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addTr">addTr</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#addUl">addUl</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#base64ToUint8">base64ToUint8</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#buildElement">buildElement</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#buildHighlight">buildHighlight</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#buildOverlay">buildOverlay</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#buildTemplate">buildTemplate</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#buildWindow">buildWindow</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#buildWindowed">buildWindowed</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#calculateCanvasTransparency">calculateCanvasTransparency</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#calculateCoordsFromChunked">calculateCoordsFromChunked</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#calculateRelativeLuminance">calculateRelativeLuminance</a></span></li><li class="nav-item"><span class="nav-item-type type-member">M</span><span class="nav-item-name"><a href="global.html#colorpalette">colorpalette</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#colorpaletteForBlueMarble">colorpaletteForBlueMarble</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#consoleError">consoleError</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#consoleLog">consoleLog</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#consoleWarn">consoleWarn</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#convertTemplateToBlob">convertTemplateToBlob</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createConfetti">createConfetti</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createJSON">createJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createObserverBody">createObserverBody</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createTemplate">createTemplate</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#createTemplateTiles">createTemplateTiles</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#deleteTemplate">deleteTemplate</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#disableTemplate">disableTemplate</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#downloadAllTemplates">downloadAllTemplates</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#downloadAllTemplatesFromStorage">downloadAllTemplatesFromStorage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#downloadTemplate">downloadTemplate</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#drawTemplateOnTile">drawTemplateOnTile</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#encodedToNumber">encodedToNumber</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#escapeHTML">escapeHTML</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#getClipboardData">getClipboardData</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#getObserverBody">getObserverBody</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#getWplaceVersion">getWplaceVersion</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#handleDisplayError">handleDisplayError</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#handleDisplayStatus">handleDisplayStatus</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#handleDrag">handleDrag</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#handleMinimization">handleMinimization</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#hexToRGB">hexToRGB</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#importJSON">importJSON</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#inject">inject</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#localizeDate">localizeDate</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#localizeDuration">localizeDuration</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#localizeNumber">localizeNumber</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#localizePercent">localizePercent</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#negativeSafeModulo">negativeSafeModulo</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#numberToEncoded">numberToEncoded</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#observe">observe</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#observeBlack">observeBlack</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#rgbToHex">rgbToHex</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#selectAllCoordinateInputs">selectAllCoordinateInputs</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#serverTPtoDisplayTP">serverTPtoDisplayTP</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#setApiManager">setApiManager</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#setSettingsManager">setSettingsManager</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#setTemplatesShouldBeDrawn">setTemplatesShouldBeDrawn</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#setWindowMain">setWindowMain</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#sleep">sleep</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#spontaneousResponseListener">spontaneousResponseListener</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#toggleFlag">toggleFlag</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#uint8ToBase64">uint8ToBase64</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#updateColorList">updateColorList</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#updateInnerHTML">updateInnerHTML</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#updateUserStorage">updateUserStorage</a></span></li><li class="nav-item"><span class="nav-item-type type-function">F</span><span class="nav-item-name"><a href="global.html#viewCanvasInNewTab">viewCanvasInNewTab</a></span></li>
</nav>
<div id="main">
<h1 class="page-title">Global</h1>
<section>
<header>
<h2>
</h2>
</header>
<article>
<div class="container-overview">
<dl class="details">
</dl>
</div>
<h3 class="subsection-title">Members</h3>
<div class="section-members">
<h4 class="name" id="colorpalette"><span class="type-signature">(constant) </span>colorpalette<span class="type-signature"></span></h4>
<div class="description">
<p>The color palette used by wplace.live</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.78.0</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line421">line 421</a>
</li></ul></dd>
</dl>
</div>
<h3 class="subsection-title">Methods</h3>
<div class="section-method">
<h4 class="name" id="addBr"><span class="type-signature"></span>addBr<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>br</code> to the overlay.
This <code>br</code> element will have properties shared between all <code>br</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.11</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line411">line 411</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>br</code> that are NOT shared between all overlay <code>br</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>br</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;br> elements have a shared class (e.g. {'className': 'bar'})
overlay.addbr({'id': 'foo'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;br id="foo" class="bar">
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addButton"><span class="type-signature"></span>addButton<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>button</code> to the overlay.
This <code>button</code> element will have properties shared between all <code>button</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.12</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line918">line 918</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>button</code> that are NOT shared between all overlay <code>button</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>button</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;button> elements have a shared class (e.g. {'className': 'bar'})
overlay.addButton({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;button id="foo" class="bar">Foobar.&lt;/button>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addButtonHelp"><span class="type-signature"></span>addButtonHelp<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a help button to the overlay. It will have a &quot;?&quot; icon unless overridden in callback.
On click, the button will attempt to output the title to the output element (ID defined in Overlay constructor).
This <code>button</code> element will have properties shared between all <code>button</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.12</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line952">line 952</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>button</code> that are NOT shared between all overlay <code>button</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>button</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Examples</h5>
<pre class="prettyprint"><code>// Assume all help button elements have a shared class (e.g. {'className': 'bar'})
overlay.addButtonHelp({'id': 'foo', 'title': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;button id="foo" class="bar" title="Help: Foobar.">?&lt;/button>
&lt;/body></code></pre>
<pre class="prettyprint"><code>// Assume all help button elements have a shared class (e.g. {'className': 'bar'})
overlay.addButtonHelp({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;button id="foo" class="bar" title="Help: Foobar.">?&lt;/button>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addCaption"><span class="type-signature"></span>addCaption<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table caption to the overlay.
This <code>caption</code> element will have properties shared between all <code>caption</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line743">line 743</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>caption</code> that are NOT shared between all overlay <code>caption</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>caption</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;caption> elements have a shared class (e.g. {'className': 'bar'})
overlay.addCaption({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;caption id="foo" class="bar">Foobar.&lt;/caption>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addCheckbox"><span class="type-signature"></span>addCheckbox<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a checkbox to the overlay.
This checkbox element will have properties shared between all checkbox elements in the overlay.
You can override the shared properties by using a callback. Note: the checkbox element is inside a label element.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.10</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line516">line 516</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the checkbox that are NOT shared between all overlay checkbox elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the checkbox.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all checkbox elements have a shared class (e.g. {'className': 'bar'})
overlay.addCheckbox({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;label>
&lt;input type="checkbox" id="foo" class="bar">
"Foobar."
&lt;/label>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addDetails"><span class="type-signature"></span>addDetails<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>details</code> to the overlay.
This <code>details</code> element will have properties shared between all <code>details</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.96</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line285">line 285</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>details</code> that are NOT shared between all overlay <code>details</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>details</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;details> elements have a shared class (e.g. {'className': 'bar'})
overlay.addDetails({'id': 'foo'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;details id="foo" class="bar">&lt;/details>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addDiv"><span class="type-signature"></span>addDiv<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>div</code> to the overlay.
This <code>div</code> element will have properties shared between all <code>div</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line185">line 185</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>div</code> that are NOT shared between all overlay <code>div</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>div</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;div> elements have a shared class (e.g. {'className': 'bar'})
overlay.addDiv({'id': 'foo'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;div id="foo" class="bar">&lt;/div>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addDragbar"><span class="type-signature"></span>addDragbar<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a dragbar <code>div</code> element to the overlay.
This dragbar element will have properties shared between all dragbar elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.145</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1096">line 1096</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the dragbar that are NOT shared between all overlay dragbars. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the dragbar.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all dragbar elements have a shared class (e.g. {'className': 'bar'})
overlay.addDragbar({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;div id="foo" class="bar">Foobar.&lt;/div>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addFieldset"><span class="type-signature"></span>addFieldset<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>fieldset</code> to the overlay.
This <code>fieldset</code> element will have properties shared between all <code>fieldset</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.246</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line461">line 461</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>fieldset</code> that are NOT shared between all overlay <code>fieldset</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>fieldset</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;fieldset> elements have a shared class (e.g. {'className': 'bar'})
overlay.addFieldset({'id': 'foo'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;fieldset id="foo" class="bar">&lt;/fieldset>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addForm"><span class="type-signature"></span>addForm<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>form</code> to the overlay.
This <code>form</code> element will have properties shared between all <code>form</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.246</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line436">line 436</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>form</code> that are NOT shared between all overlay <code>form</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>form</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;form> elements have a shared class (e.g. {'className': 'bar'})
overlay.addForm({'id': 'foo'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;form id="foo" class="bar">&lt;/form>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addHeader"><span class="type-signature"></span>addHeader<span class="signature">(level, additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a header to the overlay.
This header element will have properties shared between all header elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.7</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line361">line 361</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>level</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">
<p>The header level. Must be between 1 and 6 (inclusive)</p>
</td>
</tr>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the header that are NOT shared between all overlay header elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the header.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all header elements have a shared class (e.g. {'className': 'bar'})
overlay.addHeader(6, {'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;h6 id="foo" class="bar">Foobar.&lt;/h6>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addHr"><span class="type-signature"></span>addHr<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>hr</code> to the overlay.
This <code>hr</code> element will have properties shared between all <code>hr</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.7</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line386">line 386</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>hr</code> that are NOT shared between all overlay <code>hr</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>hr</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;hr> elements have a shared class (e.g. {'className': 'bar'})
overlay.addhr({'id': 'foo'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;hr id="foo" class="bar">
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addImg"><span class="type-signature"></span>addImg<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>img</code> to the overlay.
This <code>img</code> element will have properties shared between all <code>img</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line335">line 335</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>img</code> that are NOT shared between all overlay <code>img</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>img</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;img> elements have a shared class (e.g. {'className': 'bar'})
overlay.addimg({'id': 'foo', 'src': './img.png'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;img id="foo" src="./img.png" class="bar">
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addInput"><span class="type-signature"></span>addInput<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>input</code> to the overlay.
This <code>input</code> element will have properties shared between all <code>input</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.13</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line990">line 990</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>input</code> that are NOT shared between all overlay <code>input</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>input</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;input> elements have a shared class (e.g. {'className': 'bar'})
overlay.addInput({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;input id="foo" class="bar">Foobar.&lt;/input>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addInputFile"><span class="type-signature"></span>addInputFile<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a file input to the overlay with enhanced visibility controls.
This input element will have properties shared between all file input elements in the overlay.
Uses multiple hiding methods to prevent browser native text from appearing during minimize/maximize.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.17</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1019">line 1019</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the file input that are NOT shared between all overlay file input elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the file input.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all file input elements have a shared class (e.g. {'className': 'bar'})
overlay.addInputFile({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;div>
&lt;input type="file" id="foo" class="bar" style="display: none">&lt;/input>
&lt;button>Foobar.&lt;/button>
&lt;/div>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addLegend"><span class="type-signature"></span>addLegend<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>legend</code> to the overlay.
This <code>legend</code> element will have properties shared between all <code>legend</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.246</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line488">line 488</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>legend</code> that are NOT shared between all overlay <code>legend</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>legend</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;legend> elements have a shared class (e.g. {'className': 'bar'})
overlay.addLegend({'id': 'foo', textContent: 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;legend id="foo" class="bar">
"Foobar."
&lt;/legend>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addLi"><span class="type-signature"></span>addLi<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a list item to the overlay.
This <code>li</code> element will have properties shared between all <code>li</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line693">line 693</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>li</code> that are NOT shared between all overlay <code>li</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>li</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;li> elements have a shared class (e.g. {'className': 'bar'})
overlay.addLi({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;li id="foo" class="bar">Foobar.&lt;/li>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addMenu"><span class="type-signature"></span>addMenu<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>menu</code> to the overlay.
This <code>menu</code> element will have properties shared between all <code>menu</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line668">line 668</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>menu</code> that are NOT shared between all overlay <code>menu</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>menu</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;menu> elements have a shared class (e.g. {'className': 'bar'})
overlay.addMenu({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;menu id="foo" class="bar">Foobar.&lt;/menu>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addOl"><span class="type-signature"></span>addOl<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds an ordered list to the overlay.
This <code>ol</code> element will have properties shared between all <code>ol</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line618">line 618</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>ol</code> that are NOT shared between all overlay <code>ol</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>ol</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;ol> elements have a shared class (e.g. {'className': 'bar'})
overlay.addOl({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;ol id="foo" class="bar">Foobar.&lt;/ol>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addOption"><span class="type-signature"></span>addOption<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds an option to the overlay.
This <code>option</code> element will have properties shared between all <code>option</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.244</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line593">line 593</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>option</code> that are NOT shared between all overlay <code>option</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>option</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;option> elements have a shared class (e.g. {'className': 'bar'})
overlay.addOption({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;option id="foo" class="bar">Foobar.&lt;/option>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addP"><span class="type-signature"></span>addP<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>p</code> to the overlay.
This <code>p</code> element will have properties shared between all <code>p</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line210">line 210</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>p</code> that are NOT shared between all overlay <code>p</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>p</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;p> elements have a shared class (e.g. {'className': 'bar'})
overlay.addP({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;p id="foo" class="bar">Foobar.&lt;/p>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addSelect"><span class="type-signature"></span>addSelect<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a label &amp; select element to the overlay.
This select element will have properties shared between all select elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.243</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line564">line 564</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the checkbox that are NOT shared between all overlay select elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the label/select elements.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all select elements have a shared class (e.g. {'className': 'bar'})
overlay.addSelect({'id': 'foo', 'textContent': 'Foobar: '}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;label for="foo">
"Foobar: "
&lt;/label>
&lt;select id="foo" class="bar">&lt;/select>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addSmall"><span class="type-signature"></span>addSmall<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>small</code> to the overlay.
This <code>small</code> element will have properties shared between all <code>small</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.55.8</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line235">line 235</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>small</code> that are NOT shared between all overlay <code>small</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>small</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;small> elements have a shared class (e.g. {'className': 'bar'})
overlay.addSmall({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;small id="foo" class="bar">Foobar.&lt;/small>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addSpan"><span class="type-signature"></span>addSpan<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>span</code> to the overlay.
This <code>span</code> element will have properties shared between all <code>span</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.55.8</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line260">line 260</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>span</code> that are NOT shared between all overlay <code>span</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>span</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;span> elements have a shared class (e.g. {'className': 'bar'})
overlay.addSpan({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;span id="foo" class="bar">Foobar.&lt;/span>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addSummary"><span class="type-signature"></span>addSummary<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>summary</code> to the overlay.
This <code>summary</code> element will have properties shared between all <code>summary</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.96</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line310">line 310</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>summary</code> that are NOT shared between all overlay <code>summary</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>summary</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;summary> elements have a shared class (e.g. {'className': 'bar'})
overlay.addSummary({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;summary id="foo" class="bar">Foobar.&lt;/summary>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTable"><span class="type-signature"></span>addTable<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table to the overlay.
This <code>table</code> element will have properties shared between all <code>table</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line718">line 718</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>table</code> that are NOT shared between all overlay <code>table</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>table</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;table> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTable({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;table id="foo" class="bar">Foobar.&lt;/table>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTbody"><span class="type-signature"></span>addTbody<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table body to the overlay.
This <code>tbody</code> element will have properties shared between all <code>tbody</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line793">line 793</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>tbody</code> that are NOT shared between all overlay <code>tbody</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>tbody</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;tbody> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTbody({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;tbody id="foo" class="bar">Foobar.&lt;/tbody>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTd"><span class="type-signature"></span>addTd<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table data cell to the overlay.
This <code>td</code> element will have properties shared between all <code>td</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line893">line 893</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>td</code> that are NOT shared between all overlay <code>td</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>td</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;td> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTd({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;td id="foo" class="bar">Foobar.&lt;/td>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTextarea"><span class="type-signature"></span>addTextarea<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a <code>textarea</code> to the overlay.
This <code>textarea</code> element will have properties shared between all <code>textarea</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.13</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1071">line 1071</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>textarea</code> that are NOT shared between all overlay <code>textarea</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>textarea</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;textarea> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTextarea({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;textarea id="foo" class="bar">Foobar.&lt;/textarea>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTfoot"><span class="type-signature"></span>addTfoot<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table footer to the overlay.
This <code>tfoot</code> element will have properties shared between all <code>tfoot</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line818">line 818</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>tfoot</code> that are NOT shared between all overlay <code>tfoot</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>tfoot</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;tfoot> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTfoot({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;tfoot id="foo" class="bar">Foobar.&lt;/tfoot>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTh"><span class="type-signature"></span>addTh<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table header (label) cell to the overlay.
This <code>th</code> element will have properties shared between all <code>th</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line868">line 868</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>th</code> that are NOT shared between all overlay <code>th</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>th</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;th> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTh({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;th id="foo" class="bar">Foobar.&lt;/th>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addThead"><span class="type-signature"></span>addThead<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table header to the overlay.
This <code>thead</code> element will have properties shared between all <code>thead</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line768">line 768</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>thead</code> that are NOT shared between all overlay <code>thead</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>thead</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;thead> elements have a shared class (e.g. {'className': 'bar'})
overlay.addThead({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;thead id="foo" class="bar">Foobar.&lt;/thead>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTimer"><span class="type-signature"></span>addTimer<span class="signature">(endDate<span class="signature-attributes">opt</span>, updateInterval<span class="signature-attributes">opt</span>, additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a timer <code>time</code> element to the overlay.
This timer will countdown until it reaches the end date that was passed in.
Additionally, you can update the end date by changing the endDate dataset attribute on the element.
Timer elements are not localized. Output is HH:MM:SS with no units.
This timer will have properties shared between all timers in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.313</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1129">line 1129</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>endDate</code></td>
<td class="type">
<span class="param-type"><code>Date</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
Date.now()
</td>
<td class="description last">
<p>The time to count down to.</p>
</td>
</tr>
<tr>
<td class="name"><code>updateInterval</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
500
</td>
<td class="description last">
<p>The time in milliseconds to update the display of the timer. Default is 500 milliseconds.</p>
</td>
</tr>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the timer that are NOT shared between all overlay timers. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the timer.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all timers have a shared class (e.g. {'className': 'bar'})
overlay.addTimer(Date.now() + 2211632704000, 500, {'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;time id="bm-timer-dh8fhw80" class="bar" datetime="PT27H34M56S" data-end-date="1771749296000">27:34:56&lt;/div>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addTr"><span class="type-signature"></span>addTr<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds a table row to the overlay.
This <code>tr</code> element will have properties shared between all <code>tr</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line843">line 843</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>tr</code> that are NOT shared between all overlay <code>tr</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>tr</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;tr> elements have a shared class (e.g. {'className': 'bar'})
overlay.addTr({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;tr id="foo" class="bar">Foobar.&lt;/tr>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="addUl"><span class="type-signature"></span>addUl<span class="signature">(additionalProperties<span class="signature-attributes">opt</span>, callback<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Adds an unordered list to the overlay.
This <code>ul</code> element will have properties shared between all <code>ul</code> elements in the overlay.
You can override the shared properties by using a callback.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line643">line 643</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>additionalProperties</code></td>
<td class="type">
<span class="param-type"><code>Object.&lt;string, any></code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
{}
</td>
<td class="description last">
<p>The DOM properties of the <code>ul</code> that are NOT shared between all overlay <code>ul</code> elements. These should be camelCase.</p>
</td>
</tr>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>function</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
()=>{}
</td>
<td class="description last">
<p>Additional JS modification to the <code>ul</code>.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>// Assume all &lt;ul> elements have a shared class (e.g. {'className': 'bar'})
overlay.addUl({'id': 'foo', 'textContent': 'Foobar.'}).buildOverlay(document.body);
// Output:
// (Assume &lt;body> already exists in the webpage)
&lt;body>
&lt;ul id="foo" class="bar">Foobar.&lt;/ul>
&lt;/body></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="base64ToUint8"><span class="type-signature"></span>base64ToUint8<span class="signature">(base64)</span><span class="type-signature"> &rarr; {Uint8Array}</span></h4>
<div class="description">
<p>Decodes a base 64 encoded Uint8 array using the browser's built-in ASCII to binary function</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.72.9</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line259">line 259</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>base64</code></td>
<td class="type">
<span class="param-type"><code>Uint8Array</code></span>
</td>
<td class="description last">
<p>The base 64 encoded Uint8Array to convert</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Uint8Array</code></span>
</dd>
</dl>
<div class="param-desc">
<p>The decoded Uint8Array</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="buildElement"><span class="type-signature"></span>buildElement<span class="signature">()</span><span class="type-signature"> &rarr; {<a href="Overlay.html">Overlay</a>}</span></h4>
<div class="description">
<p>Finishes building an element.
Call this after you are finished adding children.
If the element will have no children, call it anyways.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line141">line 141</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Overlay class instance (this)</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>overlay
.addDiv()
.addHeader(1).buildElement() // Breaks out of the &lt;h1>
.addP().buildElement() // Breaks out of the &lt;p>
.buildElement() // Breaks out of the &lt;div>
.addHr() // Since there are no more elements, calling buildElement() is optional
.buildOverlay(document.body);</code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="buildHighlight"><span class="type-signature"></span>buildHighlight<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Builds the highlight section of the window.
This should be overriden by <a href="SettingsManager.html">SettingsManager</a></p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.11</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowSettings.js.html">WindowSettings.js</a>, <a href="WindowSettings.js.html#line86">line 86</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildHighlight"><span class="type-signature"></span>buildHighlight<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Builds the &quot;highlight&quot; category of the settings window</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.18</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="settingsManager.js.html">settingsManager.js</a>, <a href="settingsManager.js.html#line89">line 89</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li>WindowSettings#buildHighlight</li>
</ul>
</dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildOverlay"><span class="type-signature"></span>buildOverlay<span class="signature">(parent)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Finishes building the overlay and displays it.
Call this when you are done chaining methods.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line160">line 160</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>parent</code></td>
<td class="type">
<span class="param-type"><code>HTMLElement</code></span>
</td>
<td class="description last">
<p>The parent HTMLElement this overlay should be appended to as a child.</p>
</td>
</tr>
</tbody>
</table>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>overlay
.addDiv()
.addP().buildElement()
.buildElement()
.buildOverlay(document.body); // Adds DOM structure to document body
// &lt;div>&lt;p>&lt;/p>&lt;/div></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="buildTemplate"><span class="type-signature"></span>buildTemplate<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Builds the template section of the window.
This should be overriden by <a href="SettingsManager.html">SettingsManager</a></p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.68</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowSettings.js.html">WindowSettings.js</a>, <a href="WindowSettings.js.html#line94">line 94</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildTemplate"><span class="type-signature"></span>buildTemplate<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Build the &quot;template&quot; category of settings window</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.68</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="settingsManager.js.html">settingsManager.js</a>, <a href="settingsManager.js.html#line314">line 314</a>
</li></ul></dd>
<dt class="tag-see">See:</dt>
<dd class="tag-see">
<ul>
<li>WindowSettings#buildTemplate</li>
</ul>
</dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindow"><span class="type-signature"></span>buildWindow<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Creates the main Blue Marble window.
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.58.3</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowMain.js.html">WindowMain.js</a>, <a href="WindowMain.js.html#line33">line 33</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindow"><span class="type-signature"></span>buildWindow<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Spawns a Color Filter window.
If another color filter window already exists, we DON'T spawn another!
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.149</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowFilter.js.html">WindowFilter.js</a>, <a href="WindowFilter.js.html#line59">line 59</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindow"><span class="type-signature">(async) </span>buildWindow<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Spawns a telemetry window.
If another telemetry window already exists, we DON'T spawn another!
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.339</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowTelemetry.js.html">WindowTelemetry.js</a>, <a href="WindowTelemetry.js.html#line36">line 36</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindow"><span class="type-signature"></span>buildWindow<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Spawns a Template Wizard window.
If another template wizard window already exists, we DON'T spawn another!
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.434</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowWizard.js.html">WindowWizard.js</a>, <a href="WindowWizard.js.html#line43">line 43</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindow"><span class="type-signature"></span>buildWindow<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Spawns a Credits window.
If another credits window already exists, we DON'T spawn another!
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.90.9</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowCredits.js.html">WindowCredits.js</a>, <a href="WindowCredits.js.html#line29">line 29</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindow"><span class="type-signature"></span>buildWindow<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Spawns a Settings window.
If another settings window already exists, we DON'T spawn another!
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.11</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowSettings.js.html">WindowSettings.js</a>, <a href="WindowSettings.js.html#line30">line 30</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="buildWindowed"><span class="type-signature"></span>buildWindowed<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Spawns a windowed Color Filter window.
If another color filter window already exists, we DON'T spawn another!
Parent/child relationships in the DOM structure below are indicated by indentation.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.90.35</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowFilter.js.html">WindowFilter.js</a>, <a href="WindowFilter.js.html#line201">line 201</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="calculateCanvasTransparency"><span class="type-signature"></span>calculateCanvasTransparency<span class="signature">(param)</span><span class="type-signature"> &rarr; {boolean}</span></h4>
<div class="description">
<p>Detects if the canvas is transparent.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.75</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Template.js.html">Template.js</a>, <a href="Template.js.html#line248">line 248</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>param</code></td>
<td class="type">
<span class="param-type"><code>Object</code></span>
</td>
<td class="description last">
<p>Object that contains the parameters for the function</p>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>bitmap</code></td>
<td class="type">
<span class="param-type"><code>ImageBitmap</code></span>
</td>
<td class="description last">
<p>The bitmap template image</p>
</td>
</tr>
<tr>
<td class="name"><code>bitmapParams</code></td>
<td class="type">
<span class="param-type"><code>Array.&lt;number, number, number, number></code></span>
</td>
<td class="description last">
<p>The parameters to obtain the template tile image from the bitmap</p>
</td>
</tr>
<tr>
<td class="name"><code>transCanvas</code></td>
<td class="type">
<span class="param-type"><code>OffscreenCanvas</code></span>
|
<span class="param-type"><code>HTMLCanvasElement</code></span>
</td>
<td class="description last">
<p>The canvas to draw to in order to calculate this</p>
</td>
</tr>
<tr>
<td class="name"><code>transContext</code></td>
<td class="type">
<span class="param-type"><code>OffscreenCanvasRenderingContext2D</code></span>
</td>
<td class="description last">
<p>The context for the transparent canvas to draw to</p>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>boolean</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Is the canvas transparent? If transparent, then <code>true</code> is returned. Otherwise, <code>false</code>.</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="calculateCoordsFromChunked"><span class="type-signature"></span>calculateCoordsFromChunked<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Calculates top left coordinate of template.
It uses <code>Template.chunked</code> to update <code>Template.coords</code></p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.504</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Template.js.html">Template.js</a>, <a href="Template.js.html#line347">line 347</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="calculateRelativeLuminance"><span class="type-signature"></span>calculateRelativeLuminance<span class="signature">(array)</span><span class="type-signature"> &rarr; {Number}</span></h4>
<div class="description">
<p>Calcualtes the relative luminance of an RGB value</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.180</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line306">line 306</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>array</code></td>
<td class="type">
<span class="param-type"><code>Array.&lt;Number, Number, Number></code></span>
</td>
<td class="description last">
<p>The RGB values as an array</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Number</code></span>
</dd>
</dl>
<div class="param-desc">
<p>The relative luminance as a Number</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="colorpaletteForBlueMarble"><span class="type-signature"></span>colorpaletteForBlueMarble<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Processes the palette used for Blue Marble.
Each ID is sorted from smallest to largest.
Color ID's are integers, which can be negative.
Custom colors have been added for the Blue Marble purposes.
Wplace palette colors have not been modified.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.6</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line365">line 365</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="consoleError"><span class="type-signature"></span>consoleError<span class="signature">(&hellip;args)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Bypasses terser's stripping of console function calls.
This is so the non-obfuscated code will contain debugging console calls, but the distributed version won't.
However, the distributed version needs to call the console somehow, so this wrapper function is how.
This is the same as <code>console.error()</code>.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.58.13</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line169">line 169</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>args</code></td>
<td class="type">
<span class="param-type"><code>any</code></span>
</td>
<td class="attributes">
&lt;repeatable><br>
</td>
<td class="description last">
<p>Arguments to be passed into the <code>error()</code> function of the Console</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="consoleLog"><span class="type-signature"></span>consoleLog<span class="signature">(&hellip;args)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Bypasses terser's stripping of console function calls.
This is so the non-obfuscated code will contain debugging console calls, but the distributed version won't.
However, the distributed version needs to call the console somehow, so this wrapper function is how.
This is the same as <code>console.log()</code>.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.58.9</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line160">line 160</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>args</code></td>
<td class="type">
<span class="param-type"><code>any</code></span>
</td>
<td class="attributes">
&lt;repeatable><br>
</td>
<td class="description last">
<p>Arguments to be passed into the <code>log()</code> function of the Console</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="consoleWarn"><span class="type-signature"></span>consoleWarn<span class="signature">(&hellip;args)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Bypasses terser's stripping of console function calls.
This is so the non-obfuscated code will contain debugging console calls, but the distributed version won't.
However, the distributed version needs to call the console somehow, so this wrapper function is how.
This is the same as <code>console.warn()</code>.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.58.13</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line178">line 178</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>args</code></td>
<td class="type">
<span class="param-type"><code>any</code></span>
</td>
<td class="attributes">
&lt;repeatable><br>
</td>
<td class="description last">
<p>Arguments to be passed into the <code>warn()</code> function of the Console</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="convertTemplateToBlob"><span class="type-signature">(async) </span>convertTemplateToBlob<span class="signature">()</span><span class="type-signature"> &rarr; {Promise.&lt;Blob>}</span></h4>
<div class="description">
<p>Converts a Template class instance into a Blob.
Specifically, this takes <code>Template.chunked</code> and converts it to a Blob.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.504</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line341">line 341</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Promise.&lt;Blob></code></span>
</dd>
</dl>
<div class="param-desc">
<p>A Promise of a Blob PNG image of the template</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="createConfetti"><span class="type-signature"></span>createConfetti<span class="signature">(parentElement)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Immedently creates confetti inside the parent element.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.356</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="confetttiManager.js.html">confetttiManager.js</a>, <a href="confetttiManager.js.html#line26">line 26</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>parentElement</code></td>
<td class="type">
<span class="param-type"><code>HTMLElement</code></span>
</td>
<td class="description last">
<p>The parent element to create confetti inside of</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="createJSON"><span class="type-signature">(async) </span>createJSON<span class="signature">()</span><span class="type-signature"> &rarr; {Object}</span></h4>
<div class="description">
<p>Creates the JSON object to store templates in</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.65.4</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line139">line 139</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Object</code></span>
</dd>
</dl>
<div class="param-desc">
<p>The JSON object</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="createObserverBody"><span class="type-signature"></span>createObserverBody<span class="signature">(target)</span><span class="type-signature"> &rarr; {<a href="Observers.html">Observers</a>}</span></h4>
<div class="description">
<p>Creates the MutationObserver for document.body</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="observers.js.html">observers.js</a>, <a href="observers.js.html#line22">line 22</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>target</code></td>
<td class="type">
<span class="param-type"><code>HTMLElement</code></span>
</td>
<td class="description last">
<p>Targeted element to watch</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code><a href="Observers.html">Observers</a></code></span>
</dd>
</dl>
<div class="param-desc">
<p>this (Observers class)</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="createTemplate"><span class="type-signature">(async) </span>createTemplate<span class="signature">(blob, name, coords)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Creates the template from the inputed file blob</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.65.77</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line154">line 154</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>blob</code></td>
<td class="type">
<span class="param-type"><code>File</code></span>
</td>
<td class="description last">
<p>The file blob to create a template from</p>
</td>
</tr>
<tr>
<td class="name"><code>name</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The display name of the template</p>
</td>
</tr>
<tr>
<td class="name"><code>coords</code></td>
<td class="type">
<span class="param-type"><code>Array.&lt;number, number, number, number></code></span>
</td>
<td class="description last">
<p>The coordinates of the top left corner of the template</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="createTemplateTiles"><span class="type-signature">(async) </span>createTemplateTiles<span class="signature">(tileSize, paletteBM, shouldSkipTransTiles, shouldAggSkipTransTiles)</span><span class="type-signature"> &rarr; {Object}</span></h4>
<div class="description">
<p>Creates chunks of the template for each tile.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.65.4</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Template.js.html">Template.js</a>, <a href="Template.js.html#line59">line 59</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>tileSize</code></td>
<td class="type">
<span class="param-type"><code>Number</code></span>
</td>
<td class="description last">
<p>Size of the tile as determined by templateManager</p>
</td>
</tr>
<tr>
<td class="name"><code>paletteBM</code></td>
<td class="type">
<span class="param-type"><code>Object</code></span>
</td>
<td class="description last">
<p>An collection of Uint32Arrays containing the palette BM uses</p>
</td>
</tr>
<tr>
<td class="name"><code>shouldSkipTransTiles</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="description last">
<p>Should transparent tiles be skipped over when creating the template?</p>
</td>
</tr>
<tr>
<td class="name"><code>shouldAggSkipTransTiles</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="description last">
<p>Should transparent tiles be aggressively skipped over when creating the template?</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Object</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Collection of template bitmaps &amp; buffers organized by tile coordinates</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="deleteTemplate"><span class="type-signature"></span>deleteTemplate<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Deletes a template from the JSON object.
Also delete's the corrosponding <a href="Template.html">Template</a> class instance</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line246">line 246</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="disableTemplate"><span class="type-signature">(async) </span>disableTemplate<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Disables the template from view</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line252">line 252</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="downloadAllTemplates"><span class="type-signature">(async) </span>downloadAllTemplates<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Downloads all templates loaded.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.499</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line263">line 263</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="downloadAllTemplatesFromStorage"><span class="type-signature">(async) </span>downloadAllTemplatesFromStorage<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Downloads all templates from Blue Marble's template storage.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.474</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line281">line 281</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="downloadTemplate"><span class="type-signature">(async) </span>downloadTemplate<span class="signature">(template)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Downloads the template passed-in.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.499</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line315">line 315</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>template</code></td>
<td class="type">
<span class="param-type"><code><a href="Template.html">Template</a></code></span>
</td>
<td class="description last">
<p>The template class instance to download</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="drawTemplateOnTile"><span class="type-signature">(async) </span>drawTemplateOnTile<span class="signature">(tileBlob, tileCoords)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Draws all templates on the specified tile.
This method handles the rendering of template overlays on individual tiles.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.65.77</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line458">line 458</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>tileBlob</code></td>
<td class="type">
<span class="param-type"><code>File</code></span>
</td>
<td class="description last">
<p>The pixels that are placed on a tile</p>
</td>
</tr>
<tr>
<td class="name"><code>tileCoords</code></td>
<td class="type">
<span class="param-type"><code>Array.&lt;number></code></span>
</td>
<td class="description last">
<p>The tile coordinates [x, y]</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="encodedToNumber"><span class="type-signature"></span>encodedToNumber<span class="signature">(encoded, encoding)</span><span class="type-signature"> &rarr; {number}</span></h4>
<div class="description">
<p>Decodes a number from a custom encoded string.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.448</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line220">line 220</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>encoded</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The encoded string</p>
</td>
</tr>
<tr>
<td class="name"><code>encoding</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The characters to use when decoding</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>number</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Decoded number</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>const encode = '012abcABC'; // Base 9
console.log(encodedToNumber('0', encode)); // 0
console.log(encodedToNumber('c', encode)); // 5
console.log(encodedToNumber('1A', encode)); // 15
console.log(encodedToNumber('1BCaA', encode)); // 12345</code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="escapeHTML"><span class="type-signature"></span>escapeHTML<span class="signature">(text)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Sanitizes HTML to display as plain-text.
This prevents some Cross Site Scripting (XSS).
This is handy when you are displaying user-made data, and you <em>must</em> use innerHTML.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.44.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line124">line 124</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>text</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The text to sanitize</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>HTML escaped string</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>const paragraph = document.createElement('p');
paragraph.innerHTML = escapeHTML('&lt;u>Foobar.&lt;/u>');
// Output:
// (Does not include the paragraph element)
// (Output is not HTML formatted)
&lt;p>
"&lt;u>Foobar.&lt;/u>"
&lt;/p></code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="getClipboardData"><span class="type-signature"></span>getClipboardData<span class="signature">(event<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Handles reading from the clipboard.
Assume this only returns text.
Assume this requires user input.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.426</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line275">line 275</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>event</code></td>
<td class="type">
<span class="param-type"><code>ClipboardEvent</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">
<p>(Optional) The clipboard event that triggered this to run</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>The clipboard data as a string</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="getObserverBody"><span class="type-signature"></span>getObserverBody<span class="signature">()</span><span class="type-signature"> &rarr; {MutationObserver}</span></h4>
<div class="description">
<p>Retrieves the MutationObserver that watches document.body</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="observers.js.html">observers.js</a>, <a href="observers.js.html#line46">line 46</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>MutationObserver</code></span>
</dd>
</dl>
</div>
</div>
<div class="section-method">
<h4 class="name" id="getWplaceVersion"><span class="type-signature"></span>getWplaceVersion<span class="signature">()</span><span class="type-signature"> &rarr; {Date|undefined}</span></h4>
<div class="description">
<p>Returns a Date of when Wplace was last updated.
This is obtained from a certain DOM element which contains the version of Wplace.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.90.25</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line7">line 7</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Date</code></span>
|
<span class="param-type"><code>undefined</code></span>
</dd>
</dl>
<div class="param-desc">
<ul>
<li>The date that Wplace was last updated, as a Date.</li>
</ul>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="handleDisplayError"><span class="type-signature"></span>handleDisplayError<span class="signature">(text)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Handles error display.
This will output plain text into the output Status box.
Additionally, this will output an error to the console.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.41.6</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1432">line 1432</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>text</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The error text to display.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="handleDisplayStatus"><span class="type-signature"></span>handleDisplayStatus<span class="signature">(text)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Handles status display.
This will output plain text into the output Status box.
Additionally, this will output an info message to the console.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.58.4</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1420">line 1420</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>text</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The status text to display.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="handleDrag"><span class="type-signature"></span>handleDrag<span class="signature">(moveMeSelector, iMoveThingsSelector)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Handles dragging of the overlay.
Uses requestAnimationFrame for smooth animations and GPU-accelerated transforms.
Make sure to use the appropriate CSS selectors.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.8.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1281">line 1281</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>moveMeSelector</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The element to be moved</p>
</td>
</tr>
<tr>
<td class="name"><code>iMoveThingsSelector</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The drag handle element</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="handleMinimization"><span class="type-signature"></span>handleMinimization<span class="signature">(button)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Handles the minimization logic for windows spawned by Blue Marble</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.142</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1211">line 1211</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>button</code></td>
<td class="type">
<span class="param-type"><code>HTMLButtonElement</code></span>
</td>
<td class="description last">
<p>The UI button that triggered this minimization event</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="hexToRGB"><span class="type-signature"></span>hexToRGB<span class="signature">(hex)</span><span class="type-signature"> &rarr; {Array.&lt;number, number, number>}</span></h4>
<div class="description">
<p>Converts a hexdecimal color to an RGB color.
Alpha channel not supported.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.90.31</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line337">line 337</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>hex</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>Hex color code as string</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Array.&lt;number, number, number></code></span>
</dd>
</dl>
<div class="param-desc">
<p>RGB color as an Array</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="importJSON"><span class="type-signature"></span>importJSON<span class="signature">(json)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Imports the JSON object, and appends it to any JSON object already loaded</p>
</div>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line651">line 651</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>json</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The JSON string to parse</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="inject"><span class="type-signature"></span>inject<span class="signature">(callback)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Injects code into the client
This code will execute outside of TamperMonkey's sandbox</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.11.15</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main.js</a>, <a href="main.js.html#line22">line 22</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>callback</code></td>
<td class="type">
<span class="param-type"><code>*</code></span>
</td>
<td class="description last">
<p>The code to execute</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="localizeDate"><span class="type-signature"></span>localizeDate<span class="signature">(date)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Returns the localized date format.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.472</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line67">line 67</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>date</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The date to localize</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Localized date as a string</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="localizeDuration"><span class="type-signature"></span>localizeDuration<span class="signature">(durationTotalMs)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Returns the localized duration format.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.472</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line83">line 83</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>durationTotalMs</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The duration to localize, in milliseconds</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Localized duration as a string</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="localizeNumber"><span class="type-signature"></span>localizeNumber<span class="signature">(number)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Returns the localized number format.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.472</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line43">line 43</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>number</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The number to localize</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Localized number as a string</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="localizePercent"><span class="type-signature"></span>localizePercent<span class="signature">(percent)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Returns the localized percentage format.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.472</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line53">line 53</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>percent</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The percentage to localize</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Localized percentage as a string</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="negativeSafeModulo"><span class="type-signature"></span>negativeSafeModulo<span class="signature">(a, b)</span><span class="type-signature"> &rarr; {number}</span></h4>
<div class="description">
<p>Negative-Safe Modulo. You can pass negative numbers into this.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.55.8</li></ul></dd>
<dt class="tag-author">Author:</dt>
<dd class="tag-author">
<ul>
<li>osuplace</li>
</ul>
</dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line149">line 149</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>a</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The first number</p>
</td>
</tr>
<tr>
<td class="name"><code>b</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The second number</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>number</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Result</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="numberToEncoded"><span class="type-signature"></span>numberToEncoded<span class="signature">(number, encoding)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Encodes a number into a custom encoded string.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.65.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line192">line 192</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>number</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>The number to encode</p>
</td>
</tr>
<tr>
<td class="name"><code>encoding</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last">
<p>The characters to use when encoding</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Encoded string</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>const encode = '012abcABC'; // Base 9
console.log(numberToEncoded(0, encode)); // 0
console.log(numberToEncoded(5, encode)); // c
console.log(numberToEncoded(15, encode)); // 1A
console.log(numberToEncoded(12345, encode)); // 1BCaA</code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="observe"><span class="type-signature"></span>observe<span class="signature">(observer, watchChildList, watchSubtree)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Observe a MutationObserver</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.43.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="observers.js.html">observers.js</a>, <a href="observers.js.html#line56">line 56</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>observer</code></td>
<td class="type">
<span class="param-type"><code>MutationObserver</code></span>
</td>
<td class="default">
</td>
<td class="description last">
<p>The MutationObserver</p>
</td>
</tr>
<tr>
<td class="name"><code>watchChildList</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="default">
false
</td>
<td class="description last">
<p>(Optional) Should childList be watched? False by default</p>
</td>
</tr>
<tr>
<td class="name"><code>watchSubtree</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="default">
false
</td>
<td class="description last">
<p>(Optional) Should childList be watched? False by default</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="observeBlack"><span class="type-signature"></span>observeBlack<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Observe the black color, and add the &quot;Move&quot; button.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.66.3</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="main.js.html">main.js</a>, <a href="main.js.html#line250">line 250</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="rgbToHex"><span class="type-signature"></span>rgbToHex<span class="signature">(red, green<span class="signature-attributes">opt</span>, blue<span class="signature-attributes">opt</span>)</span><span class="type-signature"> &rarr; {string}</span></h4>
<div class="description">
<p>Converts an RGB color to hexdecimal color.
Octothorpe not included.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.90.31</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line326">line 326</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>red</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
|
<span class="param-type"><code>Array.&lt;number, number, number></code></span>
</td>
<td class="attributes">
</td>
<td class="description last">
<p>The Red channel of the RGB color, or all three channels as an Array</p>
</td>
</tr>
<tr>
<td class="name"><code>green</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">
<p>The Green channel of the RGB color</p>
</td>
</tr>
<tr>
<td class="name"><code>blue</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">
<p>The Blue channel of the RGB color</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>string</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Hex color code as string</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="selectAllCoordinateInputs"><span class="type-signature"></span>selectAllCoordinateInputs<span class="signature">()</span><span class="type-signature"> &rarr; {Array.&lt;Element>}</span></h4>
<div class="description">
<p>Returns the coordinate input fields</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.74.0</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line347">line 347</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Array.&lt;Element></code></span>
</dd>
</dl>
<div class="param-desc">
<p>The 4 coordinate Inputs</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="serverTPtoDisplayTP"><span class="type-signature"></span>serverTPtoDisplayTP<span class="signature">(tile, pixel)</span><span class="type-signature"> &rarr; {Array.&lt;number, number>}</span></h4>
<div class="description">
<p>Converts the server tile-pixel coordinate system to the displayed tile-pixel coordinate system.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.42.4</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line138">line 138</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>tile</code></td>
<td class="type">
<span class="param-type"><code>Array.&lt;string, string></code></span>
</td>
<td class="description last">
<p>The tile to convert</p>
</td>
</tr>
<tr>
<td class="name"><code>pixel</code></td>
<td class="type">
<span class="param-type"><code>Array.&lt;string, string></code></span>
</td>
<td class="description last">
<p>The pixel to convert</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Array.&lt;number, number></code></span>
</dd>
</dl>
<div class="param-desc">
<p>Tile and pixel coordinate pair</p>
</div>
</div>
<div class="section-examples">
<h5>Example</h5>
<pre class="prettyprint"><code>console.log(serverTPtoDisplayTP(['12', '123'], ['34', '567'])); // [34, 3567]</code></pre>
</div>
</div>
<div class="section-method">
<h4 class="name" id="setApiManager"><span class="type-signature"></span>setApiManager<span class="signature">(apiManager)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Populates the apiManager variable with the apiManager class.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.41.4</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line55">line 55</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>apiManager</code></td>
<td class="type">
<span class="param-type"><code><a href="ApiManager.html">ApiManager</a></code></span>
</td>
<td class="description last">
<p>The apiManager class instance</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="setSettingsManager"><span class="type-signature"></span>setSettingsManager<span class="signature">(settingsManager)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Populates the settingsManager variable with the settingsManager class.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.11</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line61">line 61</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>settingsManager</code></td>
<td class="type">
<span class="param-type"><code><a href="SettingsManager.html">SettingsManager</a></code></span>
</td>
<td class="description last">
<p>The settingsManager class instance</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="setSettingsManager"><span class="type-signature"></span>setSettingsManager<span class="signature">(settingsManager)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Updates the stored instance of the SettingsManager.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.54</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line131">line 131</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>settingsManager</code></td>
<td class="type">
<span class="param-type"><code><a href="SettingsManager.html">SettingsManager</a></code></span>
</td>
<td class="description last">
<p>The settings manager instance</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="setTemplatesShouldBeDrawn"><span class="type-signature"></span>setTemplatesShouldBeDrawn<span class="signature">(value)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Sets the <code>templatesShouldBeDrawn</code> boolean to a value.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.73.7</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line805">line 805</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>value</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="description last">
<p>The value to set the boolean to</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="setWindowMain"><span class="type-signature"></span>setWindowMain<span class="signature">(windowMain)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Updates the stored instance of the main window.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.54</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="templateManager.js.html">templateManager.js</a>, <a href="templateManager.js.html#line123">line 123</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>windowMain</code></td>
<td class="type">
<span class="param-type"><code><a href="WindowMain.html">WindowMain</a></code></span>
</td>
<td class="description last">
<p>The main window instance</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="sleep"><span class="type-signature"></span>sleep<span class="signature">(time)</span><span class="type-signature"> &rarr; {Promise}</span></h4>
<div class="description">
<p>Halts execution of this specific userscript, for the specified time.
This will not block the thread.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.483</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line22">line 22</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>time</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last">
<p>Time to wait in milliseconds</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Promise</code></span>
</dd>
</dl>
<div class="param-desc">
<p>Promise of a setTimeout()</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="spontaneousResponseListener"><span class="type-signature"></span>spontaneousResponseListener<span class="signature">(overlay)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Determines if the spontaneously received response is something we want.
Otherwise, we can ignore it.
Note: Due to aggressive compression, make your calls like <code>data['jsonData']['name']</code> instead of <code>data.jsonData.name</code></p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.11.1</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="apiManager.js.html">apiManager.js</a>, <a href="apiManager.js.html#line31">line 31</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>overlay</code></td>
<td class="type">
<span class="param-type"><code><a href="Overlay.html">Overlay</a></code></span>
</td>
<td class="description last">
<p>The Overlay class instance</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="toggleFlag"><span class="type-signature"></span>toggleFlag<span class="signature">(flagName, state<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Toggles a boolean flag to the state that was passed in.
If no state was passed in, the flag will flip to the opposite state.
The existence of the flag determines its state. If it exists, it is <code>true</code>.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.60</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="settingsManager.js.html">settingsManager.js</a>, <a href="settingsManager.js.html#line69">line 69</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>flagName</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="attributes">
</td>
<td class="description last">
<p>The name of the flag to toggle</p>
</td>
</tr>
<tr>
<td class="name"><code>state</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="description last">
<p>(Optional) The state to change the flag to</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="uint8ToBase64"><span class="type-signature"></span>uint8ToBase64<span class="signature">(uint8)</span><span class="type-signature"> &rarr; {Uint8Array}</span></h4>
<div class="description">
<p>Converts a Uint8 array to base64 using the browser's built-in binary to ASCII function</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.72.9</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line246">line 246</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>uint8</code></td>
<td class="type">
<span class="param-type"><code>Uint8Array</code></span>
</td>
<td class="description last">
<p>The Uint8Array to convert</p>
</td>
</tr>
</tbody>
</table>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Uint8Array</code></span>
</dd>
</dl>
<div class="param-desc">
<p>The base64 encoded Uint8Array</p>
</div>
</div>
</div>
<div class="section-method">
<h4 class="name" id="updateColorList"><span class="type-signature"></span>updateColorList<span class="signature">()</span><span class="type-signature"> &rarr; {Object.&lt;number, <a href="global.html#ColorData">ColorData</a>>}</span></h4>
<div class="description">
<p>Updates the information inside the colors in the color list.
If the color list does not exist yet, it returns the color information instead.
This assumes the information inside each element is the same between fullscreen and windowed mode.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.90.60</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowFilter.js.html">WindowFilter.js</a>, <a href="WindowFilter.js.html#line541">line 541</a>
</li></ul></dd>
</dl>
<div class="section-returns">
<h5>Returns:</h5>
<dl class="param-type">
<dt>
Type:
</dt>
<dd>
<span class="param-type"><code>Object.&lt;number, <a href="global.html#ColorData">ColorData</a>></code></span>
</dd>
</dl>
</div>
</div>
<div class="section-method">
<h4 class="name" id="updateInnerHTML"><span class="type-signature"></span>updateInnerHTML<span class="signature">(id, html, doSafe<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>Updates the inner HTML of the element.
The element is discovered by it's id.
If the element is an <code>input</code>, it will modify the value attribute instead.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.24.2</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="Overlay.js.html">Overlay.js</a>, <a href="Overlay.js.html#line1188">line 1188</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>id</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">
<p>The ID of the element to change</p>
</td>
</tr>
<tr>
<td class="name"><code>html</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">
<p>The HTML/text to update with</p>
</td>
</tr>
<tr>
<td class="name"><code>doSafe</code></td>
<td class="type">
<span class="param-type"><code>boolean</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
false
</td>
<td class="description last">
<p>(Optional) Should <code>textContent</code> be used instead of <code>innerHTML</code> to avoid XSS? False by default</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="section-method">
<h4 class="name" id="updateUserStorage"><span class="type-signature">(async) </span>updateUserStorage<span class="signature">()</span><span class="type-signature"></span></h4>
<div class="description">
<p>Updates the user settings in userscript storage</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.91.39</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="settingsManager.js.html">settingsManager.js</a>, <a href="settingsManager.js.html#line47">line 47</a>
</li></ul></dd>
</dl>
</div>
<div class="section-method">
<h4 class="name" id="viewCanvasInNewTab"><span class="type-signature"></span>viewCanvasInNewTab<span class="signature">(canvas, lifeDuration<span class="signature-attributes">opt</span>)</span><span class="type-signature"></span></h4>
<div class="description">
<p>View the canvas in a new tab.</p>
</div>
<dl class="details">
<dt class="tag-since">Since:</dt>
<dd class="tag-since"><ul class="dummy"><li>0.88.484</li></ul></dd>
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="utils.js.html">utils.js</a>, <a href="utils.js.html#line31">line 31</a>
</li></ul></dd>
</dl>
<h5>Parameters:</h5>
<table class="params">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Attributes</th>
<th>Default</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>canvas</code></td>
<td class="type">
<span class="param-type"><code>HTMLCanvasElement</code></span>
|
<span class="param-type"><code>OffscreenCanvas</code></span>
</td>
<td class="attributes">
</td>
<td class="default">
</td>
<td class="description last">
<p>The canvas to view</p>
</td>
</tr>
<tr>
<td class="name"><code>lifeDuration</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="attributes">
&lt;optional><br>
</td>
<td class="default">
60_000
</td>
<td class="description last">
<p>(Optional) The lifetime of the URL blob in milliseconds</p>
</td>
</tr>
</tbody>
</table>
</div>
<h3 class="subsection-title">Type Definitions</h3>
<div class="section-members">
<h4 class="name" id="ColorData">ColorData</h4>
<div class="description">
<p>The information about a specific color on the palette.</p>
</div>
<h5 class="subsection-title">Properties:</h5>
<table class="props">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th class="last">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td class="name"><code>colorTotal</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
|
<span class="param-type"><code>string</code></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>colorTotalLocalized</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>colorCorrect</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
|
<span class="param-type"><code>string</code></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>colorCorrectLocalized</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>colorPercent</code></td>
<td class="type">
<span class="param-type"><code>string</code></span>
</td>
<td class="description last"></td>
</tr>
<tr>
<td class="name"><code>colorIncorrect</code></td>
<td class="type">
<span class="param-type"><code>number</code></span>
</td>
<td class="description last"></td>
</tr>
</tbody>
</table>
<dl class="details">
<dt class="tag-source">Source:</dt>
<dd class="tag-source"><ul class="dummy"><li>
<a href="WindowFilter.js.html">WindowFilter.js</a>, <a href="WindowFilter.js.html#line525">line 525</a>
</li></ul></dd>
</dl>
<h5>Type:</h5>
<ul>
<li>
<span class="param-type"><code>Object</code></span>
</li>
</ul>
</div>
</article>
</section>
</div>
<br class="clear">
<footer>
Generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.5</a> on Tue Mar 17 2026 01:31:43 GMT+0000 (Coordinated Universal Time) using the Minami theme.
</footer>
<script>prettyPrint();</script>
<script src="scripts/linenumber.js"></script>
</body>
</html>