diff options
| -rw-r--r-- | .babelrc | 9 | ||||
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | client.html | 74 | ||||
| -rw-r--r-- | client.js | 648 | ||||
| -rw-r--r-- | package-lock.json | 8277 | ||||
| -rw-r--r-- | package.json | 32 | ||||
| -rw-r--r-- | webAO/client.b.js | 2 | ||||
| -rw-r--r-- | webAO/client.b.js.map | 1 | ||||
| -rw-r--r-- | webAO/client.css (renamed from client.css) | 200 | ||||
| -rw-r--r-- | webAO/client.html | 110 | ||||
| -rw-r--r-- | webAO/client.js | 1087 | ||||
| -rw-r--r-- | webAO/golden/LICENSE.txt | 21 | ||||
| -rw-r--r-- | webAO/golden/css/goldenlayout.css | 525 | ||||
| -rw-r--r-- | webAO/golden/css/goldenlayout.css.map | 1 | ||||
| -rw-r--r-- | webAO/golden/js/goldenlayout.js | 2 | ||||
| -rw-r--r-- | webAO/golden/js/goldenlayout.js.map | 1 | ||||
| -rw-r--r-- | webAO/images/background.png (renamed from images/background.png) | bin | 992422 -> 992422 bytes | |||
| -rw-r--r-- | webAO/images/button.png (renamed from images/button.png) | bin | 197 -> 197 bytes | |||
| -rw-r--r-- | webAO/images/buttonH.png (renamed from images/buttonH.png) | bin | 193 -> 193 bytes | |||
| -rw-r--r-- | webAO/images/desc.png (renamed from images/desc.png) | bin | 50785 -> 50785 bytes | |||
| -rw-r--r-- | webAO/images/logo-neo.png | bin | 0 -> 35871 bytes | |||
| -rw-r--r-- | webAO/images/logo-new.png | bin | 0 -> 29302 bytes | |||
| -rw-r--r-- | webAO/images/logo.png (renamed from images/logo.png) | bin | 9214 -> 9214 bytes | |||
| -rw-r--r-- | webAO/images/sel.png (renamed from images/sel.png) | bin | 781 -> 781 bytes | |||
| -rw-r--r-- | webAO/master.html (renamed from master.html) | 0 | ||||
| -rw-r--r-- | webAO/master.js (renamed from master.js) | 0 | ||||
| -rw-r--r-- | webAO/misc/advocat.png (renamed from misc/advocat.png) | bin | 598 -> 598 bytes | |||
| -rw-r--r-- | webAO/misc/chat2.png (renamed from misc/chat2.png) | bin | 44883 -> 44883 bytes | |||
| -rw-r--r-- | webAO/misc/holdit.png (renamed from misc/holdit.png) | bin | 1316 -> 1316 bytes | |||
| -rw-r--r-- | webAO/misc/objection.png (renamed from misc/objection.png) | bin | 1383 -> 1383 bytes | |||
| -rw-r--r-- | webAO/misc/placeholder.gif (renamed from misc/placeholder.gif) | bin | 9168 -> 9168 bytes | |||
| -rw-r--r-- | webAO/misc/present.png (renamed from misc/present.png) | bin | 3035 -> 3035 bytes | |||
| -rw-r--r-- | webAO/misc/procuror.png (renamed from misc/procuror.png) | bin | 586 -> 586 bytes | |||
| -rw-r--r-- | webAO/misc/svidetel.png (renamed from misc/svidetel.png) | bin | 592 -> 592 bytes | |||
| -rw-r--r-- | webAO/misc/takethat.png (renamed from misc/takethat.png) | bin | 1340 -> 1340 bytes | |||
| -rw-r--r-- | webAO/misc/zdoh.png (renamed from misc/zdoh.png) | bin | 523 -> 523 bytes | |||
| -rw-r--r-- | webAO/stylesheet.css (renamed from stylesheet.css) | 0 | ||||
| -rw-r--r-- | webAO/ui.b.js | 2 | ||||
| -rw-r--r-- | webAO/ui.b.js.map | 1 | ||||
| -rw-r--r-- | webAO/ui.js | 96 | ||||
| -rw-r--r-- | webpack.config.js | 25 |
41 files changed, 10341 insertions, 774 deletions
diff --git a/.babelrc b/.babelrc new file mode 100644 index 0000000..5d36355 --- /dev/null +++ b/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": [ + ["env", { + "targets": { + "browsers": ["last 2 versions", "ie >= 11"] + } + }] + ] + }
\ No newline at end of file @@ -45,3 +45,4 @@ $RECYCLE.BIN/ Network Trash Folder Temporary Items .apdisk +node_modules
\ No newline at end of file diff --git a/client.html b/client.html deleted file mode 100644 index 85a9f06..0000000 --- a/client.html +++ /dev/null @@ -1,74 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <title>Attorney Online session</title> - <meta charset="utf-8"> - <link rel="stylesheet" type="text/css" href="client.css"> - <script src="client.js"></script> -</head> - -<body> - <span id="sound"></span> - <div id="client_loading"> - <h1 id="client_loadingtext">Loading</h1> - <button onclick='RetryButton()'>RETRY</button> - </div> - <div id="client_charselect"> - <button onclick="pickchar(1001)">SPECTATE</button> - <table id="client_chartable"> - </table> - </div> - <div id="client_wrapper"> - <div id="client_gamewindow"> - <img id="client_court" alt="Courtroom background" onerror="imgError(this);"> - <img id="client_char" alt="Character sprite" onerror="imgError(this);"> - <img id="client_bench" alt="Bench overlay"> - <img id="client_fg" alt="Various overlay" onerror="imgError(this);"> - <div id="client_name"> - <p>Dolan</p> - </div> - <div id="client_chat"> - <p id="client_inner_chat"></p> - </div> - </div> - <input id="client_inputbox" class="long" type="text" onKeyPress="onEnter(event)"> - <div id="client_emo"> - </div> - <br> - <div id="client_buttons"> - <img src="misc/holdit.png" id="button_1" alt="Hold it!" class="client_button" onclick="toggleshout(1)"> - <img src="misc/objection.png" id="button_2" alt="OBJECTION!" class="client_button" onclick="toggleshout(2)"> - <img src="misc/takethat.png" id="button_3" alt="Take That!" class="client_button" onclick="toggleshout(3)"> - <br> - <input type="checkbox" id="sendsfx" name="sendsfx" value="sendsfx"> - <label for="sendsfx">SFX</label> - </div> - </div> - <div id="client_settings"> - Music <input id="client_mvolume" class="long" type="range" min="0" max="100" value="80" onChange="changeMusicVolume()"> - SFX <input id="client_svolume" class="long" type="range" min="0" max="100" value="70" onChange="changeSFXVolume()"> - Blip <input id="client_bvolume" class="long" type="range" min="0" max="100" value="60" onChange="changeBlipVolume()"> - <input id="change_character" type="button" onClick="changeCharacter()" value="Change character"> - </div> - - <div id="client_chatlog"> - <div id="client_log"> - </div> - <div id="client_bars"> - <img class="client_defense" alt="Defense health background" id="client_defense_bg" src="misc/zdoh.png"> - <img class="client_defense" alt="Defense health" id="client_defense_hp" src="misc/advocat.png"> - - <img class="client_prosecutor" alt="Prosecution health background" id="client_prosecutor_bg" src="misc/zdoh.png"> - <img class="client_prosecutor" alt="Prosecution health" id="client_prosecutor_hp" src="misc/procuror.png"> - </div> - <textarea id="client_ooclog"></textarea> - <input id="client_oocinputbox" class="long" type="text" onKeyPress="onOOCEnter(event)"> - <select id="client_musiclist" size="25" onclick="musiclist_click(event)"></select> - </div> - <div id="client_error" class="error" style="display: none"> - <p>CONNECTION ERROR</p><br> - <button onclick='ReconnectButton()'>RECONNECT</button> - </div> -</body> - -</html>
\ No newline at end of file diff --git a/client.js b/client.js deleted file mode 100644 index e67fa23..0000000 --- a/client.js +++ /dev/null @@ -1,648 +0,0 @@ -/* -glorious webao -made by sD -credits to aleks for original idea and source -*/ -var queryDict = {}; -location.search.substr(1).split("&").forEach(function(item) { - queryDict[item.split("=")[0]] = item.split("=")[1] -}) - -//document.getElementById("client_wrapper").style = "width: 800px;"; -/* Server magic */ -//serv = new WebSocket("ws://51.255.160.217:50000"); -//serv = new WebSocket("ws://85.25.196.172:5000"); -var serverIP = queryDict.ip; -serv = new WebSocket("ws://" + serverIP); -var mode = queryDict.mode; -//var AO_HOST = "http://weedlan.de/"; -if (queryDict.asset === undefined) { - var AO_HOST = "http://assets.aceattorneyonline.com/base/"; -} else { - var AO_HOST = queryDict.asset; -} -var MUSIC_HOST = AO_HOST + "sounds/music/"; -var BAR_WIDTH = 90; -var BAR_HEIGHT = 20; -var textnow = ""; -var chatmsg = { - "isnew": false -}; -var blip = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); -var womboblip = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); -var comboblip = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); -var sfxaudio = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); -var sfxplayed = 0; -var music = new Audio(); -music.play(); -blip.volume = 0.5; -womboblip.volume = 0.5; -comboblip.volume = 0.5; -combo = false; -var charselectWidth = 8; -var musiclist = Object(); -var ex = false; -var tempchars = []; -var chars = []; -var emotes = []; -var charcheck; -var pid = 1; -var bgname = 'gs4'; -var bgfolder = AO_HOST + "background/" + bgname + "/"; -// 0 = objection shout, 1 = pre-anim, 2 = speaking, 3 = silent -var chatstate = 3 -var position; -var me = -1; -var myemotion = -1; -var myschar = -1; -var objection_state = 0; -var updateInterval = 80; -var shouttimer = 0; -var texttimer = 0; -var updater; -var CHECKupdater; -var serv; -var oldloading=false; -if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) { - oldloading=true; -} -var carea = 0; -var linifile; -var pinifile; -serv.onopen = function(evt) { - onOpen(evt) -}; -serv.onclose = function(evt) { - onClose(evt) -}; -serv.onmessage = function(evt) { - onMessage(evt) -}; -serv.onerror = function(evt) { - onError(evt) -}; - -function parseINI(data) { - var regex = { - section: /^\s*\[\s*([^\]]*)\s*\]\s*$/, - param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/, - comment: /^\s*;.*$/ - }; - var value = {}; - var lines = data.split(/\r\n|\r|\n/); - var section = null; - lines.forEach(function(line) { - if (regex.comment.test(line)) { - return; - } else if (line.length == 0) { - return; - } else if (regex.param.test(line)) { - var match = line.match(regex.param); - if (section) { - value[section][match[1]] = match[2]; - } else { - value[match[1]] = match[2]; - } - } else if (regex.section.test(line)) { - var match = line.match(regex.section); - value[match[1]] = {}; - section = match[1]; - }; - }); - return value; -} - -function escapeChat(estring) { - estring.replace("#", "<pound>"); - estring.replace("&", "<and>"); - estring.replace("%", "<percent>"); - estring.replace("$", "<dollar>"); - return estring; -} - -function onOOCEnter(event) { - if (event.keyCode == 13) { - serv.send("CT#web" + pid + "#" + escapeChat(document.getElementById("client_oocinputbox").value) + "#%"); - document.getElementById("client_oocinputbox").value = ""; - } -} - -function onEnter(event) { - if (event.keyCode == 13) { - mychar = chars[me] - myemo = emotes[myemotion] - if(document.getElementById("sendsfx").checked){ - ssfxname=myemo.sfx; - ssfxdelay=myemo.sfxdelay; - }else{ - ssfxname="0"; - ssfxdelay="0"; - } - ICmessage = "MS#chat#" + myemo.speaking + "#" + mychar.name + "#" + myemo.silent + "#" + escapeChat(document.getElementById("client_inputbox").value) + "#" + mychar.side + "#" + ssfxname +"#" + myemo.zoom + "#" + me + "#" + ssfxdelay + "#" + objection_state + "#0#0#0#0#%"; - serv.send(ICmessage); - document.getElementById("client_inputbox").value = ''; - if (objection_state) { - document.getElementById("button_" + objection_state).className = "client_button"; - objection_state = 0; - } - } -} - -function musiclist_click(event) { - var playtrack = document.getElementById("client_musiclist").value; - serv.send("MC#" + playtrack + "#" + me + "#%"); -} - -function changeMusicVolume() { - music.volume = document.getElementById("client_mvolume").value / 100; -} - -function changeSFXVolume() { - sfxaudio.volume = document.getElementById("client_svolume").value / 100; -} - -function changeBlipVolume() { - blip.volume = document.getElementById("client_bvolume").value / 100; - womboblip.volume = document.getElementById("client_bvolume").value / 100; - comboblip.volume = document.getElementById("client_bvolume").value / 100; -} - -function changeCharacter(event) { - serv.send("FC#%"); - document.getElementById("client_charselect").style.display = "block"; - document.getElementById("client_emo").innerHTML = ""; -} - -function imgError(image) { - image.onerror = ""; - image.src = "/misc/placeholder.gif"; - return true; -} - -function demoError(image) { - image.onerror = ""; - image.src = "/misc/placeholder.png"; - return true; -} - -function ImageExist(url) { - var img = new Image(); - img.src = url; - return img.height != 0; -} - -function changebg(position) { - var standname - bgfolder = AO_HOST + "background/" + escape(bgname) + "/"; - document.getElementById("client_fg").style.display = "none"; - document.getElementById("client_bench").style.display = "none"; - switch (position) { - case "def": - document.getElementById("client_court").src = bgfolder + "defenseempty.png" - document.getElementById("client_bench").style.display = "block"; - document.getElementById("client_bench").src = bgfolder + "defensedesk.png" - standname="defense"; - break; - case "pro": - document.getElementById("client_court").src = bgfolder + "prosecutorempty.png" - document.getElementById("client_bench").style.display = "block" - document.getElementById("client_bench").src = bgfolder + "prosecutiondesk.png" - standname="prosecution"; - break; - case "hld": - document.getElementById("client_court").src = bgfolder + "helperstand.png" - standname="defense"; - break; - case "hlp": - document.getElementById("client_court").src = bgfolder + "prohelperstand.png" - standname="prosecution"; - break; - case "wit": - document.getElementById("client_court").src = bgfolder + "witnessempty.png" - document.getElementById("client_bench").style.display = "block" - document.getElementById("client_bench").src = bgfolder + "estrado.png" - standname="prosecution"; - break; - case "jud": - document.getElementById("client_court").src = bgfolder + "judgestand.png" - standname="prosecution"; - break; - } - if(chatmsg.type==5){ - document.getElementById("client_bench").style.display = "none"; - document.getElementById("client_court").src = AO_HOST + "themes/default/"+standname+"_speedlines.gif"; - } -} - -function updateText() { - if (chatmsg.content.trim() == "") { - document.getElementById("client_name").style.display = "none"; - document.getElementById("client_chat").style.display = "none"; - } else { - document.getElementById("client_name").style.display = "block"; - document.getElementById("client_chat").style.display = "block"; - } - if (chatmsg.isnew){ - switch (chatmsg.objection) { - case "0": - shouttimer = 0; - break; - case "1": - document.getElementById("client_char").src = AO_HOST + "misc/holdit.gif"; - shouttimer = 800; - chatmsg.sound = "sfx-objection" - break; - case "2": - document.getElementById("client_char").src = AO_HOST + "misc/takethat.gif"; - shouttimer = 800; - chatmsg.sound = "sfx-objection" - break; - case "3": - document.getElementById("client_char").src = AO_HOST + "misc/objection.gif"; - shouttimer = 800; - chatmsg.sound = "sfx-objection" - break; - } - chatmsg.isnew=false; - chatmsg.startspeaking=true; -} - if (texttimer >= shouttimer) { - if (chatmsg.startspeaking) { - changebg(chatmsg.side); - document.getElementById("client_char").src = AO_HOST + "characters/" + escape(chatmsg.name) + "/" + chatmsg.speaking + ".gif"; - document.getElementById("client_name").style.fontSize = (document.getElementById("client_name").offsetHeight * 0.7) + "px"; - document.getElementById("client_chat").style.fontSize = (document.getElementById("client_chat").offsetHeight * 0.25) + "px"; - document.getElementById("client_name").innerHTML = "<p>" + escapeHtml(chatmsg.nameplate) + "</p>"; - switch(chatmsg.color){ - case "0": - stylecolor="color: #ffffff;"; - break; - case "1": - stylecolor="color: #00ff00;"; - break; - case "2": - stylecolor="color: #ff0000;"; - break; - case "3": - stylecolor="color: #ffaa00;"; - break; - case "4": - stylecolor="color: #0000ff;"; - break; - case "5": - stylecolor="color: #ffff00;"; - break; - case "6": - stylecolor="color: #aa00aa;"; - break; - } - document.getElementById("client_inner_chat").style = stylecolor; - chatmsg.startspeaking = false; - } else { - if (textnow != chatmsg.content) { - if(chatmsg.content.substring(textnow.length, textnow.length + 1)!=" "){ - combo = (combo + 1) % 2; - switch (combo) { - case 0: - blip.play() - break; - case 1: - //womboblip.play() - break; - } - } - textnow = chatmsg.content.substring(0, textnow.length + 1); - document.getElementById("client_inner_chat").innerHTML = escapeHtml(textnow); - if (textnow == chatmsg.content) { - chatstate = 3; - texttimer=0; - clearInterval(updater); - document.getElementById("client_char").src = AO_HOST + "characters/" + escape(chatmsg.name) + "/" + chatmsg.silent + ".gif"; - } - } - } - } - if (!sfxplayed && chatmsg.snddelay + shouttimer >= texttimer) { - sfxaudio.pause(); - sfxplayed = 1 - if (chatmsg.sound != "0" && chatmsg.sound != "1") { - sfxaudio.src = AO_HOST + "sounds/general/" + escape(chatmsg.sound) + ".wav"; - sfxaudio.play(); - } - } - texttimer = texttimer + updateInterval; -} - -function onOpen(e) { - if (mode == "join") { - serv.send("HI#" + navigator.userAgent + "#%"); - serv.send("ID#webAO#2.4.5#%"); - } else { - document.getElementById("client_loading").style.display = "none"; - } - CHECKupdater = setInterval(sendCheck, 5000); -}; - -function onClose(e) { - document.getElementById("client_error").style.display = "block"; -}; - -function ReconnectButton() { - serv = new WebSocket("ws://" + serverIP); - if (serv) { - serv.send("HI#" + navigator.userAgent + "#%"); - document.getElementById("client_error").style.display = "none"; - } -} - -function RetryButton() { -serv.send("HI#" + navigator.userAgent + "#%"); -} - -function onError(e) { - document.getElementById("client_error").style.display = "block"; -}; - -function onMessage(e) { - msg = e.data; - console.log(msg) - lines = msg.split('%'); - arguments = lines[0].split('#'); - header = arguments[0]; - switch (header) { - case "MS": - if (arguments[4] != chatmsg.content) { - document.getElementById("client_inner_chat").innerHTML = ''; - chatmsg.pre = escape(arguments[2]); - chatmsg.character = -1; - for (var i = 0; i < chars.length; i++) { - if (chars[i].name == arguments[3]) { - chatmsg.character = i; - break; - } - } - chatmsg.preanim = escape(arguments[2]); - chatmsg.nameplate = arguments[3]; - chatmsg.name = arguments[3]; - chatmsg.speaking = "(b)" + escape(arguments[4]); - chatmsg.silent = "(a)" + escape(arguments[4]); - chatmsg.content = escapeHtml(arguments[5]); - chatmsg.side = arguments[6]; - chatmsg.sound = escape(arguments[7]); - chatmsg.type = arguments[8]; - //chatmsg.charid = arguments[9]; - chatmsg.snddelay = arguments[10]; - chatmsg.objection = arguments[11]; - chatmsg.evidence = arguments[12]; - //chatmsg.flip = arguments[13]; - chatmsg.flash = arguments[14]; - chatmsg.color = arguments[15]; - chatmsg.isnew = true; - addlog(chatmsg.nameplate + ": " + escapeHtml(arguments[5])) - changebg(chatmsg.side); - textnow = ''; - sfxplayed = 0 - texttimer = 0 - updater = setInterval(updateText, updateInterval); - } - break; - case "CT": - document.getElementById("client_ooclog").innerHTML = document.getElementById("client_ooclog").innerHTML + arguments[1] + ": " + arguments[2] + "\r\n" - break; - case "MC": - music.pause(); - music.src = MUSIC_HOST + arguments[1]; - music.play(); - if (arguments[2] >= 0) { - musicname = chars[arguments[2]].name; - } else { - musicname = "$SERVER" - } - addlog(musicname + " changed music to " + arguments[1]); - break; - case "RMC": - music.pause(); - music = new Audio(musiclist[arguments[0]]); - music.totime = arguments[1] - music.offset = new Date().getTime() / 1000 - music.addEventListener('loadedmetadata', function() { - music.currentTime += parseFloat(music.totime + (new Date().getTime() / 1000 - music.offset)).toFixed(3); - music.play(); - }, false) - break; - case "CI": - document.getElementById("client_loadingtext").innerHTML = "Loading Character " + arguments[1]; - serv.send("AN#" + ((arguments[1] / 10) + 1) + "#%"); - for (var i = 2; i < arguments.length - 1; i++) { - if (i % 2 == 0) { - charguments = arguments[i].split("&"); - chars[arguments[i - 1]] = { - "name": charguments[0], - "desc": charguments[1], - "evidence": charguments[3], - "icon": AO_HOST + "characters/" + escape(charguments[0]) + "/char_icon.png" - }; - } - } - break; - case "SC": - document.getElementById("client_loadingtext").innerHTML = "Loading Characters"; - for (var i = 1; i < arguments.length - 1; i++) { - charguments = arguments[i].split("&"); - chars[i - 1] = { - "name": charguments[0], - "desc": charguments[1], - "evidence": charguments[3], - "icon": AO_HOST + "characters/" + escape(charguments[0]) + "/char_icon.png" - } - } - serv.send("RM#%"); - break; - case "EI": - document.getElementById("client_loadingtext").innerHTML = "Loading Evidence " + arguments[1]; - //serv.send("AE#" + (arguments[1] + 1) + "#%"); - serv.send("RM#%"); - break; - case "EM": - document.getElementById("client_loadingtext").innerHTML = "Loading Music " + arguments[1]; - serv.send("AM#" + ((arguments[1] / 10) + 1) + "#%"); - var hmusiclist = document.getElementById("client_musiclist"); - for (var i = 2; i < arguments.length - 1; i++) { - if (i % 2 == 0) { - var newentry = document.createElement("OPTION"); - newentry.text = arguments[i]; - hmusiclist.options.add(newentry); - } - } - break; - case "SM": - document.getElementById("client_loadingtext").innerHTML = "Loading Music "; - var hmusiclist = document.getElementById("client_musiclist"); - for (var i = 1; i < arguments.length - 1; i++) { - var newentry = document.createElement("OPTION"); - newentry.text = arguments[i]; - hmusiclist.options.add(newentry); - } - serv.send("RD#%"); - break; - case "music": - for (var i = 0; i < arguments.length / 2; i++) { - musiclist[arguments[2 * i]] = arguments[2 * i + 1]; - } - break; - case "DONE": - document.getElementById("client_loading").style.display = "none"; - document.getElementById("client_chatlog").style.display = "block"; - document.getElementById("client_wrapper").style.display = "block"; - document.getElementById("client_charselect").style.display = "block"; - break; - case "BN": - bgname = arguments[1]; - break; - case "NBG": - /* TODO */ - break; - case "HP": - /* TODO */ - if (arguments[1] == 1) { - document.getElementById("client_defense_hp").style.clip = "rect(0px," + BAR_WIDTH * arguments[2] / 10 + "px," + BAR_HEIGHT + "px,0px)"; - } else { - document.getElementById("client_prosecutor_hp").style.clip = "rect(0px," + BAR_WIDTH * arguments[2] / 10 + "px," + BAR_HEIGHT + "px,0px)"; - } - break; - case "ID": - pid = arguments[1]; - case "PN": - serv.send("askchaa#%"); - break; - case "SI": - if(oldloading){ - serv.send("askchar2#%"); - }else{ - serv.send("RC#%"); - } - break; - case "CharsCheck": - document.getElementById("client_chartable").innerHTML = ""; - for (var i = 0; i < chars.length; i++) { - if (i % charselectWidth == 0) { - var tr = document.createElement('TR'); - } - var td = document.createElement('TD'); - var icon_chosen; - var thispick = chars[i].icon; - if (arguments[1 + i] == "-1") { - icon_chosen = " dark"; - } else { - icon_chosen = ""; - } - td.innerHTML = "<img class='demothing" + icon_chosen + "' id='demo_" + i + "' src='" + thispick + "' alt='" + chars[i].desc + "' onclick='pickchar(" + i + ")' onerror='demoError(this);'>"; - tr.appendChild(td); - if (i % charselectWidth == 0) { - document.getElementById("client_chartable").appendChild(tr); - } - } - changebg("def"); - break; - case "PV": - me = arguments[3] - document.getElementById("client_charselect").style.display = "none"; - var xhr = new XMLHttpRequest(); - xhr.open('GET', AO_HOST + 'characters/' + escape(chars[me].name) + '/char.ini', true); - xhr.responseType = 'text'; - xhr.onload = function(e) { - if (this.status == 200) { - linifile = this.responseText; - pinifile = parseINI(linifile); - chars[me].side = pinifile.Options.side; - for (var i = 1; i < pinifile.Emotions.number; i++) { - var emoteinfo = pinifile.Emotions[i].split('#'); - esfx="0"; - esfxd="0"; - if (typeof pinifile.SoundN !== 'undefined') { - esfx=pinifile.SoundN[i]; - } - if (typeof pinifile.SoundT !== 'undefined') { - esfxd=pinifile.SoundT[i]; - } - emotes[i] = { - desc: emoteinfo[0], - speaking: emoteinfo[1], - silent: emoteinfo[2], - zoom: emoteinfo[3], - sfx: esfx, - sfxdelay: esfxd, - button_off: AO_HOST + 'characters/' + escape(chars[me].name) + '/emotions/button' + i + '_off.png', - button_on: AO_HOST + 'characters/' + escape(chars[me].name) + '/emotions/button' + i + '_on.png' - }; - document.getElementById("client_emo").innerHTML += "<img src='" + emotes[i].button_off + "' id='emo_" + i + "' alt='" + emotes[i].desc + "' class='client_button' onclick='pickemotion(" + i + ")'>"; - } - pickemotion(1); - } - }; - xhr.send(); - break; - } -}; - -function addlog(toadd) { - document.getElementById("client_log").innerHTML = toadd + "<br/>" + document.getElementById("client_log").innerHTML -} - -function pickchar(ccharacter) { - if (ccharacter < 1000) { - serv.send("CC#" + pid + "#" + ccharacter + "#web#%"); - } else { - //spectator - document.getElementById("client_charselect").style.display = "none"; - document.getElementById("client_inputbox").style.display = "none"; - document.getElementById("client_emo").style.display = "none"; - } -} - -function pickemotion(emo) { - if (myemotion != -1) { - document.getElementById("emo_" + myemotion).src = emotes[myemotion].button_off; - } - document.getElementById("emo_" + emo).src = emotes[emo].button_on; - myemotion = emo -} - -function toggleshout(shout) { - if (shout == objection_state) { - document.getElementById("button_" + shout).className = "client_button"; - objection_state = 0; - } else { - document.getElementById("button_" + shout).className = "client_button dark"; - if (objection_state) { - document.getElementById("button_" + objection_state).className = "client_button"; - } - objection_state = shout; - } -} - -function sendMusic(song) { - serv.send("MC#" + song); -} - -function sendCheck() { - serv.send("CH#" + me + "#%"); -} - -function escapeHtml(unsafe) { - var transfer = unsafe; - transfer.replace(/&/g, "&"); - transfer.replace(/</g, "<"); - transfer.replace(/>/g, ">"); - transfer.replace(/"/g, """); - transfer.replace(/'/g, "'"); - return transfer; -} - -if(typeof(String.prototype.trim) === "undefined") -{ - String.prototype.trim = function() - { - return String(this).replace(/^\s+|\s+$/g, ''); - }; -}
\ No newline at end of file diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..4ba05ea --- /dev/null +++ b/package-lock.json @@ -0,0 +1,8277 @@ +{ + "name": "webao", + "version": "2.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", + "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@sindresorhus/is": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz", + "integrity": "sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow==", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.4.3.tgz", + "integrity": "sha512-S6npYhPcTHDYe9nlsKa9CyWByFi8Vj8HovcAgtmMAQZUOczOZbQ8CnwMYKYC5HEZzxEE+oY0jfQk4cVlI3J59Q==", + "dev": true, + "requires": { + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "debug": "^3.1.0", + "webassemblyjs": "1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.4.3.tgz", + "integrity": "sha512-3zTkSFswwZOPNHnzkP9ONq4bjJSeKVMcuahGXubrlLmZP8fmTIJ58dW7h/zOVWiFSuG2em3/HH3BlCN7wyu9Rw==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.4.3.tgz", + "integrity": "sha512-e8+KZHh+RV8MUvoSRtuT1sFXskFnWG9vbDy47Oa166xX+l0dD5sERJ21g5/tcH8Yo95e9IN3u7Jc3NbhnUcSkw==", + "dev": true, + "requires": { + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.4.3.tgz", + "integrity": "sha512-9FgHEtNsZQYaKrGCtsjswBil48Qp1agrzRcPzCbQloCoaTbOXLJ9IRmqT+uEZbenpULLRNFugz3I4uw18hJM8w==", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.4.3" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.4.3.tgz", + "integrity": "sha512-JINY76U+702IRf7ePukOt037RwmtH59JHvcdWbTTyHi18ixmQ+uOuNhcdCcQHTquDAH35/QgFlp3Y9KqtyJsCQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.4.3.tgz", + "integrity": "sha512-I7bS+HaO0K07Io89qhJv+z1QipTpuramGwUSDkwEaficbSvCcL92CUZEtgykfNtk5wb0CoLQwWlmXTwGbNZUeQ==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.4.3.tgz", + "integrity": "sha512-p0yeeO/h2r30PyjnJX9xXSR6EDcvJd/jC6xa/Pxg4lpfcNi7JUswOpqDToZQ55HMMVhXDih/yqkaywHWGLxqyQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/leb128": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.4.3.tgz", + "integrity": "sha512-4u0LJLSPzuRDWHwdqsrThYn+WqMFVqbI2ltNrHvZZkzFPO8XOZ0HFQ5eVc4jY/TNHgXcnwrHjONhPGYuuf//KQ==", + "dev": true, + "requires": { + "leb": "^0.3.0" + } + }, + "@webassemblyjs/validation": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/validation/-/validation-1.4.3.tgz", + "integrity": "sha512-R+rRMKfhd9mq0rj2mhU9A9NKI2l/Rw65vIYzz4lui7eTKPcCu1l7iZNi4b9Gen8D42Sqh/KGiaQNk/x5Tn/iBQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3" + } + }, + "@webassemblyjs/wasm-edit": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.4.3.tgz", + "integrity": "sha512-qzuwUn771PV6/LilqkXcS0ozJYAeY/OKbXIWU3a8gexuqb6De2p4ya/baBeH5JQ2WJdfhWhSvSbu86Vienttpw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/helper-wasm-section": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-opt": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-printer": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.4.3.tgz", + "integrity": "sha512-eR394T8dHZfpLJ7U/Z5pFSvxl1L63JdREebpv9gYc55zLhzzdJPAuxjBYT4XqevUdW67qU2s0nNA3kBuNJHbaQ==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.4.3.tgz", + "integrity": "sha512-7Gp+nschuKiDuAL1xmp4Xz0rgEbxioFXw4nCFYEmy+ytynhBnTeGc9W9cB1XRu1w8pqRU2lbj2VBBA4cL5Z2Kw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-buffer": "1.4.3", + "@webassemblyjs/wasm-gen": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "debug": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.4.3.tgz", + "integrity": "sha512-KXBjtlwA3BVukR/yWHC9GF+SCzBcgj0a7lm92kTOaa4cbjaTaa47bCjXw6cX4SGQpkncB9PU2hHGYVyyI7wFRg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/helper-wasm-bytecode": "1.4.3", + "@webassemblyjs/leb128": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.4.3.tgz", + "integrity": "sha512-QhCsQzqV0CpsEkRYyTzQDilCNUZ+5j92f+g35bHHNqS22FppNTywNFfHPq8ZWZfYCgbectc+PoghD+xfzVFh1Q==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/floating-point-hex-parser": "1.4.3", + "@webassemblyjs/helper-code-frame": "1.4.3", + "@webassemblyjs/helper-fsm": "1.4.3", + "long": "^3.2.0", + "webassemblyjs": "1.4.3" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.4.3.tgz", + "integrity": "sha512-EgXk4anf8jKmuZJsqD8qy5bz2frEQhBvZruv+bqwNoLWUItjNSFygk8ywL3JTEz9KtxTlAmqTXNrdD1d9gNDtg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + }, + "acorn": { + "version": "5.5.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.5.3.tgz", + "integrity": "sha512-jd5MkIUlbbmb07nXH0DT3y7rDVtkzDi4XZOUVWAer8ajmF/DTSSbl5oNFyDOl/OXA33Bl79+ypHhl2pN20VeOQ==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-3.0.0.tgz", + "integrity": "sha512-zVWV8Z8lislJoOKKqdNMOB+s6+XV5WERty8MnKBeFgwA+19XJjJHs2RP5dzM57FftIs+jQnRToLiWazKr6sSWg==", + "dev": true, + "requires": { + "acorn": "^5.0.0" + } + }, + "ajv": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.0.tgz", + "integrity": "sha512-VDUX1oSajablmiyFyED9L1DFndg0P9h7p1F+NO8FkIzei6EPrR6Zu1n18rd5P8PqaSRd/FrWv3G1TVBqpM83gA==", + "dev": true, + "requires": { + "fast-deep-equal": "^2.0.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0", + "uri-js": "^4.2.1" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "ansi-escapes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz", + "integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "any-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/any-observable/-/any-observable-0.2.0.tgz", + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "dev": true + }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^2.1.5", + "normalize-path": "^2.0.0" + } + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "^1.0.1" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-differ": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", + "integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", + "dev": true + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", + "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "ast-types": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.11.3.tgz", + "integrity": "sha512-XA5o5dsNw8MhyW0Q7MWXJWc4oOzZKbdsEJq45h7c8q/d9DwWZ5F2ugUc1PuMLPGsUnphCt/cNDHu8JeBbxf1qA==", + "dev": true + }, + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true + }, + "atob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.1.tgz", + "integrity": "sha1-ri1acpR38onWDdf5amMUoi3Wwio=", + "dev": true + }, + "babel-cli": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-cli/-/babel-cli-6.26.0.tgz", + "integrity": "sha1-UCq1SHTX24itALiHoGODzgPQAvE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-polyfill": "^6.26.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "chokidar": "^1.6.1", + "commander": "^2.11.0", + "convert-source-map": "^1.5.0", + "fs-readdir-recursive": "^1.0.0", + "glob": "^7.1.2", + "lodash": "^4.17.4", + "output-file-sync": "^1.1.2", + "path-is-absolute": "^1.0.1", + "slash": "^1.0.0", + "source-map": "^0.5.6", + "v8flags": "^2.1.1" + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "babel-core": { + "version": "6.26.3", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz", + "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-generator": "^6.26.0", + "babel-helpers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-register": "^6.26.0", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "convert-source-map": "^1.5.1", + "debug": "^2.6.9", + "json5": "^0.5.1", + "lodash": "^4.17.4", + "minimatch": "^3.0.4", + "path-is-absolute": "^1.0.1", + "private": "^0.1.8", + "slash": "^1.0.0", + "source-map": "^0.5.7" + } + }, + "babel-generator": { + "version": "6.26.1", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.1.tgz", + "integrity": "sha512-HyfwY6ApZj7BYTcJURpM5tznulaBvyio7/0d4zFOeMPUmfxkCjHocCuoLa2SAGzBI8AREcH3eP3758F672DppA==", + "dev": true, + "requires": { + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "detect-indent": "^4.0.0", + "jsesc": "^1.3.0", + "lodash": "^4.17.4", + "source-map": "^0.5.7", + "trim-right": "^1.0.1" + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-loader": { + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-7.1.4.tgz", + "integrity": "sha512-/hbyEvPzBJuGpk9o80R0ZyTej6heEOr59GoEUtn8qFKbnx4cJm9FWES6J/iv644sYgrtVw9JJQkjaLW/bqb5gw==", + "dev": true, + "requires": { + "find-cache-dir": "^1.0.0", + "loader-utils": "^1.0.2", + "mkdirp": "^0.5.1" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-constructor-call": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-constructor-call/-/babel-plugin-syntax-class-constructor-call-6.18.0.tgz", + "integrity": "sha1-nLnTn+Q8hgC+yBRkVt3L1OGnZBY=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-export-extensions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-export-extensions/-/babel-plugin-syntax-export-extensions-6.13.0.tgz", + "integrity": "sha1-cKFITw+QiaToStRLrDU8lbmxJyE=", + "dev": true + }, + "babel-plugin-syntax-flow": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-flow/-/babel-plugin-syntax-flow-6.18.0.tgz", + "integrity": "sha1-TDqyCiryaqIM0lmVw5jE63AxDI0=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-generators": "^6.5.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "^6.24.1", + "babel-plugin-syntax-async-functions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-class-constructor-call": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-constructor-call/-/babel-plugin-transform-class-constructor-call-6.24.1.tgz", + "integrity": "sha1-gNwoVQWsBn3LjWxl4vbxGrd2Xvk=", + "dev": true, + "requires": { + "babel-plugin-syntax-class-constructor-call": "^6.18.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-plugin-syntax-class-properties": "^6.8.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true, + "requires": { + "babel-helper-explode-class": "^6.24.1", + "babel-plugin-syntax-decorators": "^6.13.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "lodash": "^4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "^6.24.1", + "babel-helper-function-name": "^6.24.1", + "babel-helper-optimise-call-expression": "^6.24.1", + "babel-helper-replace-supers": "^6.24.1", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.2", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz", + "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "^6.24.1", + "babel-runtime": "^6.26.0", + "babel-template": "^6.26.0", + "babel-types": "^6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "^6.24.1", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "^6.24.1", + "babel-helper-get-function-arity": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-template": "^6.24.1", + "babel-traverse": "^6.24.1", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "^6.24.1", + "babel-runtime": "^6.22.0", + "regexpu-core": "^2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "^6.24.1", + "babel-plugin-syntax-exponentiation-operator": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-export-extensions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-export-extensions/-/babel-plugin-transform-export-extensions-6.22.0.tgz", + "integrity": "sha1-U3OLR+deghhYnuqUbLvTkQm75lM=", + "dev": true, + "requires": { + "babel-plugin-syntax-export-extensions": "^6.8.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-flow-strip-types": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-flow-strip-types/-/babel-plugin-transform-flow-strip-types-6.22.0.tgz", + "integrity": "sha1-hMtnKTXUNxT9wyvOhFaNh0Qc988=", + "dev": true, + "requires": { + "babel-plugin-syntax-flow": "^6.18.0", + "babel-runtime": "^6.22.0" + } + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", + "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "^0.10.0" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "^6.22.0", + "babel-types": "^6.24.1" + } + }, + "babel-polyfill": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.26.0.tgz", + "integrity": "sha1-N5k3q8Z9eJWXCtxiHyhM2WbPIVM=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "regenerator-runtime": "^0.10.5" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true + } + } + }, + "babel-preset-env": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.7.0.tgz", + "integrity": "sha512-9OR2afuKDneX2/q2EurSftUYM0xGu4O2D9adAhVfADDhrYDaxXV0rBbevVYoY9n6nyX1PmQW/0jtpJvUNr9CHg==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-to-generator": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.23.0", + "babel-plugin-transform-es2015-classes": "^6.23.0", + "babel-plugin-transform-es2015-computed-properties": "^6.22.0", + "babel-plugin-transform-es2015-destructuring": "^6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.22.0", + "babel-plugin-transform-es2015-for-of": "^6.23.0", + "babel-plugin-transform-es2015-function-name": "^6.22.0", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.22.0", + "babel-plugin-transform-es2015-modules-commonjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.23.0", + "babel-plugin-transform-es2015-modules-umd": "^6.23.0", + "babel-plugin-transform-es2015-object-super": "^6.22.0", + "babel-plugin-transform-es2015-parameters": "^6.23.0", + "babel-plugin-transform-es2015-shorthand-properties": "^6.22.0", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.22.0", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.22.0", + "babel-plugin-transform-exponentiation-operator": "^6.22.0", + "babel-plugin-transform-regenerator": "^6.22.0", + "browserslist": "^3.2.6", + "invariant": "^2.2.2", + "semver": "^5.3.0" + } + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "^6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0", + "babel-plugin-transform-es2015-block-scoping": "^6.24.1", + "babel-plugin-transform-es2015-classes": "^6.24.1", + "babel-plugin-transform-es2015-computed-properties": "^6.24.1", + "babel-plugin-transform-es2015-destructuring": "^6.22.0", + "babel-plugin-transform-es2015-duplicate-keys": "^6.24.1", + "babel-plugin-transform-es2015-for-of": "^6.22.0", + "babel-plugin-transform-es2015-function-name": "^6.24.1", + "babel-plugin-transform-es2015-literals": "^6.22.0", + "babel-plugin-transform-es2015-modules-amd": "^6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1", + "babel-plugin-transform-es2015-modules-umd": "^6.24.1", + "babel-plugin-transform-es2015-object-super": "^6.24.1", + "babel-plugin-transform-es2015-parameters": "^6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "^6.24.1", + "babel-plugin-transform-es2015-spread": "^6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "^6.24.1", + "babel-plugin-transform-es2015-template-literals": "^6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "^6.22.0", + "babel-plugin-transform-es2015-unicode-regex": "^6.24.1", + "babel-plugin-transform-regenerator": "^6.24.1" + } + }, + "babel-preset-stage-1": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-1/-/babel-preset-stage-1-6.24.1.tgz", + "integrity": "sha1-dpLNfc1oSZB+auSgqFWJz7niv7A=", + "dev": true, + "requires": { + "babel-plugin-transform-class-constructor-call": "^6.24.1", + "babel-plugin-transform-export-extensions": "^6.22.0", + "babel-preset-stage-2": "^6.24.1" + } + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "^6.18.0", + "babel-plugin-transform-class-properties": "^6.24.1", + "babel-plugin-transform-decorators": "^6.24.1", + "babel-preset-stage-3": "^6.24.1" + } + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "^6.22.0", + "babel-plugin-transform-async-generator-functions": "^6.24.1", + "babel-plugin-transform-async-to-generator": "^6.24.1", + "babel-plugin-transform-exponentiation-operator": "^6.24.1", + "babel-plugin-transform-object-rest-spread": "^6.22.0" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "^6.26.0", + "babel-runtime": "^6.26.0", + "core-js": "^2.5.0", + "home-or-tmp": "^2.0.0", + "lodash": "^4.17.4", + "mkdirp": "^0.5.1", + "source-map-support": "^0.4.15" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "babel-traverse": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "lodash": "^4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "babel-messages": "^6.23.0", + "babel-runtime": "^6.26.0", + "babel-types": "^6.26.0", + "babylon": "^6.18.0", + "debug": "^2.6.8", + "globals": "^9.18.0", + "invariant": "^2.2.2", + "lodash": "^4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "^6.26.0", + "esutils": "^2.0.2", + "lodash": "^4.17.4", + "to-fast-properties": "^1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "base64-js": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz", + "integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw==", + "dev": true + }, + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz", + "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==", + "dev": true + }, + "binary-extensions": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz", + "integrity": "sha1-RqoXUftqL5PuXmibsQh9SxTGwgU=", + "dev": true + }, + "binaryextensions": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/binaryextensions/-/binaryextensions-2.1.1.tgz", + "integrity": "sha512-XBaoWE9RW8pPdPQNibZsW2zh8TW6gcarXp1FZPwT8Uop8ScSNldJEWf2k9l3HeTqdrEwsOsFcq74RiJECW34yA==", + "dev": true + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "bn.js": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "^1.8.1", + "preserve": "^0.2.0", + "repeat-element": "^1.1.2" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.1.tgz", + "integrity": "sha512-zy0Cobe3hhgpiOM32Tj7KQ3Vl91m0njwsjzZQK1L+JDf11dzP9qIvjreVinsvXrgfjhStXwUWAEpB9D7Gwmayw==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-3.2.7.tgz", + "integrity": "sha512-oYVLxFVqpX9uMhOIQBLtZL+CX4uY8ZpWcjNTaxyWl5rO8yA9SSNikFnAfvk8J3P/7z3BZwNmEqFKaJoYltj3MQ==", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30000835", + "electron-to-chromium": "^1.3.45" + } + }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz", + "integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cacheable-request": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz", + "integrity": "sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0=", + "dev": true, + "requires": { + "clone-response": "1.0.2", + "get-stream": "3.0.0", + "http-cache-semantics": "3.8.1", + "keyv": "3.0.0", + "lowercase-keys": "1.0.0", + "normalize-url": "2.0.1", + "responselike": "1.0.2" + }, + "dependencies": { + "lowercase-keys": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz", + "integrity": "sha1-TjNms55/VFfjXxMkvfb4jQv8cwY=", + "dev": true + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + }, + "caniuse-lite": { + "version": "1.0.30000840", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000840.tgz", + "integrity": "sha512-Lw6AaouV6lh7TgIdQtLiUFKKO2mtDnZFkzCq5/V6tqs4ZI0OGVSDCEt1uegZ3OOBEBUYuVw3Hhr9DQSbgVofFA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^1.3.0", + "async-each": "^1.0.0", + "fsevents": "^1.0.0", + "glob-parent": "^2.0.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^2.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true + }, + "chrome-trace-event": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-0.1.3.tgz", + "integrity": "sha512-sjndyZHrrWiu4RY7AkHgjn80GfAM2ZSzUkZLV/Js59Ldmh6JDThf0SUmOHU53rFu2rVxxfCzJ30Ukcfch3Gb/A==", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "cli-table": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz", + "integrity": "sha1-9TsFJmqLGguTSz0IIebi3FkUriM=", + "dev": true, + "requires": { + "colors": "1.0.3" + }, + "dependencies": { + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=", + "dev": true + } + } + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "cli-width": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz", + "integrity": "sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=", + "dev": true + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", + "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clone-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", + "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=", + "dev": true + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "clone-stats": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-0.0.1.tgz", + "integrity": "sha1-uI+UqCzzi4eR1YBG6kAprYjKmdE=", + "dev": true + }, + "cloneable-readable": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", + "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "process-nextick-args": "^2.0.0", + "readable-stream": "^2.3.5" + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.1.tgz", + "integrity": "sha512-mjGanIiwQJskCC18rPR6OmrZ6fm2Lc7PeGFYwCmy5J34wC6F1PzdGL6xeMfmgicfYcNLGuVFA3WzXtIDCQSZxQ==", + "dev": true, + "requires": { + "color-name": "^1.1.1" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "colors": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.2.5.tgz", + "integrity": "sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg==", + "dev": true + }, + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", + "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "^0.1.4" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "core-js": { + "version": "2.5.6", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.6.tgz", + "integrity": "sha512-lQUVfQi0aLix2xpyjrrJEvfuYCqPc/HwmTKsC/VNf8q0zsjX7SQZtp4+oRONN5Tsur9GDETPjj+Ub2iDiGZfSQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", + "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cross-env": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.1.5.tgz", + "integrity": "sha512-GSiNTbvTU3pXzewRKGP0Y+rVP2CzifY2pqSEdtHzLLj41pRdkrgY7e4uSnBoR/pmYaqZr/lwwjg/Q4kNX30hWQ==", + "dev": true, + "requires": { + "cross-spawn": "^5.1.0", + "is-windows": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "dargs": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/dargs/-/dargs-5.1.0.tgz", + "integrity": "sha1-7H6lDHhWTNNsnV7Bj2Yyn63ieCk=", + "dev": true + }, + "date-fns": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.29.0.tgz", + "integrity": "sha512-lbTXWZ6M20cWH8N9S6afb0SBm6tMk+uUg6z3MqHPKE9atmsY3kJkTm8vKe93izJ2B2+q5MV990sM2CHgtAZaOw==", + "dev": true + }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, + "dateformat": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz", + "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-extend": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", + "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "detect-conflict": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/detect-conflict/-/detect-conflict-1.0.1.tgz", + "integrity": "sha1-CIZXpmqWHAUBnbfEIwiDsca0F24=", + "dev": true + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "dir-glob": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", + "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "editions": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/editions/-/editions-1.3.4.tgz", + "integrity": "sha512-gzao+mxnYDzIysXKMQi/+M1mjy/rjestjg6OPoYTtI+3Izp23oiGZitsl9lPDPiTGXbcSIk1iJWhliSaglxnUg==", + "dev": true + }, + "ejs": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.6.1.tgz", + "integrity": "sha512-0xy4A/twfrRCnkhfk8ErDi5DqdAsAqeGxht4xkCUrsvhhbQNs7E+4jV0CN7+NKIY0aHE72+XvqtBIXzD31ZbXQ==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.45", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.45.tgz", + "integrity": "sha1-RYrBscXHYM6IEaFtK/vZfsMLr7g=", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/elegant-spinner/-/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.0.0.tgz", + "integrity": "sha512-jox/62b2GofV1qTUQTMPEJSDIGycS43evqYzD/KVtEb9OCoki9cnacUPxCrZa7JfPzZSYOCZhu9O9luaMxAX8g==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.4.0", + "tapable": "^1.0.0" + } + }, + "envinfo": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/envinfo/-/envinfo-4.4.2.tgz", + "integrity": "sha512-5rfRs+m+6pwoKRCFqpsA5+qsLngFms1aWPrxfKbrObCzQaPc3M3yPloZx+BL9UE3dK58cxw36XVQbFRSCCfGSQ==", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz", + "integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=", + "dev": true, + "requires": { + "string-template": "~0.2.1", + "xtend": "~4.0.0" + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "eslint-scope": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-3.7.1.tgz", + "integrity": "sha1-PWPD7f2gLgbgGkUq2IyqzHzctug=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "esprima": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.0.tgz", + "integrity": "sha512-oftTcaMu/EGrEIu904mWteKIv8vMuOgGYo7EhVJJN00R/EED9DCua/xxHRdYnKtcECzVg7xOWhflvJMnqcFZjw==", + "dev": true + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", + "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + } + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "^0.1.0" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "^2.1.0" + } + }, + "expand-tilde": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz", + "integrity": "sha1-l+gBqgUt8CRU3kawK/YhZCzchQI=", + "dev": true, + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz", + "integrity": "sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-glob": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.1.tgz", + "integrity": "sha512-wSyW1TBK3ia5V+te0rGPXudeMHoUQW6O5Y9oATiaGhpENmEifPDlOdhpsnlj5HoG6ttIvGiY1DdCmI9X2xGMhg==", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.1", + "micromatch": "^3.1.10" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", + "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", + "dev": true, + "requires": { + "is-number": "^2.1.0", + "isobject": "^2.0.0", + "randomatic": "^3.0.0", + "repeat-element": "^1.1.2", + "repeat-string": "^1.5.2" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "first-chunk-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", + "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", + "dev": true, + "requires": { + "readable-stream": "^2.0.2" + } + }, + "flow-parser": { + "version": "0.72.0", + "resolved": "https://registry.npmjs.org/flow-parser/-/flow-parser-0.72.0.tgz", + "integrity": "sha512-kFaDtviKlD/rHi6NRp42KTbnPgz/nKcWUJQhqDnLDeKA8uGcRVSy0YlQjaf9M3pFo5PgC3SNFnCPpQGLtHjH2w==", + "dev": true + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.4" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "^1.0.1" + } + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-readdir-recursive": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz", + "integrity": "sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==", + "dev": true + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "fsevents": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.3.tgz", + "integrity": "sha512-X+57O5YkDTiEQGiw8i7wYc2nQgweIekqkepI8Q3y4wVlurgBt2SuwxTeYUYMZIGpLZH3r/TsMjczCMXE5ZOt7Q==", + "dev": true, + "optional": true, + "requires": { + "nan": "^2.9.2", + "node-pre-gyp": "^0.9.0" + }, + "dependencies": { + "abbrev": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "ansi-regex": { + "version": "2.1.1", + "bundled": true, + "dev": true + }, + "aproba": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + }, + "are-we-there-yet": { + "version": "1.1.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, + "balanced-match": { + "version": "1.0.0", + "bundled": true, + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "bundled": true, + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "chownr": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "code-point-at": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "bundled": true, + "dev": true + }, + "console-control-strings": { + "version": "1.1.0", + "bundled": true, + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "debug": { + "version": "2.6.9", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ms": "2.0.0" + } + }, + "deep-extend": { + "version": "0.4.2", + "bundled": true, + "dev": true, + "optional": true + }, + "delegates": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "detect-libc": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "fs-minipass": { + "version": "1.2.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "fs.realpath": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "gauge": { + "version": "2.7.4", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + } + }, + "glob": { + "version": "7.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-unicode": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "iconv-lite": { + "version": "0.4.21", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safer-buffer": "^2.1.0" + } + }, + "ignore-walk": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minimatch": "^3.0.4" + } + }, + "inflight": { + "version": "1.0.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "bundled": true, + "dev": true + }, + "ini": { + "version": "1.3.5", + "bundled": true, + "dev": true, + "optional": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "minimatch": { + "version": "3.0.4", + "bundled": true, + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "bundled": true, + "dev": true + }, + "minipass": { + "version": "2.2.4", + "bundled": true, + "dev": true, + "requires": { + "safe-buffer": "^5.1.1", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.1.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "minipass": "^2.2.1" + } + }, + "mkdirp": { + "version": "0.5.1", + "bundled": true, + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "needle": { + "version": "2.2.0", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "debug": "^2.1.2", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + } + }, + "node-pre-gyp": { + "version": "0.9.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.0", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.1.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, + "nopt": { + "version": "4.0.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "npm-bundled": { + "version": "1.0.3", + "bundled": true, + "dev": true, + "optional": true + }, + "npm-packlist": { + "version": "1.1.10", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "bundled": true, + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "bundled": true, + "dev": true, + "optional": true + }, + "once": { + "version": "1.4.0", + "bundled": true, + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "os-homedir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "os-tmpdir": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "osenv": { + "version": "0.1.5", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "process-nextick-args": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "rc": { + "version": "1.2.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "deep-extend": "~0.4.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "bundled": true, + "dev": true, + "optional": true + } + } + }, + "readable-stream": { + "version": "2.3.6", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "rimraf": { + "version": "2.6.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "glob": "^7.0.5" + } + }, + "safe-buffer": { + "version": "5.1.1", + "bundled": true, + "dev": true + }, + "safer-buffer": { + "version": "2.1.2", + "bundled": true, + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "bundled": true, + "dev": true, + "optional": true + }, + "semver": { + "version": "5.5.0", + "bundled": true, + "dev": true, + "optional": true + }, + "set-blocking": { + "version": "2.0.0", + "bundled": true, + "dev": true, + "optional": true + }, + "signal-exit": { + "version": "3.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "string-width": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "bundled": true, + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-json-comments": { + "version": "2.0.1", + "bundled": true, + "dev": true, + "optional": true + }, + "tar": { + "version": "4.4.1", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "chownr": "^1.0.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.2.4", + "minizlib": "^1.1.0", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.1", + "yallist": "^3.0.2" + } + }, + "util-deprecate": { + "version": "1.0.2", + "bundled": true, + "dev": true, + "optional": true + }, + "wide-align": { + "version": "1.1.2", + "bundled": true, + "dev": true, + "optional": true, + "requires": { + "string-width": "^1.0.2" + } + }, + "wrappy": { + "version": "1.0.2", + "bundled": true, + "dev": true + }, + "yallist": { + "version": "3.0.2", + "bundled": true, + "dev": true + } + } + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "gh-got": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/gh-got/-/gh-got-6.0.0.tgz", + "integrity": "sha512-F/mS+fsWQMo1zfgG9MD8KWvTWPPzzhuVwY++fhQ5Ggd+0P+CAMHtzMZhNxG+TqGfHDChJKsbh6otfMGqO2AKBw==", + "dev": true, + "requires": { + "got": "^7.0.0", + "is-plain-obj": "^1.1.0" + }, + "dependencies": { + "got": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/got/-/got-7.1.0.tgz", + "integrity": "sha512-Y5WMo7xKKq1muPsxD+KmrR8DH5auG7fBdDVueZwETwV6VytKyU9OX/ddpq2/1hp1vIPvVb4T81dKQz3BivkNLw==", + "dev": true, + "requires": { + "decompress-response": "^3.2.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "is-plain-obj": "^1.1.0", + "is-retry-allowed": "^1.0.0", + "is-stream": "^1.0.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "p-cancelable": "^0.3.0", + "p-timeout": "^1.1.1", + "safe-buffer": "^5.0.1", + "timed-out": "^4.0.0", + "url-parse-lax": "^1.0.0", + "url-to-options": "^1.0.1" + } + }, + "p-cancelable": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.3.0.tgz", + "integrity": "sha512-RVbZPLso8+jFeq1MfNvgXtCRED2raz/dKpacfTNxsx6pLEpEomM7gah6VeHSYV3+vo0OAi4MkArtQcWWXuQoyw==", + "dev": true + }, + "p-timeout": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-1.2.1.tgz", + "integrity": "sha1-XrOzU7f86Z8QGhA4iAuwVOu+o4Y=", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "url-parse-lax": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz", + "integrity": "sha1-evjzA2Rem9eaJy56FKxovAYJ2nM=", + "dev": true, + "requires": { + "prepend-http": "^1.0.1" + } + } + } + }, + "github-username": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/github-username/-/github-username-4.1.0.tgz", + "integrity": "sha1-y+KABBiDIG2kISrp5LXxacML9Bc=", + "dev": true, + "requires": { + "gh-got": "^6.0.0" + } + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-all": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-all/-/glob-all-3.1.0.tgz", + "integrity": "sha1-iRPd+17hrHgSZWJBsD1SF8ZLAqs=", + "dev": true, + "requires": { + "glob": "^7.0.5", + "yargs": "~1.2.6" + }, + "dependencies": { + "minimist": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.1.0.tgz", + "integrity": "sha1-md9lelJXTCHJBXSX33QnkLK0wN4=", + "dev": true + }, + "yargs": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-1.2.6.tgz", + "integrity": "sha1-nHtKgv1dWVsr8Xq23MQxNUMv40s=", + "dev": true, + "requires": { + "minimist": "^0.1.0" + } + } + } + }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "^2.0.0", + "is-glob": "^2.0.0" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "^2.0.0" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "global-modules": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", + "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==", + "dev": true, + "requires": { + "global-prefix": "^1.0.1", + "is-windows": "^1.0.1", + "resolve-dir": "^1.0.0" + } + }, + "global-prefix": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz", + "integrity": "sha1-2/dDxsFJklk8ZVVoy2btMsASLr4=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.2", + "homedir-polyfill": "^1.0.1", + "ini": "^1.3.4", + "is-windows": "^1.0.1", + "which": "^1.2.14" + } + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "globby": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz", + "integrity": "sha512-oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "got": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/got/-/got-8.3.1.tgz", + "integrity": "sha512-tiLX+bnYm5A56T5N/n9Xo89vMaO1mrS9qoDqj3u/anVooqGozvY/HbXzEpDfbNeKsHCBpK40gSbz8wGYSp3i1w==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.7.0", + "cacheable-request": "^2.1.1", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^3.0.0", + "into-stream": "^3.1.0", + "is-retry-allowed": "^1.1.0", + "isurl": "^1.0.0-alpha5", + "lowercase-keys": "^1.0.0", + "mimic-response": "^1.0.0", + "p-cancelable": "^0.4.0", + "p-timeout": "^2.0.1", + "pify": "^3.0.0", + "safe-buffer": "^5.1.1", + "timed-out": "^4.0.1", + "url-parse-lax": "^3.0.0", + "url-to-options": "^1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "grouped-queue": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/grouped-queue/-/grouped-queue-0.3.3.tgz", + "integrity": "sha1-wWfSpTGcWg4JZO9qJbfC34mWyFw=", + "dev": true, + "requires": { + "lodash": "^4.17.2" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-color": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/has-color/-/has-color-0.1.7.tgz", + "integrity": "sha1-ZxRKUmDDT8PMpnfQQdr1L+e3iy8=", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbol-support-x": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", + "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==", + "dev": true + }, + "has-to-string-tag-x": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", + "integrity": "sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==", + "dev": true, + "requires": { + "has-symbol-support-x": "^1.4.1" + } + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", + "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.1" + } + }, + "homedir-polyfill": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.1.tgz", + "integrity": "sha1-TCu8inWJmP7r9e1oWA921GdotLw=", + "dev": true, + "requires": { + "parse-passwd": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.0.tgz", + "integrity": "sha512-lIbgIIQA3lz5XaB6vxakj6sDHADJiZadYEJB+FgA+C4nubM1NwcuvUr9EJPmnH1skZqpqUzWborWo8EIUi0Sdw==", + "dev": true + }, + "http-cache-semantics": { + "version": "3.8.1", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", + "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "dev": true + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz", + "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.11.tgz", + "integrity": "sha512-VhDzCKN7K8ufStx/CLj5/PDTMgph+qwN5Pkd5i0sGnVwk56zJ0lkT8Qzi1xqWLS0Wp29DgDtNeS7v8/wMoZeHg==", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.8", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.8.tgz", + "integrity": "sha512-pUh+xUQQhQzevjRHHFqqcTy0/dP/kS9I8HSrUydhihjuD09W6ldVWFtIrwhXdUJHis3i2rZNqEHpZH/cbinFbg==", + "dev": true + }, + "import-local": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-1.0.0.tgz", + "integrity": "sha512-vAaZHieK9qjGo58agRBg+bhHX3hoTZU/Oa3GESWLz7t1U62fk63aHuDJJEteXoDeTCcPmUT+z38gkHPZkkmpmQ==", + "dev": true, + "requires": { + "pkg-dir": "^2.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, + "inquirer": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-5.2.0.tgz", + "integrity": "sha512-E9BmnJbAKLPGonz0HeWHtbKf+EeSP93paWO3ZYoUpq/aowXvYGjjCSuashhXPpzbArIjBbji39THkxTz9ZeEUQ==", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.1.0", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rxjs": "^5.5.2", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "interpret": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz", + "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=", + "dev": true + }, + "into-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz", + "integrity": "sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY=", + "dev": true, + "requires": { + "from2": "^2.1.1", + "p-is-promise": "^1.1.0" + } + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "^2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "^1.0.0" + } + }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", + "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=", + "dev": true + }, + "is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-observable/-/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "dev": true, + "requires": { + "symbol-observable": "^0.2.2" + }, + "dependencies": { + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true + } + } + }, + "is-odd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-2.0.0.tgz", + "integrity": "sha512-OTiixgpZAT1M4NHgS5IguFp/Vz2VI3U7Goh4/HA1adtwyLtSBrxYlcSYkhpAE07s4fKEcjrFxyvtQBND4vFQyQ==", + "dev": true, + "requires": { + "is-number": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + } + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, + "is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", + "dev": true + }, + "is-retry-allowed": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", + "integrity": "sha1-EaBgVotnM5REAz0BJaYaINVk+zQ=", + "dev": true + }, + "is-scoped": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-scoped/-/is-scoped-1.0.0.tgz", + "integrity": "sha1-RJypgpnnEwOCViieyytUDcQ3yzA=", + "dev": true, + "requires": { + "scoped-regex": "^1.0.0" + } + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.2.tgz", + "integrity": "sha1-Sj6XTsDLqQBNP8bN5yCeppNopiE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, + "istextorbinary": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/istextorbinary/-/istextorbinary-2.2.1.tgz", + "integrity": "sha512-TS+hoFl8Z5FAFMK38nhBkdLt44CclNRgDHWeMgsV8ko3nDlr/9UI2Sf839sW7enijf8oKsZYXRvM8g0it9Zmcw==", + "dev": true, + "requires": { + "binaryextensions": "2", + "editions": "^1.3.3", + "textextensions": "2" + } + }, + "isurl": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz", + "integrity": "sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==", + "dev": true, + "requires": { + "has-to-string-tag-x": "^1.2.0", + "is-object": "^1.0.1" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jscodeshift": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.5.0.tgz", + "integrity": "sha512-JAcQINNMFpdzzpKJN8k5xXjF3XDuckB1/48uScSzcnNyK199iWEc9AxKL9OoX5144M2w5zEx9Qs4/E/eBZZUlw==", + "dev": true, + "requires": { + "babel-plugin-transform-flow-strip-types": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-stage-1": "^6.5.0", + "babel-register": "^6.9.0", + "babylon": "^7.0.0-beta.30", + "colors": "^1.1.2", + "flow-parser": "^0.*", + "lodash": "^4.13.1", + "micromatch": "^2.3.7", + "neo-async": "^2.5.0", + "node-dir": "0.1.8", + "nomnom": "^1.8.1", + "recast": "^0.14.1", + "temp": "^0.8.1", + "write-file-atomic": "^1.2.0" + }, + "dependencies": { + "babylon": { + "version": "7.0.0-beta.46", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-7.0.0-beta.46.tgz", + "integrity": "sha512-WFJlg2WatdkXRFMpk7BN/Uzzkjkcjk+WaqnrSCpay+RYl4ypW9ZetZyT9kNt22IH/BQNst3M6PaaBn9IXsUNrg==", + "dev": true + } + } + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "keyv": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz", + "integrity": "sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "^1.0.0" + } + }, + "leb": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/leb/-/leb-0.3.0.tgz", + "integrity": "sha1-Mr7p+tFoMo1q6oUi2DP0GA7tHaM=", + "dev": true + }, + "listr": { + "version": "0.13.0", + "resolved": "https://registry.npmjs.org/listr/-/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/listr-silent-renderer/-/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/listr-update-renderer/-/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/listr-verbose-renderer/-/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "load-json-file": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", + "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + } + } + }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.10", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz", + "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg==", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", + "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/log-update/-/log-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "long": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/long/-/long-3.2.0.tgz", + "integrity": "sha1-2CG3E4yhy1gcFymQ7xTbIAtcR0s=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "math-random": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", + "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", + "dev": true + }, + "md5.js": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", + "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "mem-fs": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/mem-fs/-/mem-fs-1.1.3.tgz", + "integrity": "sha1-uK6NLj/Lb10/kWXBLUVRoGXZicw=", + "dev": true, + "requires": { + "through2": "^2.0.0", + "vinyl": "^1.1.0", + "vinyl-file": "^2.0.0" + } + }, + "mem-fs-editor": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-4.0.2.tgz", + "integrity": "sha512-QHvdXLLNmwJXxKdf7x27aNUren6IoPxwcM8Sfd+S6/ddQQMcYdEtVKsh6ilpqMrU18VQuKZEaH0aCGt3JDbA0g==", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "deep-extend": "^0.5.1", + "ejs": "^2.5.9", + "glob": "^7.0.3", + "globby": "^8.0.0", + "isbinaryfile": "^3.0.2", + "mkdirp": "^0.5.0", + "multimatch": "^2.0.0", + "rimraf": "^2.2.8", + "through2": "^2.0.0", + "vinyl": "^2.0.1" + }, + "dependencies": { + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true + }, + "clone-stats": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", + "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=", + "dev": true + }, + "replace-ext": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", + "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=", + "dev": true + }, + "vinyl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.1.0.tgz", + "integrity": "sha1-Ah+cLPlR1rk5lDyJ617lrdT9kkw=", + "dev": true, + "requires": { + "clone": "^2.1.1", + "clone-buffer": "^1.0.0", + "clone-stats": "^1.0.0", + "cloneable-readable": "^1.0.0", + "remove-trailing-separator": "^1.0.1", + "replace-ext": "^1.0.0" + } + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge2": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.2.2.tgz", + "integrity": "sha512-bgM8twH86rWni21thii6WCMQMRMmwqqdW3sGWi9IipnVAszdLXRjwDwAnyrVXo6DuP3AjRMMttZKUB48QWIFGg==", + "dev": true + }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "^2.0.0", + "array-unique": "^0.2.1", + "braces": "^1.8.2", + "expand-brackets": "^0.1.4", + "extglob": "^0.3.1", + "filename-regex": "^2.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.1", + "kind-of": "^3.0.2", + "normalize-path": "^2.0.1", + "object.omit": "^2.0.0", + "parse-glob": "^3.0.4", + "regex-cache": "^0.4.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", + "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", + "dev": true + }, + "mimic-response": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.0.tgz", + "integrity": "sha1-3z02Uqc/3ta5sLJBRub9BSNTRY4=", + "dev": true + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "multimatch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz", + "integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=", + "dev": true, + "requires": { + "array-differ": "^1.0.0", + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "minimatch": "^3.0.0" + } + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "nan": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.9", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.9.tgz", + "integrity": "sha512-n8R9bS8yQ6eSXaV6jHUpKzD8gLsin02w1HSFiegwrs9E098Ylhw5jdyKPaYqvHknHaSCKTPp7C8dGCQ0q9koXA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-odd": "^2.0.0", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "neo-async": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz", + "integrity": "sha512-3KL3fvuRkZ7s4IFOMfztb7zJp3QaVWnBeGoJlgB38XnCRPj/0tLzzLG5IB8NYOHbJ8g8UGrgZv44GLDk6CxTxA==", + "dev": true + }, + "nice-try": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.4.tgz", + "integrity": "sha512-2NpiFHqC87y/zFke0fC0spBXL3bBsoh/p5H1EFhshxjCR5+0g2d6BiXbUFz9v1sAcxsk2htp2eQnNIci2dIYcA==", + "dev": true + }, + "node-dir": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/node-dir/-/node-dir-0.1.8.tgz", + "integrity": "sha1-VfuN62mQcHB/tn+RpGDwRIKUx30=", + "dev": true + }, + "node-libs-browser": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.1.0.tgz", + "integrity": "sha512-5AzFzdoIMb89hBGMZglEegffzgRg+ZFoUmisQ8HI4j1KDdpx13J0taNp2y9xPbur6W61gepGDDotGBVQ7mfUCg==", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^1.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.0", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "nomnom": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/nomnom/-/nomnom-1.8.1.tgz", + "integrity": "sha1-IVH3Ikcrp55Qp2/BJbuMjy5Nwqc=", + "dev": true, + "requires": { + "chalk": "~0.4.0", + "underscore": "~1.6.0" + }, + "dependencies": { + "ansi-styles": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-1.0.0.tgz", + "integrity": "sha1-yxAt8cVvUSPquLZ817mAJ6AnkXg=", + "dev": true + }, + "chalk": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-0.4.0.tgz", + "integrity": "sha1-UZmj3c0MHv4jvAjBsCewYXbgxk8=", + "dev": true, + "requires": { + "ansi-styles": "~1.0.0", + "has-color": "~0.1.0", + "strip-ansi": "~0.1.0" + } + }, + "strip-ansi": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz", + "integrity": "sha1-OeipjQRNFQZgq+SmgIrPcLt7yZE=", + "dev": true + } + } + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "is-builtin-module": "^1.0.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "normalize-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz", + "integrity": "sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw==", + "dev": true, + "requires": { + "prepend-http": "^2.0.0", + "query-string": "^5.0.1", + "sort-keys": "^2.0.0" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "^0.1.4", + "is-extendable": "^0.1.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/ora/-/ora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "http://registry.npmjs.org/onetime/-/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "^0.7.0", + "lcid": "^1.0.0", + "mem": "^1.1.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "output-file-sync": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz", + "integrity": "sha1-0KM+7+YaIF+suQCS6CZZjVJFznY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.4", + "mkdirp": "^0.5.1", + "object-assign": "^4.1.0" + } + }, + "p-cancelable": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz", + "integrity": "sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ==", + "dev": true + }, + "p-each-series": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", + "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", + "dev": true, + "requires": { + "p-reduce": "^1.0.0" + } + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz", + "integrity": "sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4=", + "dev": true + }, + "p-lazy": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-lazy/-/p-lazy-1.0.0.tgz", + "integrity": "sha1-7FPIAvLuOsKPFmzILQsrAt4nqDU=", + "dev": true + }, + "p-limit": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.2.0.tgz", + "integrity": "sha512-Y/OtIaXtUPr4/YpMv1pCL5L5ed0rumAaAeBSj12F+bSlMdys7i8oQF/GUJmfpTS/QoaRrS/k6pma29haJpsMng==", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-1.2.0.tgz", + "integrity": "sha512-r6zKACMNhjPJMTl8KcFH4li//gkrXWfbD6feV8l6doRHlzljFWGJ2AP6iKaCJXyZmAUMOPtvbW7EXkbWO/pLEA==", + "dev": true + }, + "p-reduce": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-reduce/-/p-reduce-1.0.0.tgz", + "integrity": "sha1-GMKw3ZNqRpClKfgjH1ig/bakffo=", + "dev": true + }, + "p-timeout": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz", + "integrity": "sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA==", + "dev": true, + "requires": { + "p-finally": "^1.0.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz", + "integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg==", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "~0.2.2", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "parse-asn1": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", + "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "^0.3.0", + "is-dotfile": "^1.0.0", + "is-extglob": "^1.0.0", + "is-glob": "^2.0.0" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "pbkdf2": { + "version": "3.0.16", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.16.tgz", + "integrity": "sha512-y4CXP3thSxqf7c0qmOF+9UeOTrifiVTIM+u7NWlq+PRsHbr7r7dpCmvzrZxa96JJUNi0Y5w9VqG5ZNeCVMoDcA==", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, + "prettier": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-1.12.1.tgz", + "integrity": "sha1-wa0g6APndJ+vkFpAnSNn4Gu+cyU=", + "dev": true + }, + "pretty-bytes": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", + "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.2.tgz", + "integrity": "sha512-4kJ5Esocg8X3h8YgJsKAuoesBgB7mqH3eowiDzMUPKiRDDE7E/BqqZD1hnTByIaAFiwAw246YEltSq7tdrOH0Q==", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.0.tgz", + "integrity": "sha512-UWi0klDoq8xtVzlMRgENV9F7iCTZExaJQSQL187UXsxpk9NnrKGqTqqUNYAKGOzucSOxs2+jUnRNI+rLviPhJg==", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "punycode": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.0.tgz", + "integrity": "sha1-X4Y+3Im5bbCQdLrXlHvwkFbKTn0=", + "dev": true + }, + "query-string": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", + "dev": true, + "requires": { + "decode-uri-component": "^0.2.0", + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.0.0.tgz", + "integrity": "sha512-VdxFOIEY3mNO5PtSRkkle/hPJDHvQhK21oa73K4yAc9qmp6N429gAyF1gZMOTMeS0/AYzaV/2Trcef+NaIonSA==", + "dev": true, + "requires": { + "is-number": "^4.0.0", + "kind-of": "^6.0.0", + "math-random": "^1.0.1" + }, + "dependencies": { + "is-number": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "randombytes": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", + "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "read-chunk": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/read-chunk/-/read-chunk-2.1.0.tgz", + "integrity": "sha1-agTAkoAF7Z1C4aasVgDhnLx/9lU=", + "dev": true, + "requires": { + "pify": "^3.0.0", + "safe-buffer": "^5.1.1" + } + }, + "read-pkg": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", + "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", + "dev": true, + "requires": { + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" + } + }, + "read-pkg-up": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-3.0.0.tgz", + "integrity": "sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^3.0.0" + } + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "minimatch": "^3.0.2", + "readable-stream": "^2.0.2", + "set-immediate-shim": "^1.0.1" + } + }, + "recast": { + "version": "0.14.7", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.14.7.tgz", + "integrity": "sha512-/nwm9pkrcWagN40JeJhkPaRxiHXBRkXyRh/hgU088Z/v+qCy+zIHHY6bC6o7NaKAxPqtE6nD8zBH1LfU0/Wx6A==", + "dev": true, + "requires": { + "ast-types": "0.11.3", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerate": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", + "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "babel-types": "^6.19.0", + "private": "^0.1.6" + } + }, + "regex-cache": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", + "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", + "dev": true, + "requires": { + "is-equal-shallow": "^0.1.3" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "^1.2.1", + "regjsgen": "^0.2.0", + "regjsparser": "^0.1.4" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "replace-ext": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-0.0.1.tgz", + "integrity": "sha1-KbvZIHinOfC8zitO5B6DeVNSKSQ=", + "dev": true + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "resolve": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz", + "integrity": "sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==", + "dev": true, + "requires": { + "path-parse": "^1.0.5" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "dev": true, + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "^7.0.5" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "run-async": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", + "integrity": "sha1-A3GrSuC91yDUFm19/aZP96RFpsA=", + "dev": true, + "requires": { + "is-promise": "^2.1.0" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rxjs": { + "version": "5.5.10", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.10.tgz", + "integrity": "sha512-SRjimIDUHJkon+2hFo7xnvNC4ZEHGzCRwh9P7nzX3zPkCGFEg/tuElrNR7L/rZMagnK2JeH2jQwPRpmyXyLB6A==", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "scoped-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/scoped-regex/-/scoped-regex-1.0.0.tgz", + "integrity": "sha1-o0a7Gs1CB65wvXwMfKnlZra63bg=", + "dev": true + }, + "semver": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz", + "integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==", + "dev": true + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shelljs": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.2.tgz", + "integrity": "sha512-pRXeNrCA2Wd9itwhvLp5LZQvPJ0wU6bcjaTMywHHGX5XWhVN2nzSu7WV0q+oUY7mGK3mgSkDDzP3MgjqdyIgbQ==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "slide": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", + "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=", + "dev": true + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "sort-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", + "integrity": "sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.2.tgz", + "integrity": "sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA==", + "dev": true, + "requires": { + "atob": "^2.1.1", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "^0.5.6" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.0.0.tgz", + "integrity": "sha512-N19o9z5cEyc8yQQPukRCZ9EUmb4HUpnrmaL/fxS2pBo2jbfcFRVuFZ/oFC+vZz0MNNk0h80iMn5/S6qGZOL5+g==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz", + "integrity": "sha512-4K1NsmrlCU1JJgUrtgEeTVyfx8VaYea9J9LvARxhbHtVtohPs/gFGG5yy49beySjlIMhhXZ4QqujIZEfS4l6Cg==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", + "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz", + "integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA==", + "dev": true + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.2.tgz", + "integrity": "sha512-QllfrBhqF1DPcz46WxKTs6Mz1Bpc+8Qm6vbqOpVav5odAXwbyzwnEczoWqtxrsmlO+cJqtPrp/8gWKWjaKLLlA==", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "stream-to-observable": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/stream-to-observable/-/stream-to-observable-0.2.0.tgz", + "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", + "dev": true, + "requires": { + "any-observable": "^0.2.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string-template": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz", + "integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=", + "dev": true + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-bom-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", + "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", + "dev": true, + "requires": { + "first-chunk-stream": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + }, + "tapable": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.0.0.tgz", + "integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==", + "dev": true + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "requires": { + "os-tmpdir": "^1.0.0", + "rimraf": "~2.2.6" + }, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "textextensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.2.0.tgz", + "integrity": "sha512-j5EMxnryTvKxwH2Cq+Pb43tsf6sdEgw6Pdwxk83mPaq0ToeFJt6WE4J3s5BqY7vmjlLgkgXvhtXUxo80FyBhCA==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "^2.1.5", + "xtend": "~4.0.1" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.10.tgz", + "integrity": "sha512-YvC1SV1XdOUaL6gx5CoGroT3Gu49pK9+TZ38ErPldOWW4j49GI1HKs9DV+KGq/w6y+LZ72W1c8cKz2vzY+qpzg==", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + } + } + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.5.tgz", + "integrity": "sha512-hIQJ1yxAPhEA2yW/i7Fr+SXZVMp+VEI3d42RTHBgQd2yhp/1UdBcR3QEWPV5ahBxlqQDMEMTuTEvDHSFINfwSw==", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "underscore": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz", + "integrity": "sha1-izixDKze9jM3uLJOT/htRa6lKag=", + "dev": true + }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^0.4.3" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.1", + "to-object-path": "^0.3.0" + } + } + } + }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + } + } + }, + "untildify": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-3.0.2.tgz", + "integrity": "sha1-fx8wIFWz/qDz6B3HjrNnZstl4/E=", + "dev": true + }, + "upath": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.5.tgz", + "integrity": "sha512-qbKn90aDQ0YEwvXoLqj0oiuUYroLX2lVHZ+b+xwjozFasAOC4GneDq5+OaIG5Zj+jFmbz/uO+f7a9qxjktJQww==", + "dev": true + }, + "uri-js": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.1.tgz", + "integrity": "sha512-jpKCA3HjsBfSDOEgxRDAxQCNyHfCPSbq57PqCkd3gAyBuPb3IWxw54EHncqESznIdqSetHfw3D7ylThu2Kcc9A==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + } + }, + "url-to-options": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", + "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=", + "dev": true + }, + "use": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.0.tgz", + "integrity": "sha512-6UJEQM/L+mzC3ZJNM56Q4DFGLX/evKGRg15UJHGB9X5j5Z3AFbgZvjUh2yq/UJUY4U5dh7Fal++XbNg1uzpRAw==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + } + } + }, + "user-home": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz", + "integrity": "sha1-K1viOjK2Onyd640PKNSFcko98ZA=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "v8-compile-cache": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz", + "integrity": "sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA==", + "dev": true + }, + "v8flags": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz", + "integrity": "sha1-qrGh+jDUX4jdMhFIh1rALAtV5bQ=", + "dev": true, + "requires": { + "user-home": "^1.1.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz", + "integrity": "sha512-63ZOUnL4SIXj4L0NixR3L1lcjO38crAbgrTpl28t8jjrfuiOBL5Iygm+60qPs/KsZGzPNg6Smnc/oY16QTjF0g==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vinyl": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-1.2.0.tgz", + "integrity": "sha1-XIgDbPVl5d8FVYv8kR+GVt8hiIQ=", + "dev": true, + "requires": { + "clone": "^1.0.0", + "clone-stats": "^0.0.1", + "replace-ext": "0.0.1" + } + }, + "vinyl-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-2.0.0.tgz", + "integrity": "sha1-p+v1/779obfRjRQPyweyI++2dRo=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.3.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0", + "strip-bom-stream": "^2.0.0", + "vinyl": "^1.1.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", + "dev": true, + "requires": { + "indexof": "0.0.1" + } + }, + "watchpack": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", + "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", + "dev": true, + "requires": { + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "chokidar": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.3.tgz", + "integrity": "sha512-zW8iXYZtXMx4kux/nuZVXjkLP+CyIK5Al5FHnj1OgTKGZfp4Oy6/ymtMSKFv3GD8DviEmUPmJg9eFdJ/JzudMg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.0", + "braces": "^2.3.0", + "fsevents": "^1.1.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.1", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^2.1.1", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.0.0", + "upath": "^1.0.0" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "webassemblyjs": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/webassemblyjs/-/webassemblyjs-1.4.3.tgz", + "integrity": "sha512-4lOV1Lv6olz0PJkDGQEp82HempAn147e6BXijWDzz9g7/2nSebVP9GVg62Fz5ZAs55mxq13GA0XLyvY8XkyDjg==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/validation": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "@webassemblyjs/wast-parser": "1.4.3", + "long": "^3.2.0" + } + }, + "webpack": { + "version": "4.8.3", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.8.3.tgz", + "integrity": "sha512-/hfAjBISycdK597lxONjKEFX7dSIU1PsYwC3XlXUXoykWBlv9QV5HnO+ql3HvrrgfBJ7WXdnjO9iGPR2aAc5sw==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.4.3", + "@webassemblyjs/wasm-edit": "1.4.3", + "@webassemblyjs/wasm-parser": "1.4.3", + "acorn": "^5.0.0", + "acorn-dynamic-import": "^3.0.0", + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0", + "chrome-trace-event": "^0.1.1", + "enhanced-resolve": "^4.0.0", + "eslint-scope": "^3.7.1", + "loader-runner": "^2.3.0", + "loader-utils": "^1.1.0", + "memory-fs": "~0.4.1", + "micromatch": "^3.1.8", + "mkdirp": "~0.5.0", + "neo-async": "^2.5.0", + "node-libs-browser": "^2.0.0", + "schema-utils": "^0.4.4", + "tapable": "^1.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "watchpack": "^1.5.0", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + } + } + } + }, + "webpack-addons": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/webpack-addons/-/webpack-addons-1.1.5.tgz", + "integrity": "sha512-MGO0nVniCLFAQz1qv22zM02QPjcpAoJdy7ED0i3Zy7SY1IecgXCm460ib7H/Wq7e9oL5VL6S2BxaObxwIcag0g==", + "dev": true, + "requires": { + "jscodeshift": "^0.4.0" + }, + "dependencies": { + "ast-types": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/ast-types/-/ast-types-0.10.1.tgz", + "integrity": "sha512-UY7+9DPzlJ9VM8eY0b2TUZcZvF+1pO0hzMtAyjBYKhOmnvRlqYNYnWdtsMj0V16CGaMlpL0G1jnLbLo4AyotuQ==", + "dev": true + }, + "jscodeshift": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.4.1.tgz", + "integrity": "sha512-iOX6If+hsw0q99V3n31t4f5VlD1TQZddH08xbT65ZqA7T4Vkx68emrDZMUOLVvCEAJ6NpAk7DECe3fjC/t52AQ==", + "dev": true, + "requires": { + "async": "^1.5.0", + "babel-plugin-transform-flow-strip-types": "^6.8.0", + "babel-preset-es2015": "^6.9.0", + "babel-preset-stage-1": "^6.5.0", + "babel-register": "^6.9.0", + "babylon": "^6.17.3", + "colors": "^1.1.2", + "flow-parser": "^0.*", + "lodash": "^4.13.1", + "micromatch": "^2.3.7", + "node-dir": "0.1.8", + "nomnom": "^1.8.1", + "recast": "^0.12.5", + "temp": "^0.8.1", + "write-file-atomic": "^1.2.0" + } + }, + "recast": { + "version": "0.12.9", + "resolved": "https://registry.npmjs.org/recast/-/recast-0.12.9.tgz", + "integrity": "sha512-y7ANxCWmMW8xLOaiopiRDlyjQ9ajKRENBH+2wjntIbk3A6ZR1+BLQttkmSHMY7Arl+AAZFwJ10grg2T6f1WI8A==", + "dev": true, + "requires": { + "ast-types": "0.10.1", + "core-js": "^2.4.1", + "esprima": "~4.0.0", + "private": "~0.1.5", + "source-map": "~0.6.1" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "webpack-cli": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-2.1.3.tgz", + "integrity": "sha512-5AsKoL/Ccn8iTrwk3uErdyhetGH+c7VRQ7Itim2GL0IhBRq5rtojVDk00buMRmFmBpw1RvHXq97Gup965LbozA==", + "dev": true, + "requires": { + "chalk": "^2.3.2", + "cross-spawn": "^6.0.5", + "diff": "^3.5.0", + "enhanced-resolve": "^4.0.0", + "envinfo": "^4.4.2", + "glob-all": "^3.1.0", + "global-modules": "^1.0.0", + "got": "^8.2.0", + "import-local": "^1.0.0", + "inquirer": "^5.1.0", + "interpret": "^1.0.4", + "jscodeshift": "^0.5.0", + "listr": "^0.13.0", + "loader-utils": "^1.1.0", + "lodash": "^4.17.5", + "log-symbols": "^2.2.0", + "mkdirp": "^0.5.1", + "p-each-series": "^1.0.0", + "p-lazy": "^1.0.0", + "prettier": "^1.5.3", + "supports-color": "^5.3.0", + "v8-compile-cache": "^1.1.2", + "webpack-addons": "^1.1.5", + "yargs": "^11.1.0", + "yeoman-environment": "^2.0.0", + "yeoman-generator": "^2.0.4" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + } + } + }, + "which": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "write-file-atomic": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz", + "integrity": "sha1-+Aek8LHZ6ROuekgRLmzDrxmRtF8=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "slide": "^1.1.5" + } + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "yargs": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-11.1.0.tgz", + "integrity": "sha512-NwW69J42EsCSanF8kyn5upxvjp5ds+t3+udGBeTbFnERA+lF541DDpMawzo4z6W/QrzNM18D+BPMiOBibnFV5A==", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^2.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + }, + "dependencies": { + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + } + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + } + }, + "yeoman-environment": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-2.1.1.tgz", + "integrity": "sha512-IBLwCUrJrDxBYuwdYm1wuF3O/CR2LpXR0rFS684QOrU6x69DPPrsdd20dZOFaedZ/M9sON7po73WhO3I1CbgNQ==", + "dev": true, + "requires": { + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^3.1.0", + "diff": "^3.3.1", + "escape-string-regexp": "^1.0.2", + "globby": "^8.0.1", + "grouped-queue": "^0.3.3", + "inquirer": "^5.2.0", + "is-scoped": "^1.0.0", + "lodash": "^4.17.10", + "log-symbols": "^2.1.0", + "mem-fs": "^1.1.0", + "strip-ansi": "^4.0.0", + "text-table": "^0.2.0", + "untildify": "^3.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "yeoman-generator": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-2.0.5.tgz", + "integrity": "sha512-rV6tJ8oYzm4mmdF2T3wjY+Q42jKF2YiiD0VKfJ8/0ZYwmhCKC9Xs2346HVLPj/xE13i68psnFJv7iS6gWRkeAg==", + "dev": true, + "requires": { + "async": "^2.6.0", + "chalk": "^2.3.0", + "cli-table": "^0.3.1", + "cross-spawn": "^6.0.5", + "dargs": "^5.1.0", + "dateformat": "^3.0.3", + "debug": "^3.1.0", + "detect-conflict": "^1.0.0", + "error": "^7.0.2", + "find-up": "^2.1.0", + "github-username": "^4.0.0", + "istextorbinary": "^2.2.1", + "lodash": "^4.17.10", + "make-dir": "^1.1.0", + "mem-fs-editor": "^4.0.0", + "minimist": "^1.2.0", + "pretty-bytes": "^4.0.2", + "read-chunk": "^2.1.0", + "read-pkg-up": "^3.0.0", + "rimraf": "^2.6.2", + "run-async": "^2.0.0", + "shelljs": "^0.8.0", + "text-table": "^0.2.0", + "through2": "^2.0.0", + "yeoman-environment": "^2.0.5" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "async": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz", + "integrity": "sha512-xAfGg1/NTLBBKlHFmnd7PlmUW9KhVQIUuSrYem9xzFUZy13ScvtyGGejaae9iAVRiRq9+Cx7DPFaAAhCpyxyPw==", + "dev": true, + "requires": { + "lodash": "^4.14.0" + } + }, + "chalk": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", + "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", + "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..ee67753 --- /dev/null +++ b/package.json @@ -0,0 +1,32 @@ +{ + "name": "webao", + "version": "2.1.0", + "description": "Web-based Attorney Online client", + "main": "client.js", + "scripts": { + "babel": "babel ui.js -o ui.b.js", + "webpack": "webpack", + "deploy": "cross-env NODE_ENV=production webpack -p", + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/stonedDiscord/stonedDiscord.github.io.git" + }, + "author": "stonedDiscord", + "bugs": { + "url": "https://github.com/stonedDiscord/stonedDiscord.github.io/issues" + }, + "homepage": "https://github.com/stonedDiscord/stonedDiscord.github.io#readme", + "devDependencies": { + "babel-cli": "^6.26.0", + "babel-core": "^6.26.3", + "babel-loader": "^7.1.4", + "babel-preset-env": "^1.7.0", + "babel-preset-es2015": "^6.24.1", + "cross-env": "^5.1.5", + "uglify-es": "3.3.9", + "webpack": "^4.8.3", + "webpack-cli": "^2.1.3" + } +} diff --git a/webAO/client.b.js b/webAO/client.b.js new file mode 100644 index 0000000..301300e --- /dev/null +++ b/webAO/client.b.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(i){if(t[i])return t[i].exports;var c=t[i]={i:i,l:!1,exports:{}};return e[i].call(c.exports,c,c.exports,n),c.l=!0,c.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}();function c(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.onOOCEnter=f,t.onEnter=y,t.musiclist_click=v,t.changeMusicVolume=E,t.changeSFXVolume=_,t.changeBlipVolume=I,t.changeCharacter=k,t.imgError=B,t.demoError=b,t.ReconnectButton=C,t.RetryButton=x,t.pickchar=M,t.pickemotion=S,t.toggleshout=O;var s={};location.search.substr(1).split("&").forEach(function(e){s[e.split("=")[0]]=e.split("=")[1]});var o=s.ip,a=s.mode,l=s.asset||"http://assets.aceattorneyonline.com/base/",r=l+"sounds/music/",u=!1;/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)&&(u=!0);var d=0,h=new Date(0),m=function(){function e(t){var n=this;c(this,e),this.serv=new WebSocket("ws://"+t),this.serv.onopen=function(e){return n.onOpen(e)},this.serv.onclose=function(e){return n.onClose(e)},this.serv.onmessage=function(e){return n.onMessage(e)},this.serv.onerror=function(e){return n.onError(e)},this.playerID=1,this.charID=-1,this.chars=[],this.emotes=[],this.selectedEmote=-1,this.checkUpdater=null,this.musicList=Object(),this.handlers={MS:function(e){return n.handleMS(e)},CT:function(e){return n.handleCT(e)},MC:function(e){return n.handleMC(e)},RMC:function(e){return n.handleRMC(e)},CI:function(e){return n.handleCI(e)},SC:function(e){return n.handleSC(e)},EI:function(e){return n.handleEI(e)},EM:function(e){return n.handleEM(e)},SM:function(e){return n.handleSM(e)},music:function(e){return n.handlemusic(e)},DONE:function(e){return n.handleDONE(e)},BN:function(e){return n.handleBN(e)},NBG:function(e){return n.handleNBG(e)},HP:function(e){return n.handleHP(e)},ID:function(e){return n.handleID(e)},PN:function(e){return n.handlePN(e)},SI:function(e){return n.handleSI(e)},CharsCheck:function(e){return n.handleCharsCheck(e)},PV:function(e){return n.handlePV(e)}},this._lastTimeICReceived=new Date(0)}return i(e,[{key:"me",value:function(){return this.chars[this.charID]}},{key:"myEmote",value:function(){return this.emotes[this.selectedEmote]}},{key:"sendOOC",value:function(e){this.serv.send("CT#web"+this.playerID+"#"+D(e)+"#%")}},{key:"sendIC",value:function(e,t,n,i,c,s,o,a,l){this.serv.send("MS#chat#"+e+"#"+t+"#"+n+"#"+D(i)+"#"+c+"#"+s+"#"+o+"#"+this.charID+"#"+a+"#"+d+"#0#0#0#0#%")}},{key:"sendMusicChange",value:function(e){this.serv.send("MC#"+e+"#"+this.charID+"#%")}},{key:"sendLeaveRoom",value:function(){this.serv.send("FC#%")}},{key:"joinServer",value:function(){var e=this;this.serv.send("HI#"+navigator.userAgent.hashCode()+"#%"),this.serv.send("ID#webAO#2.4.5#%"),this.CHECKupdater=setInterval(function(){return e.sendCheck},5e3)}},{key:"sendCharacter",value:function(e){this.serv.send("CC#"+this.playerID+"#"+e+"#web#%")}},{key:"sendMusic",value:function(e){this.serv.send("MC#"+e)}},{key:"sendCheck",value:function(){this.serv.send("CH#"+this.charID+"#%")}},{key:"onOpen",value:function(e){"join"==a?H.joinServer():document.getElementById("client_loading").style.display="none"}},{key:"onClose",value:function(e){console.error("The connection was closed: "+e.reason+" ("+e.code+")"),1001!==e.code&&(document.getElementById("client_error").style.display="block",document.getElementById("error_id").textContent=e.code,this.cleanup())}},{key:"onMessage",value:function(e){var t=e.data;console.debug(t);var n=t.split("%")[0].split("#"),i=n[0],c=this.handlers[i];void 0!==c?c(n):console.warn("Invalid packet header "+i)}},{key:"onError",value:function(e){console.error("A network error occurred: "+e.reason+" ("+e.code+")"),document.getElementById("client_error").style.display="block",document.getElementById("error_id").textContent=e.code,this.cleanup()}},{key:"cleanup",value:function(){try{this.serv.close(1001)}catch(e){}clearInterval(this.checkUpdater)}},{key:"handleMS",value:function(e){if(e[4]!=L.chatmsg.content){document.getElementById("client_inner_chat").innerHTML="";for(var t={pre:escape(e[2]),character:-1,preanim:escape(e[2]),nameplate:e[3],name:e[3],speaking:"(b)"+escape(e[4]),silent:"(a)"+escape(e[4]),content:e[5],side:e[6],sound:escape(e[7]),type:e[8],snddelay:e[10],objection:e[11],evidence:e[12],flash:e[14],color:e[15],isnew:!0},n=0;n<this.chars.length;n++)if(this.chars[n].name==e[3]){t.character=n;break}t.character==this.charID&&(document.getElementById("client_inputbox").value="",d&&(document.getElementById("button_"+d).className="client_button",d=0)),L.say(t)}}},{key:"handleCT",value:function(e){var t=document.getElementById("client_ooclog");t.innerHTML+=e[1]+": "+e[2]+"\r\n",t.scrollTop>t.scrollHeight-60&&(t.scrollTop=t.scrollHeight)}},{key:"handleMC",value:function(e){var t=L.music;(t.pause(),t.src=r+e[1],t.play(),e[2]>=0)?T(this.chars[e[2]].name+" changed music to "+e[1]):T("The music was changed to "+e[1])}},{key:"handleRMC",value:function(e){L.music.pause(),L.music=new Audio(this.musicList[e[1]]);var t=L.music;t.totime=e[1],t.offset=(new Date).getTime()/1e3,t.addEventListener("loadedmetadata",function(){t.currentTime+=parseFloat(t.totime+((new Date).getTime()/1e3-t.offset)).toFixed(3),t.play()},!1)}},{key:"handleCI",value:function(e){document.getElementById("client_loadingtext").innerHTML="Loading Character "+e[1],this.serv.send("AN#"+(e[1]/10+1)+"#%");for(var t=2;t<e.length-1;t++)if(t%2==0){var n=e[t].split("&");this.chars[e[t-1]]={name:n[0],desc:n[1],evidence:n[3],icon:l+"characters/"+escape(n[0])+"/char_icon.png"}}}},{key:"handleSC",value:function(e){document.getElementById("client_loadingtext").innerHTML="Loading Characters";for(var t=1;t<e.length-1;t++){var n=e[t].split("&");this.chars[t-1]={name:n[0],desc:n[1],evidence:n[3],icon:l+"characters/"+escape(n[0])+"/char_icon.png"}}this.serv.send("RM#%")}},{key:"handleEI",value:function(e){document.getElementById("client_loadingtext").innerHTML="Loading Evidence "+e[1],this.serv.send("RM#%")}},{key:"handleEM",value:function(e){document.getElementById("client_loadingtext").innerHTML="Loading Music "+e[1],this.serv.send("AM#"+(e[1]/10+1)+"#%");for(var t=document.getElementById("client_musiclist"),n=2;n<e.length-1;n++)if(n%2==0){var i=document.createElement("OPTION");i.text=e[n],t.options.add(i)}}},{key:"handleSM",value:function(e){document.getElementById("client_loadingtext").innerHTML="Loading Music ";for(var t=document.getElementById("client_musiclist"),n=1;n<e.length-1;n++){var i=document.createElement("OPTION");i.text=e[n],t.options.add(i)}this.serv.send("RD#%")}},{key:"handlemusic",value:function(e){for(var t=0;t<e.length/2;t++)this.musicList[e[2*t]]=e[2*t+1]}},{key:"handleDONE",value:function(e){document.getElementById("client_loading").style.display="none",document.getElementById("client_charselect").style.display="block"}},{key:"handleBN",value:function(e){L.bgname=escape(e[1])}},{key:"handleNBG",value:function(e){}},{key:"handleHP",value:function(e){1==e[1]?document.getElementById("client_defense_hp").style.clip="rect(0px,"+90*e[2]/10+"px,20px,0px)":document.getElementById("client_prosecutor_hp").style.clip="rect(0px,"+90*e[2]/10+"px,20px,0px)"}},{key:"handleID",value:function(e){this.playerID=e[1]}},{key:"handlePN",value:function(e){this.serv.send("askchaa#%")}},{key:"handleSI",value:function(e){u?this.serv.send("askchar2#%"):this.serv.send("RC#%")}},{key:"handleCharsCheck",value:function(e){document.getElementById("client_chartable").innerHTML="";for(var t=0;t<this.chars.length;t++){if(t%8==0)var n=document.createElement("TR");var i=document.createElement("TD"),c=void 0,s=this.chars[t].icon;c="-1"==e[t+1]?" dark":"",i.innerHTML="<img class='demothing"+c+"' id='demo_"+t+"' src='"+s+"' alt='"+this.chars[t].desc+"' onclick='pickchar("+t+")' onerror='demoError(this);'>",n.appendChild(i),t%8==0&&document.getElementById("client_chartable").appendChild(n)}w("def")}},{key:"handlePV",value:function(e){this.charID=e[3],document.getElementById("client_charselect").style.display="none";var t=this.me(),n=this.emotes,i=new XMLHttpRequest;i.open("GET",l+"characters/"+escape(this.me().name)+"/char.ini",!0),i.responseType="text",i.onload=function(e){if(200==this.status){var i=this.responseText,c=g.parse(i);t.side=c.Options.side;for(var s=1;s<c.Emotions.number;s++){var o=c.Emotions[s].split("#"),a="0",r="0";void 0!==c.SoundN&&(a=c.SoundN[s]),void 0!==c.SoundT&&(r=c.SoundT[s]),n[s]={desc:o[0],speaking:o[1],silent:o[2],zoom:o[3],sfx:a,sfxdelay:r,button_off:l+"characters/"+escape(t.name)+"/emotions/button"+s+"_off.png",button_on:l+"characters/"+escape(t.name)+"/emotions/button"+s+"_on.png"},document.getElementById("client_emo").innerHTML+="<img src='"+n[s].button_off+"' id='emo_"+s+"' alt='"+n[s].desc+"' class='client_button' onclick='pickemotion("+s+")'>"}S(1)}},i.send()}}]),e}(),p=function(){function e(){c(this,e),this.textnow="",this.chatmsg={isnew:!1,content:"",objection:"0",sound:"",startspeaking:!1,side:null,color:"0",snddelay:0},this.blip=new Audio(l+"sounds/general/sfx-blipmale.wav"),this.blip.volume=.5,this.blipChannels=new Array(6);for(var t=0;t<this.blipChannels.length;t++)this.blipChannels[t]=new Audio(l+"sounds/general/sfx-blipmale.wav"),this.blipChannels[t].volume=.5;this.currentBlipChannel=0,this.sfxaudio=new Audio(l+"sounds/general/sfx-blipmale.wav"),this.sfxplayed=0,this.music=new Audio,this.music.play(),this.updater=null,this.bgname="gs4",this.shoutTimer=0,this.textTimer=0,this._animating=!1}return i(e,[{key:"isAnimating",value:function(){return this._animating}},{key:"setBlipVolume",value:function(e){for(var t=0;t<this.blipChannels.length;t++)this.blipChannels[t].volume=e}},{key:"bgFolder",value:function(){return l+"background/"+this.bgname+"/"}},{key:"say",value:function(e){var t=this;this.chatmsg=e,T(e.content,e.nameplate),w(e.side),this.textnow="",this.sfxplayed=0,this.textTimer=0,this._animating=!0,this.updater=setInterval(function(){return t.updateText()},65)}},{key:"updateText",value:function(){if(""==this.chatmsg.content.trim()?(document.getElementById("client_name").style.display="none",document.getElementById("client_chat").style.display="none"):(document.getElementById("client_name").style.display="block",document.getElementById("client_chat").style.display="block"),this.chatmsg.isnew){var e={1:"holdit",2:"takethat",3:"objection"}[this.chatmsg.objection];void 0!==e?(document.getElementById("client_char").src=l+"misc/"+e+".gif",new Audio(l+"/characters/"+this.chatmsg.name+"/"+e+".wav").play(),this.shoutTimer=800):this.shoutTimer=0,this.chatmsg.isnew=!1,this.chatmsg.startspeaking=!0}if(this.textTimer>=this.shoutTimer)if(this.chatmsg.startspeaking){w(this.chatmsg.side),document.getElementById("client_char").src=l+"characters/"+escape(this.chatmsg.name)+"/"+this.chatmsg.speaking+".gif",document.getElementById("client_name").style.fontSize=.7*document.getElementById("client_name").offsetHeight+"px",document.getElementById("client_chat").style.fontSize=.25*document.getElementById("client_chat").offsetHeight+"px",document.getElementById("client_name").innerHTML="<p>"+this.chatmsg.nameplate.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")+"</p>";var t="color: "+({0:"#ffffff",1:"#00ff00",2:"#ff0000",3:"#ffaa00",4:"#0000ff",5:"#ffff00",6:"#aa00aa"}[this.chatmsg.color]||"#ffffff");document.getElementById("client_inner_chat").style=t,this.chatmsg.startspeaking=!1}else this.textnow!=this.chatmsg.content&&(" "!=this.chatmsg.content.charAt(this.textnow.length)&&(this.blipChannels[this.currentBlipChannel].play(),this.currentBlipChannel++,this.currentBlipChannel%=this.blipChannels.length),this.textnow=this.chatmsg.content.substring(0,this.textnow.length+1),document.getElementById("client_inner_chat").innerHTML=this.textnow,this.textnow==this.chatmsg.content&&(this.textTimer=0,this._animating=!1,clearInterval(this.updater),document.getElementById("client_char").src=l+"characters/"+escape(this.chatmsg.name)+"/"+this.chatmsg.silent+".gif"));!this.sfxplayed&&this.chatmsg.snddelay+this.shoutTimer>=this.textTimer&&(this.sfxaudio.pause(),this.sfxplayed=1,"0"!=this.chatmsg.sound&&"1"!=this.chatmsg.sound&&(this.sfxaudio.src=l+"sounds/general/"+escape(this.chatmsg.sound)+".wav",this.sfxaudio.play())),this.textTimer=this.textTimer+65}}]),e}(),g=function(){function e(){c(this,e)}return i(e,null,[{key:"parse",value:function(e){var t={section:/^\s*\[\s*([^\]]*)\s*\]\s*$/,param:/^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,comment:/^\s*;.*$/},n={},i=null;return e.split(/\r\n|\r|\n/).forEach(function(e){if(!t.comment.test(e)&&0!=e.length)if(t.param.test(e)){var c=e.match(t.param);i?n[i][c[1]]=c[2]:n[c[1]]=c[2]}else if(t.section.test(e)){var s=e.match(t.section);n[s[1]]={},i=s[1]}}),n}}]),e}();function f(e){13==e.keyCode&&(H.sendOOC(document.getElementById("client_oocinputbox").value),document.getElementById("client_oocinputbox").value="")}function y(e){if(13==e.keyCode){var t=H.me(),n=H.myEmote(),i="0",c="0";document.getElementById("sendsfx").checked&&(i=n.sfx,c=n.sfxdelay),H.sendIC(n.speaking,t.name,n.silent,document.getElementById("client_inputbox").value,t.side,i,n.zoom,c,d)}}function v(e){var t=document.getElementById("client_musiclist").value;H.sendMusicChange(t)}function E(){L.music.volume=document.getElementById("client_mvolume").value/100}function _(){L.sfxaudio.volume=document.getElementById("client_svolume").value/100}function I(){L.setBlipVolume(document.getElementById("client_bvolume").value/100)}function k(e){H.sendLeaveRoom(),document.getElementById("client_charselect").style.display="block",document.getElementById("client_emo").innerHTML=""}function B(e){return e.onerror="",e.src="/misc/placeholder.gif",!0}function b(e){return e.onerror="",e.src="/misc/placeholder.png",!0}function w(e){var t,n=L.bgFolder();switch(document.getElementById("client_fg").style.display="none",document.getElementById("client_bench").style.display="none",e){case"def":document.getElementById("client_court").src=n+"defenseempty.png",document.getElementById("client_bench").style.display="block",document.getElementById("client_bench").src=n+"defensedesk.png",t="defense";break;case"pro":document.getElementById("client_court").src=n+"prosecutorempty.png",document.getElementById("client_bench").style.display="block",document.getElementById("client_bench").src=n+"prosecutiondesk.png",t="prosecution";break;case"hld":document.getElementById("client_court").src=n+"helperstand.png",t="defense";break;case"hlp":document.getElementById("client_court").src=n+"prohelperstand.png",t="prosecution";break;case"wit":document.getElementById("client_court").src=n+"witnessempty.png",document.getElementById("client_bench").style.display="block",document.getElementById("client_bench").src=n+"estrado.png",t="prosecution";break;case"jud":document.getElementById("client_court").src=n+"judgestand.png",t="prosecution"}5==L.chatmsg.type&&(document.getElementById("client_bench").style.display="none",document.getElementById("client_court").src=l+"themes/default/"+t+"_speedlines.gif")}function C(){H.cleanup(),(H=new m(o))&&(a="join",document.getElementById("client_error").style.display="none")}function x(){H.joinServer()}function T(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:new Date,i=document.createElement("p"),c=document.createElement("span");if(c.id="iclog_name",c.appendChild(document.createTextNode(t)),i.appendChild(c),i.appendChild(document.createTextNode(e)),h.getMinutes()!==n.getMinutes()){var s=document.createElement("span");s.id="iclog_time",s.innerText=n.toLocaleTimeString(void 0,{hour:"numeric",minute:"2-digit"}),i.appendChild(s)}var o=document.getElementById("client_log");o.appendChild(i),o.scrollTop>o.scrollHeight-600&&(o.scrollTop=o.scrollHeight),h=new Date}function M(e){e<1e3?H.sendCharacter(e):(document.getElementById("client_charselect").style.display="none",document.getElementById("client_inputbox").style.display="none",document.getElementById("client_emo").style.display="none")}function S(e){-1!=H.selectedEmote&&(document.getElementById("emo_"+H.selectedEmote).src=H.myEmote().button_off),H.selectedEmote=e,document.getElementById("emo_"+e).src=H.myEmote().button_on}function O(e){e==d?(document.getElementById("button_"+e).className="client_button",d=0):(document.getElementById("button_"+e).className="client_button dark",d&&(document.getElementById("button_"+d).className="client_button"),d=e)}function D(e){return e.replace(/#/g,"<pound>").replace(/&/g,"<and>").replace(/%/g,"<percent>").replace(/\$/g,"<dollar>")}window.onOOCEnter=f,window.onEnter=y,window.musiclist_click=v,window.changeMusicVolume=E,window.changeSFXVolume=_,window.changeBlipVolume=I,window.changeCharacter=k,window.imgError=B,window.demoError=b,window.ReconnectButton=C,window.RetryButton=x,window.pickchar=M,window.pickemotion=S,window.toggleshout=O,void 0===String.prototype.trim&&(String.prototype.trim=function(){return String(this).replace(/^\s+|\s+$/g,"")}),String.prototype.hashCode=function(){var e,t=0;if(0===this.length)return t;for(e=0;e<this.length;e++)t=(t<<5)-t+this.charCodeAt(e),t|=0;return t};var H=new m(o),L=new p}]); +//# sourceMappingURL=client.b.js.map
\ No newline at end of file diff --git a/webAO/client.b.js.map b/webAO/client.b.js.map new file mode 100644 index 0000000..4aa51b5 --- /dev/null +++ b/webAO/client.b.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./webAO/client.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","onOOCEnter","onEnter","musiclist_click","changeMusicVolume","changeSFXVolume","changeBlipVolume","changeCharacter","imgError","demoError","ReconnectButton","RetryButton","pickchar","pickemotion","toggleshout","queryDict","location","search","substr","split","forEach","item","serverIP","ip","mode","AO_HOST","asset","MUSIC_HOST","oldLoading","test","navigator","userAgent","selectedShout","lastICMessageTime","Date","Client","address","_this","this","_classCallCheck","serv","WebSocket","onopen","evt","onOpen","onclose","onClose","onmessage","onMessage","onerror","onError","playerID","charID","chars","emotes","selectedEmote","checkUpdater","musicList","handlers","MS","args","handleMS","CT","handleCT","MC","handleMC","RMC","handleRMC","CI","handleCI","SC","handleSC","EI","handleEI","EM","handleEM","SM","handleSM","music","handlemusic","DONE","handleDONE","BN","handleBN","NBG","handleNBG","HP","handleHP","ID","handleID","PN","handlePN","SI","handleSI","CharsCheck","handleCharsCheck","PV","handlePV","_lastTimeICReceived","message","send","escapeChat","speaking","silent","side","ssfxname","zoom","ssfxdelay","objection","track","_this2","hashCode","CHECKupdater","setInterval","sendCheck","character","song","e","client","joinServer","document","getElementById","style","display","console","error","reason","code","textContent","cleanup","msg","data","debug","header","handler","warn","close","clearInterval","viewport","chatmsg","content","innerHTML","pre","escape","preanim","nameplate","sound","type","snddelay","evidence","flash","color","isnew","length","className","say","oocLog","scrollTop","scrollHeight","pause","src","play","appendICLog","Audio","totime","offset","getTime","addEventListener","currentTime","parseFloat","toFixed","chargs","desc","icon","hmusiclist","newentry","createElement","text","options","add","bgname","clip","tr","td","icon_chosen","thispick","appendChild","changeBackground","me","xhr","XMLHttpRequest","open","responseType","onload","status","linifile","responseText","pinifile","INI","parse","Options","Emotions","number","emoteinfo","esfx","esfxd","SoundN","SoundT","sfx","sfxdelay","button_off","button_on","Viewport","textnow","startspeaking","blip","volume","blipChannels","Array","currentBlipChannel","sfxaudio","sfxplayed","updater","shoutTimer","textTimer","_animating","_this3","updateText","trim","shout","1","2","3","fontSize","offsetHeight","replace","stylecolor","0","4","5","6","charAt","substring","regex","section","param","comment","line","match","event","keyCode","sendOOC","mychar","myemo","myEmote","checked","sendIC","playtrack","sendMusicChange","setBlipVolume","sendLeaveRoom","image","position","standname","bgfolder","bgFolder","toadd","arguments","undefined","time","entry","nameField","id","createTextNode","getMinutes","timeStamp","innerText","toLocaleTimeString","hour","minute","clientLog","ccharacter","sendCharacter","emo","estring","window","String","hash","charCodeAt"],"mappings":"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","file":"client.b.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/*\r\n * Glorious webAO\r\n * made by sD, refactored by oldmud0\r\n * credits to aleks for original idea and source\r\n*/\r\n\r\nlet queryDict = {};\r\nlocation.search.substr(1).split(\"&\").forEach(function(item) {\r\n\tqueryDict[item.split(\"=\")[0]] = item.split(\"=\")[1]\r\n});\r\n\r\n/* Server magic */\r\n\r\nconst serverIP = queryDict.ip;\r\nlet mode = queryDict.mode;\r\n\r\nconst AO_HOST = queryDict.asset || \"http://assets.aceattorneyonline.com/base/\";\r\nconst MUSIC_HOST = AO_HOST + \"sounds/music/\";\r\nconst BAR_WIDTH = 90;\r\nconst BAR_HEIGHT = 20;\r\nconst CHAR_SELECT_WIDTH = 8;\r\nconst UPDATE_INTERVAL = 65;\r\n\r\nlet oldLoading = false;\r\nif (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) {\r\n\toldLoading = true;\r\n}\r\n\r\nlet selectedShout = 0;\r\nlet lastICMessageTime = new Date(0);\r\n\r\nclass Client {\r\n\tconstructor(address) {\r\n\t\tthis.serv = new WebSocket(\"ws://\" + address);\r\n\r\n\t\tthis.serv.onopen = (evt) => this.onOpen(evt);\r\n\t\tthis.serv.onclose = (evt) => this.onClose(evt);\r\n\t\tthis.serv.onmessage = (evt) => this.onMessage(evt);\r\n\t\tthis.serv.onerror = (evt) => this.onError(evt);\r\n\r\n\t\tthis.playerID = 1;\r\n\t\tthis.charID = -1;\r\n\r\n\t\tthis.chars = [];\r\n\t\tthis.emotes = [];\r\n\r\n\t\tthis.selectedEmote = -1;\r\n\r\n\t\tthis.checkUpdater = null;\r\n\r\n\t\t// Only used for RMC/`music` packets, not EM/SM/MC packets.\r\n\t\tthis.musicList = Object();\r\n\r\n\t\tthis.handlers = {\r\n\t\t\t\"MS\": (args) => this.handleMS(args),\r\n\t\t\t\"CT\": (args) => this.handleCT(args),\r\n\t\t\t\"MC\": (args) => this.handleMC(args),\r\n\t\t\t\"RMC\": (args) => this.handleRMC(args),\r\n\t\t\t\"CI\": (args) => this.handleCI(args),\r\n\t\t\t\"SC\": (args) => this.handleSC(args),\r\n\t\t\t\"EI\": (args) => this.handleEI(args),\r\n\t\t\t\"EM\": (args) => this.handleEM(args),\r\n\t\t\t\"SM\": (args) => this.handleSM(args),\r\n\t\t\t\"music\": (args) => this.handlemusic(args),\r\n\t\t\t\"DONE\": (args) => this.handleDONE(args),\r\n\t\t\t\"BN\": (args) => this.handleBN(args),\r\n\t\t\t\"NBG\": (args) => this.handleNBG(args),\r\n\t\t\t\"HP\": (args) => this.handleHP(args),\r\n\t\t\t\"ID\": (args) => this.handleID(args),\r\n\t\t\t\"PN\": (args) => this.handlePN(args),\r\n\t\t\t\"SI\": (args) => this.handleSI(args),\r\n\t\t\t\"CharsCheck\": (args) => this.handleCharsCheck(args),\r\n\t\t\t\"PV\": (args) => this.handlePV(args)\r\n\t\t}\r\n\r\n\t\tthis._lastTimeICReceived = new Date(0);\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the current player's character.\r\n\t */\r\n\tme() {\r\n\t\treturn this.chars[this.charID];\r\n\t}\r\n\r\n\t/**\r\n\t * Gets the player's currently selected emote.\r\n\t */\r\n\tmyEmote() {\r\n\t\treturn this.emotes[this.selectedEmote];\r\n\t}\r\n\r\n\t/**\r\n\t * Sends an out-of-character chat message.\r\n\t * @param {string} message the message to send\r\n\t */\r\n\tsendOOC(message) {\r\n\t\tthis.serv.send(`CT#web${this.playerID}#${escapeChat(message)}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends an in-character chat message.\r\n\t * @param {string} speaking who is speaking\r\n\t * @param {string} name the name of the current character\r\n\t * @param {string} silent whether or not it's silent\r\n\t * @param {string} message the message to be sent\r\n\t * @param {string} side the name of the side in the background\r\n\t * @param {string} ssfxname the name of the sound effect\r\n\t * @param {string} zoom whether or not to zoom\r\n\t * @param {string} ssfxdelay the delay (in milliseconds) to play the sound effect\r\n\t * @param {string} objection the number of the shout to play\r\n\t */\r\n\tsendIC(speaking, name, silent, message, side, ssfxname, zoom, ssfxdelay, objection) {\r\n\t\tthis.serv.send(\r\n\t\t\t`MS#chat#${speaking}#${name}#${silent}` +\r\n\t\t\t`#${escapeChat(message)}#${side}#${ssfxname}#${zoom}` +\r\n\t\t\t`#${this.charID}#${ssfxdelay}#${selectedShout}#0#0#0#0#%`\r\n\t\t);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to change the music to the specified track.\r\n\t * @param {string} track the track ID\r\n\t */\r\n\tsendMusicChange(track) {\r\n\t\tthis.serv.send(`MC#${track}#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to leave the room and free the character slot.\r\n\t * \r\n\t * Note: This packet is undocumented. It is not implemented by\r\n\t * either the AO2 client or tsuserver.\r\n\t */\r\n\tsendLeaveRoom() {\r\n\t\tthis.serv.send(\"FC#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Begins the handshake process by sending an identifier\r\n\t * to the server.\r\n\t */\r\n\tjoinServer() {\r\n\t\tthis.serv.send(`HI#${navigator.userAgent.hashCode()}#%`);\r\n\t\tthis.serv.send(\"ID#webAO#2.4.5#%\");\r\n\t\tthis.CHECKupdater = setInterval(() => this.sendCheck, 5000);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to play as a specified character.\r\n\t * @param {number} character the character ID\r\n\t */\r\n\tsendCharacter(character) {\r\n\t\tthis.serv.send(`CC#${this.playerID}#${character}#web#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Requests to select a music track.\r\n\t * @param {number?} song the song to be played\r\n\t */\r\n\tsendMusic(song) {\r\n\t\tthis.serv.send(`MC#${song}`);\r\n\t}\r\n\r\n\t/**\r\n\t * Sends a keepalive packet.\r\n\t */\r\n\tsendCheck() {\r\n\t\tthis.serv.send(`CH#${this.charID}#%`);\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when a connection is established to the server.\r\n\t */\r\n\tonOpen(e) {\r\n\t\t// XXX: Why does watching mean just SITTING there and doing nothing?\r\n\t\tif (mode == \"join\") {\r\n\t\t\tclient.joinServer();\r\n\t\t} else {\r\n\t\t\tdocument.getElementById(\"client_loading\").style.display = \"none\";\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when the connection to the server closes.\r\n\t * @param {CloseEvent} e\r\n\t */\r\n\tonClose(e) {\r\n\t\tconsole.error(`The connection was closed: ${e.reason} (${e.code})`);\r\n\t\tif (e.code !== 1001) {\r\n\t\t\tdocument.getElementById(\"client_error\").style.display = \"block\";\r\n\t\t\tdocument.getElementById(\"error_id\").textContent = e.code;\r\n\t\t\tthis.cleanup();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when a packet is received from the server.\r\n\t * @param {MessageEvent} e\r\n\t */\r\n\tonMessage(e) {\r\n\t\tlet msg = e.data;\r\n\t\tconsole.debug(msg);\r\n\t\tlet lines = msg.split('%');\r\n\t\tlet args = lines[0].split('#');\r\n\t\tlet header = args[0];\r\n\t\tlet handler = this.handlers[header];\r\n\t\tif (typeof handler !== \"undefined\") {\r\n\t\t\thandler(args);\r\n\t\t} else {\r\n\t\t\tconsole.warn(`Invalid packet header ${header}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Triggered when an network error occurs.\r\n\t * @param {ErrorEvent} e \r\n\t */\r\n\tonError(e) {\r\n\t\tconsole.error(`A network error occurred: ${e.reason} (${e.code})`);\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"block\";\r\n\t\tdocument.getElementById(\"error_id\").textContent = e.code;\r\n\t\tthis.cleanup();\r\n\t}\r\n\r\n\tcleanup() {\r\n\t\ttry {\r\n\t\t\tthis.serv.close(1001);\r\n\t\t} catch (e) {\r\n\t\t\t// I don't care if this errors\r\n\t\t}\r\n\t\tclearInterval(this.checkUpdater);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles an in-character chat message.\r\n\t * @param {*} args packet arguments\r\n\t */\r\n\thandleMS(args) {\r\n\t\t// TODO: this if-statement might be a bug.\r\n\t\tif (args[4] != viewport.chatmsg.content) {\r\n\t\t\tdocument.getElementById(\"client_inner_chat\").innerHTML = \"\";\r\n\t\t\tlet chatmsg = {\r\n\t\t\t\tpre: escape(args[2]),\r\n\t\t\t\tcharacter: -1, // Will do a linear search\r\n\t\t\t\tpreanim: escape(args[2]), // XXX: why again?\r\n\t\t\t\tnameplate: args[3], // TODO: parse INI to get this info\r\n\t\t\t\tname: args[3],\r\n\t\t\t\tspeaking: \"(b)\" + escape(args[4]),\r\n\t\t\t\tsilent: \"(a)\" + escape(args[4]),\r\n\t\t\t\tcontent: args[5],\r\n\t\t\t\tside: args[6],\r\n\t\t\t\tsound: escape(args[7]),\r\n\t\t\t\ttype: args[8],\r\n\t\t\t\t// charid: args[9],\r\n\t\t\t\tsnddelay: args[10],\r\n\t\t\t\tobjection: args[11],\r\n\t\t\t\tevidence: args[12],\r\n\t\t\t\t// flip: args[13],\r\n\t\t\t\tflash: args[14],\r\n\t\t\t\tcolor: args[15],\r\n\t\t\t\tisnew: true,\r\n\t\t\t};\r\n\r\n\t\t\t// The dreaded linear search...\r\n\t\t\tfor (let i = 0; i < this.chars.length; i++) {\r\n\t\t\t\tif (this.chars[i].name == args[3]) {\r\n\t\t\t\t\tchatmsg.character = i;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (chatmsg.character == this.charID) {\r\n\t\t\t\tresetICParams();\r\n\t\t\t}\r\n\r\n\t\t\tviewport.say(chatmsg);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles an out-of-character chat message.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCT(args) {\r\n\t\tconst oocLog = document.getElementById(\"client_ooclog\");\r\n\t\toocLog.innerHTML += `${args[1]}: ${args[2]}\\r\\n`;\r\n\t\tif (oocLog.scrollTop > oocLog.scrollHeight - 60) {\r\n\t\t\toocLog.scrollTop = oocLog.scrollHeight;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a music change to an arbitrary resource.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleMC(args) {\r\n\t\tconst music = viewport.music;\r\n\t\tmusic.pause();\r\n\t\tmusic.src = MUSIC_HOST + args[1];\r\n\t\tmusic.play();\r\n\t\tif (args[2] >= 0) {\r\n\t\t\tlet musicname = this.chars[args[2]].name;\r\n\t\t\tappendICLog(`${musicname} changed music to ${args[1]}`);\r\n\t\t} else {\r\n\t\t\tappendICLog(`The music was changed to ${args[1]}`);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a music change to an arbitrary resource, with an offset in seconds.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleRMC(args) {\r\n\t\tviewport.music.pause();\r\n\t\tviewport.music = new Audio(this.musicList[args[1]]);\r\n\t\tconst music = viewport.music;\r\n\t\t// Music offset + drift from song loading\r\n\t\tmusic.totime = args[1];\r\n\t\tmusic.offset = new Date().getTime() / 1000;\r\n\t\tmusic.addEventListener('loadedmetadata', function() {\r\n\t\t\tmusic.currentTime += parseFloat(music.totime + (new Date().getTime() / 1000 - music.offset)).toFixed(3);\r\n\t\t\tmusic.play();\r\n\t\t}, false);\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming character information, bundling multiple characters\r\n\t * per packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCI(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Character \" + args[1];\r\n\t\tthis.serv.send(\"AN#\" + ((args[1] / 10) + 1) + \"#%\");\r\n\t\tfor (let i = 2; i < args.length - 1; i++) {\r\n\t\t\tif (i % 2 == 0) {\r\n\t\t\t\tlet chargs = args[i].split(\"&\");\r\n\t\t\t\tthis.chars[args[i - 1]] = {\r\n\t\t\t\t\t\"name\": chargs[0],\r\n\t\t\t\t\t\"desc\": chargs[1],\r\n\t\t\t\t\t\"evidence\": chargs[3],\r\n\t\t\t\t\t\"icon\": AO_HOST + \"characters/\" + escape(chargs[0]) + \"/char_icon.png\"\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming character information, containing only one character\r\n\t * per packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSC(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Characters\";\r\n\t\tfor (let i = 1; i < args.length - 1; i++) {\r\n\t\t\tlet chargs = args[i].split(\"&\");\r\n\t\t\tthis.chars[i - 1] = {\r\n\t\t\t\t\"name\": chargs[0],\r\n\t\t\t\t\"desc\": chargs[1],\r\n\t\t\t\t\"evidence\": chargs[3],\r\n\t\t\t\t\"icon\": AO_HOST + \"characters/\" + escape(chargs[0]) + \"/char_icon.png\"\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.serv.send(\"RM#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming evidence information, containing only one evidence\r\n\t * item per packet.\r\n\t * \r\n\t * Mostly unimplemented in webAO.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleEI(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Evidence \" + args[1];\r\n\t\t//serv.send(\"AE#\" + (args[1] + 1) + \"#%\");\r\n\t\tthis.serv.send(\"RM#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing multiple entries\r\n\t * per packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleEM(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Music \" + args[1];\r\n\t\tthis.serv.send(\"AM#\" + ((args[1] / 10) + 1) + \"#%\");\r\n\t\tlet hmusiclist = document.getElementById(\"client_musiclist\");\r\n\t\tfor (let i = 2; i < args.length - 1; i++) {\r\n\t\t\tif (i % 2 == 0) {\r\n\t\t\t\tlet newentry = document.createElement(\"OPTION\");\r\n\t\t\t\tnewentry.text = args[i];\r\n\t\t\t\thmusiclist.options.add(newentry);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing only one entry\r\n\t * per packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSM(args) {\r\n\t\tdocument.getElementById(\"client_loadingtext\").innerHTML = \"Loading Music \";\r\n\t\tlet hmusiclist = document.getElementById(\"client_musiclist\");\r\n\t\tfor (let i = 1; i < args.length - 1; i++) {\r\n\t\t\tlet newentry = document.createElement(\"OPTION\");\r\n\t\t\tnewentry.text = args[i];\r\n\t\t\thmusiclist.options.add(newentry);\r\n\t\t}\r\n\t\tthis.serv.send(\"RD#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles incoming music information, containing all entries\r\n\t * in the same packet.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandlemusic(args) {\r\n\t\tfor (let i = 0; i < args.length / 2; i++) {\r\n\t\t\tthis.musicList[args[2 * i]] = args[2 * i + 1];\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the handshake completion packet, meaning the player\r\n\t * is ready to select a character.\r\n\t * \r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleDONE(args) {\r\n\t\tdocument.getElementById(\"client_loading\").style.display = \"none\";\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"block\";\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a background change.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleBN(args) {\r\n\t\tviewport.bgname = escape(args[1]);\r\n\t}\r\n\r\n\thandleNBG(args) {\r\n\t\t// TODO (set by sD)\r\n\t}\r\n\r\n\t/**\r\n\t * Handles a change in the health bars' states.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleHP(args) {\r\n\t\t// TODO (set by sD)\r\n\t\t// Also, this is broken.\r\n\t\tif (args[1] == 1) {\r\n\t\t\tdocument.getElementById(\"client_defense_hp\").style.clip = \"rect(0px,\" + BAR_WIDTH * args[2] / 10 + \"px,\" + BAR_HEIGHT + \"px,0px)\";\r\n\t\t} else {\r\n\t\t\tdocument.getElementById(\"client_prosecutor_hp\").style.clip = \"rect(0px,\" + BAR_WIDTH * args[2] / 10 + \"px,\" + BAR_HEIGHT + \"px,0px)\";\r\n\t\t}\r\n\t}\r\n\t\r\n\t/**\r\n\t * Handles the issuance of a player ID by the server.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleID(args) {\r\n\t\tthis.playerID = args[1];\r\n\t}\r\n\r\n\thandlePN(args) {\r\n\t\tthis.serv.send(\"askchaa#%\");\r\n\t}\r\n\r\n\t/**\r\n\t * Received when the server announces its server info,\r\n\t * but we use it as a cue to begin retrieving characters.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleSI(args) {\r\n\t\tif (oldLoading) {\r\n\t\t\tthis.serv.send(\"askchar2#%\");\r\n\t\t} else {\r\n\t\t\tthis.serv.send(\"RC#%\");\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the list of all used and vacant characters.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandleCharsCheck(args) {\r\n\t\tdocument.getElementById(\"client_chartable\").innerHTML = \"\";\r\n\t\tfor (let i = 0; i < this.chars.length; i++) {\r\n\t\t\tif (i % CHAR_SELECT_WIDTH == 0) {\r\n\t\t\t\tvar tr = document.createElement('TR');\r\n\t\t\t}\r\n\t\t\tlet td = document.createElement('TD');\r\n\t\t\tlet icon_chosen;\r\n\t\t\tlet thispick = this.chars[i].icon;\r\n\t\t\tif (args[i + 1] == \"-1\") {\r\n\t\t\t\ticon_chosen = \" dark\";\r\n\t\t\t} else {\r\n\t\t\t\ticon_chosen = \"\";\r\n\t\t\t}\r\n\t\t\ttd.innerHTML = `<img class='demothing${icon_chosen}' id='demo_${i}' ` +\r\n\t\t\t\t`src='${thispick}' alt='${this.chars[i].desc}' onclick='pickchar(${i})' ` +\r\n\t\t\t\t`onerror='demoError(this);'>`;\r\n\t\t\ttr.appendChild(td);\r\n\t\t\tif (i % CHAR_SELECT_WIDTH == 0) {\r\n\t\t\t\tdocument.getElementById(\"client_chartable\").appendChild(tr);\r\n\t\t\t}\r\n\t\t}\r\n\t\tchangeBackground(\"def\");\r\n\t}\r\n\r\n\t/**\r\n\t * Handles the server's assignment of a character for the player to use.\r\n\t * @param {Array} args packet arguments\r\n\t */\r\n\thandlePV(args) {\r\n\t\tthis.charID = args[3];\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\r\n\t\tlet me = this.me();\r\n\t\tlet emotes = this.emotes;\r\n\t\tlet xhr = new XMLHttpRequest();\r\n\t\txhr.open('GET', AO_HOST + 'characters/' + escape(this.me().name) + '/char.ini', true);\r\n\t\txhr.responseType = 'text';\r\n\t\txhr.onload = function (e) {\r\n\t\t\tif (this.status == 200) {\r\n\t\t\t\tlet linifile = this.responseText;\r\n\t\t\t\tlet pinifile = INI.parse(linifile);\r\n\t\t\t\tme.side = pinifile.Options.side;\r\n\t\t\t\tfor (let i = 1; i < pinifile.Emotions.number; i++) {\r\n\t\t\t\t\tlet emoteinfo = pinifile.Emotions[i].split('#');\r\n\t\t\t\t\tlet esfx = \"0\";\r\n\t\t\t\t\tlet esfxd = \"0\";\r\n\t\t\t\t\tif (typeof pinifile.SoundN !== 'undefined') {\r\n\t\t\t\t\t\tesfx = pinifile.SoundN[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (typeof pinifile.SoundT !== 'undefined') {\r\n\t\t\t\t\t\tesfxd = pinifile.SoundT[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t\temotes[i] = {\r\n\t\t\t\t\t\tdesc: emoteinfo[0],\r\n\t\t\t\t\t\tspeaking: emoteinfo[1],\r\n\t\t\t\t\t\tsilent: emoteinfo[2],\r\n\t\t\t\t\t\tzoom: emoteinfo[3],\r\n\t\t\t\t\t\tsfx: esfx,\r\n\t\t\t\t\t\tsfxdelay: esfxd,\r\n\t\t\t\t\t\tbutton_off: AO_HOST + 'characters/' + escape(me.name) + '/emotions/button' + i + '_off.png',\r\n\t\t\t\t\t\tbutton_on: AO_HOST + 'characters/' + escape(me.name) + '/emotions/button' + i + '_on.png'\r\n\t\t\t\t\t};\r\n\t\t\t\t\tdocument.getElementById(\"client_emo\").innerHTML += \"<img src='\" + emotes[i].button_off + \"' id='emo_\" + i + \"' alt='\" + emotes[i].desc + \"' class='client_button' onclick='pickemotion(\" + i + \")'>\";\r\n\t\t\t\t}\r\n\t\t\t\tpickemotion(1);\r\n\t\t\t}\r\n\t\t};\r\n\t\txhr.send();\r\n\t}\r\n}\r\n\r\nclass Viewport {\r\n\tconstructor() {\r\n\t\tthis.textnow = \"\";\r\n\t\tthis.chatmsg = {\r\n\t\t\t\"isnew\": false,\r\n\t\t\t\"content\": \"\",\r\n\t\t\t\"objection\": \"0\",\r\n\t\t\t\"sound\": \"\",\r\n\t\t\t\"startspeaking\": false,\r\n\t\t\t\"side\": null,\r\n\t\t\t\"color\": \"0\",\r\n\t\t\t\"snddelay\": 0\r\n\t\t};\r\n\t\tthis.blip = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav');\r\n\t\tthis.blip.volume = 0.5;\r\n\r\n\t\t// Allocate multiple blip audio channels to make blips less jittery\r\n\r\n\t\t// TODO: read blip type (\"gender\") from ini\r\n\t\tthis.blipChannels = new Array(6);\r\n\t\tfor (let i = 0; i < this.blipChannels.length; i++) {\r\n\t\t\tthis.blipChannels[i] = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav');\r\n\t\t\tthis.blipChannels[i].volume = 0.5;\r\n\t\t}\r\n\t\tthis.currentBlipChannel = 0;\r\n\r\n\t\tthis.sfxaudio = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav');\r\n\t\tthis.sfxplayed = 0;\r\n\r\n\t\tthis.music = new Audio();\r\n\t\tthis.music.play();\r\n\r\n\t\tthis.updater = null;\r\n\r\n\t\tthis.bgname = \"gs4\";\r\n\r\n\t\tthis.shoutTimer = 0;\r\n\t\tthis.textTimer = 0;\r\n\r\n\t\tthis._animating = false;\r\n\t}\r\n\r\n\t/**\r\n\t * Returns whether or not the viewport is busy\r\n\t * performing a task (animating).\r\n\t */\r\n\tisAnimating() {\r\n\t\treturn this._animating;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets the volume of the blip sound.\r\n\t * @param {number} volume\r\n\t */\r\n\tsetBlipVolume(volume) {\r\n\t\tfor (let i = 0; i < this.blipChannels.length; i++) {\r\n\t\t\tthis.blipChannels[i].volume = volume;\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Returns the path which the background is located in.\r\n\t */\r\n\tbgFolder() {\r\n\t\treturn `${AO_HOST}background/${this.bgname}/`;\r\n\t}\r\n\r\n\t/**\r\n\t * Sets a new emote.\r\n\t * @param {object} chatmsg the new chat message\r\n\t */\r\n\tsay(chatmsg) {\r\n\t\tthis.chatmsg = chatmsg;\r\n\t\tappendICLog(chatmsg.content, chatmsg.nameplate);\r\n\t\tchangeBackground(chatmsg.side);\r\n\t\tthis.textnow = '';\r\n\t\tthis.sfxplayed = 0;\r\n\t\tthis.textTimer = 0;\r\n\t\tthis._animating = true;\r\n\t\tthis.updater = setInterval(() => this.updateText(), UPDATE_INTERVAL);\r\n\t}\r\n\r\n\t/**\r\n\t * Updates the chatbox based on the given text.\r\n\t * \r\n\t * XXX: This relies on a global variable `this.chatmsg`!\r\n\t */\r\n\tupdateText() {\r\n\t\tif (this.chatmsg.content.trim() == \"\") {\r\n\t\t\tdocument.getElementById(\"client_name\").style.display = \"none\";\r\n\t\t\tdocument.getElementById(\"client_chat\").style.display = \"none\";\r\n\t\t} else {\r\n\t\t\tdocument.getElementById(\"client_name\").style.display = \"block\";\r\n\t\t\tdocument.getElementById(\"client_chat\").style.display = \"block\";\r\n\t\t}\r\n\r\n\t\tif (this.chatmsg.isnew) {\r\n\t\t\tconst shouts = {\r\n\t\t\t\t\"1\": \"holdit\",\r\n\t\t\t\t\"2\": \"takethat\",\r\n\t\t\t\t\"3\": \"objection\"\r\n\t\t\t};\r\n\r\n\t\t\tlet shout = shouts[this.chatmsg.objection];\r\n\t\t\tif (typeof shout !== \"undefined\") {\r\n\t\t\t\tdocument.getElementById(\"client_char\").src = AO_HOST + \"misc/\" + shout + \".gif\";\r\n\t\t\t\t(new Audio(`${AO_HOST}/characters/${this.chatmsg.name}/${shout}.wav`)).play();\r\n\t\t\t\tthis.shoutTimer = 800;\r\n\t\t\t} else {\r\n\t\t\t\tthis.shoutTimer = 0;\r\n\t\t\t}\r\n\r\n\t\t\tthis.chatmsg.isnew = false;\r\n\t\t\tthis.chatmsg.startspeaking = true;\r\n\t\t}\r\n\r\n\t\tif (this.textTimer >= this.shoutTimer) {\r\n\t\t\tif (this.chatmsg.startspeaking) {\r\n\t\t\t\tchangeBackground(this.chatmsg.side);\r\n\t\t\t\tdocument.getElementById(\"client_char\").src = AO_HOST + \"characters/\" + escape(this.chatmsg.name) + \"/\" + this.chatmsg.speaking + \".gif\";\r\n\t\t\t\tdocument.getElementById(\"client_name\").style.fontSize = (document.getElementById(\"client_name\").offsetHeight * 0.7) + \"px\";\r\n\t\t\t\tdocument.getElementById(\"client_chat\").style.fontSize = (document.getElementById(\"client_chat\").offsetHeight * 0.25) + \"px\";\r\n\t\t\t\tdocument.getElementById(\"client_name\").innerHTML = \"<p>\" + escapeHtml(this.chatmsg.nameplate) + \"</p>\";\r\n\r\n\t\t\t\tconst colors = {\r\n\t\t\t\t\t\"0\": \"#ffffff\",\r\n\t\t\t\t\t\"1\": \"#00ff00\",\r\n\t\t\t\t\t\"2\": \"#ff0000\",\r\n\t\t\t\t\t\"3\": \"#ffaa00\",\r\n\t\t\t\t\t\"4\": \"#0000ff\",\r\n\t\t\t\t\t\"5\": \"#ffff00\",\r\n\t\t\t\t\t\"6\": \"#aa00aa\"\r\n\t\t\t\t}\r\n\t\t\t\tlet stylecolor = \"color: \" + (colors[this.chatmsg.color] || \"#ffffff\");\r\n\t\t\t\tdocument.getElementById(\"client_inner_chat\").style = stylecolor;\r\n\t\t\t\tthis.chatmsg.startspeaking = false;\r\n\t\t\t} else {\r\n\t\t\t\tif (this.textnow != this.chatmsg.content) {\r\n\t\t\t\t\tif (this.chatmsg.content.charAt(this.textnow.length) != \" \") {\r\n\t\t\t\t\t\tthis.blipChannels[this.currentBlipChannel].play();\r\n\t\t\t\t\t\tthis.currentBlipChannel++;\r\n\t\t\t\t\t\tthis.currentBlipChannel %= this.blipChannels.length;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.textnow = this.chatmsg.content.substring(0, this.textnow.length + 1);\r\n\t\t\t\t\tdocument.getElementById(\"client_inner_chat\").innerHTML = this.textnow;\r\n\t\t\t\t\tif (this.textnow == this.chatmsg.content) {\r\n\t\t\t\t\t\tthis.textTimer = 0;\r\n\t\t\t\t\t\tthis._animating = false;\r\n\t\t\t\t\t\tclearInterval(this.updater);\r\n\t\t\t\t\t\tdocument.getElementById(\"client_char\").src = AO_HOST + \"characters/\" + escape(this.chatmsg.name) + \"/\" + this.chatmsg.silent + \".gif\";\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!this.sfxplayed && this.chatmsg.snddelay + this.shoutTimer >= this.textTimer) {\r\n\t\t\tthis.sfxaudio.pause();\r\n\t\t\tthis.sfxplayed = 1;\r\n\t\t\tif (this.chatmsg.sound != \"0\" && this.chatmsg.sound != \"1\") {\r\n\t\t\t\tthis.sfxaudio.src = AO_HOST + \"sounds/general/\" + escape(this.chatmsg.sound) + \".wav\";\r\n\t\t\t\tthis.sfxaudio.play();\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.textTimer = this.textTimer + UPDATE_INTERVAL;\r\n\t}\r\n}\r\n\r\nclass INI {\r\n\tstatic parse(data) {\r\n\t\tlet regex = {\r\n\t\t\tsection: /^\\s*\\[\\s*([^\\]]*)\\s*\\]\\s*$/,\r\n\t\t\tparam: /^\\s*([\\w\\.\\-\\_]+)\\s*=\\s*(.*?)\\s*$/,\r\n\t\t\tcomment: /^\\s*;.*$/\r\n\t\t};\r\n\t\tlet value = {};\r\n\t\tlet lines = data.split(/\\r\\n|\\r|\\n/);\r\n\t\tlet section = null;\r\n\t\tlines.forEach(function(line) {\r\n\t\t\tif (regex.comment.test(line)) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (line.length == 0) {\r\n\t\t\t\treturn;\r\n\t\t\t} else if (regex.param.test(line)) {\r\n\t\t\t\tlet match = line.match(regex.param);\r\n\t\t\t\tif (section) {\r\n\t\t\t\t\tvalue[section][match[1]] = match[2];\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue[match[1]] = match[2];\r\n\t\t\t\t}\r\n\t\t\t} else if (regex.section.test(line)) {\r\n\t\t\t\tlet match = line.match(regex.section);\r\n\t\t\t\tvalue[match[1]] = {};\r\n\t\t\t\tsection = match[1];\r\n\t\t\t};\r\n\t\t});\r\n\t\treturn value;\r\n\t}\r\n}\r\n\r\n/**\r\n * Triggered when the Return key is pressed on the out-of-character chat input box.\r\n * @param {KeyboardEvent} event\r\n */\r\nexport function onOOCEnter(event) {\r\n\tif (event.keyCode == 13) {\r\n\t\tclient.sendOOC(document.getElementById(\"client_oocinputbox\").value);\r\n\t\tdocument.getElementById(\"client_oocinputbox\").value = \"\";\r\n\t}\r\n}\r\nwindow.onOOCEnter = onOOCEnter;\r\n\r\n/**\r\n * Triggered when the Return key is pressed on the in-character chat input box.\r\n * @param {KeyboardEvent} event\r\n */\r\nexport function onEnter(event) {\r\n\tif (event.keyCode == 13) {\r\n\t\tlet mychar = client.me();\r\n\t\tlet myemo = client.myEmote();\r\n\t\tlet ssfxname = \"0\";\r\n\t\tlet ssfxdelay = \"0\";\r\n\t\tif (document.getElementById(\"sendsfx\").checked) {\r\n\t\t\tssfxname = myemo.sfx;\r\n\t\t\tssfxdelay = myemo.sfxdelay;\r\n\t\t}\r\n\t\tclient.sendIC(myemo.speaking, mychar.name, myemo.silent, document.getElementById(\"client_inputbox\").value, mychar.side, ssfxname, myemo.zoom, ssfxdelay, selectedShout);\r\n\t}\r\n}\r\nwindow.onEnter = onEnter;\r\n\r\n/**\r\n * Resets the IC parameters for the player to enter a new chat message.\r\n * This should only be called when the player's previous chat message\r\n * was successfully sent/presented.\r\n */\r\nfunction resetICParams() {\r\n\tdocument.getElementById(\"client_inputbox\").value = \"\";\r\n\tif (selectedShout) {\r\n\t\tdocument.getElementById(\"button_\" + selectedShout).className = \"client_button\";\r\n\t\tselectedShout = 0;\r\n\t}\r\n}\r\n\r\n/**\r\n * Triggered when an item on the music list is clicked.\r\n * @param {MouseEvent} event\r\n */\r\nexport function musiclist_click(event) {\r\n\tlet playtrack = document.getElementById(\"client_musiclist\").value;\r\n\tclient.sendMusicChange(playtrack);\r\n}\r\nwindow.musiclist_click = musiclist_click;\r\n\r\n/**\r\n * Triggered by the music volume slider.\r\n */\r\nexport function changeMusicVolume() {\r\n\tviewport.music.volume = document.getElementById(\"client_mvolume\").value / 100;\r\n}\r\nwindow.changeMusicVolume = changeMusicVolume;\r\n\r\n/**\r\n * Triggered by the sound effect volume slider.\r\n */\r\nexport function changeSFXVolume() {\r\n\tviewport.sfxaudio.volume = document.getElementById(\"client_svolume\").value / 100;\r\n}\r\nwindow.changeSFXVolume = changeSFXVolume;\r\n\r\n/**\r\n * Triggered by the blip volume slider.\r\n */\r\nexport function changeBlipVolume() {\r\n\tviewport.setBlipVolume(document.getElementById(\"client_bvolume\").value / 100);\r\n}\r\nwindow.changeBlipVolume = changeBlipVolume;\r\n\r\n/**\r\n * Triggered when a character icon is clicked in the character selection menu.\r\n * @param {MouseEvent} event\r\n */\r\nexport function changeCharacter(event) {\r\n\tclient.sendLeaveRoom();\r\n\tdocument.getElementById(\"client_charselect\").style.display = \"block\";\r\n\tdocument.getElementById(\"client_emo\").innerHTML = \"\";\r\n}\r\nwindow.changeCharacter = changeCharacter;\r\n\r\n/**\r\n * Triggered when there was an error loading a character sprite.\r\n * @param {HTMLImageElement} image the element containing the missing image\r\n */\r\nexport function imgError(image) {\r\n\timage.onerror = \"\";\r\n\timage.src = \"/misc/placeholder.gif\";\r\n\treturn true;\r\n}\r\nwindow.imgError = imgError;\r\n\r\n/**\r\n * Triggered when there was an error loading a character icon.\r\n * @param {HTMLImageElement} image the element containing the missing image\r\n */\r\nexport function demoError(image) {\r\n\timage.onerror = \"\";\r\n\timage.src = \"/misc/placeholder.png\";\r\n\treturn true;\r\n}\r\nwindow.demoError = demoError;\r\n\r\n/**\r\n * Checks if an image exists at the specified URI.\r\n * @param {string} url the URI to be checked\r\n */\r\nfunction ImageExist(url) {\r\n\tvar img = new Image();\r\n\timg.src = url;\r\n\treturn img.height != 0;\r\n}\r\n\r\n/**\r\n * Changes the viewport background based on a given position.\r\n * \r\n * Valid positions: `def, pro, hld, hlp, wit, jud`\r\n * @param {string} position the position to change into\r\n */\r\nfunction changeBackground(position) {\r\n\tvar standname;\r\n\tlet bgfolder = viewport.bgFolder();\r\n\tdocument.getElementById(\"client_fg\").style.display = \"none\";\r\n\tdocument.getElementById(\"client_bench\").style.display = \"none\";\r\n\tswitch (position) {\r\n\t\tcase \"def\":\r\n\t\t\tdocument.getElementById(\"client_court\").src = bgfolder + \"defenseempty.png\"\r\n\t\t\tdocument.getElementById(\"client_bench\").style.display = \"block\";\r\n\t\t\tdocument.getElementById(\"client_bench\").src = bgfolder + \"defensedesk.png\"\r\n\t\t\tstandname = \"defense\";\r\n\t\t\tbreak;\r\n\t\tcase \"pro\":\r\n\t\t\tdocument.getElementById(\"client_court\").src = bgfolder + \"prosecutorempty.png\"\r\n\t\t\tdocument.getElementById(\"client_bench\").style.display = \"block\"\r\n\t\t\tdocument.getElementById(\"client_bench\").src = bgfolder + \"prosecutiondesk.png\"\r\n\t\t\tstandname = \"prosecution\";\r\n\t\t\tbreak;\r\n\t\tcase \"hld\":\r\n\t\t\tdocument.getElementById(\"client_court\").src = bgfolder + \"helperstand.png\"\r\n\t\t\tstandname = \"defense\";\r\n\t\t\tbreak;\r\n\t\tcase \"hlp\":\r\n\t\t\tdocument.getElementById(\"client_court\").src = bgfolder + \"prohelperstand.png\"\r\n\t\t\tstandname = \"prosecution\";\r\n\t\t\tbreak;\r\n\t\tcase \"wit\":\r\n\t\t\tdocument.getElementById(\"client_court\").src = bgfolder + \"witnessempty.png\"\r\n\t\t\tdocument.getElementById(\"client_bench\").style.display = \"block\"\r\n\t\t\tdocument.getElementById(\"client_bench\").src = bgfolder + \"estrado.png\"\r\n\t\t\tstandname = \"prosecution\";\r\n\t\t\tbreak;\r\n\t\tcase \"jud\":\r\n\t\t\tdocument.getElementById(\"client_court\").src = bgfolder + \"judgestand.png\"\r\n\t\t\tstandname = \"prosecution\";\r\n\t\t\tbreak;\r\n\t}\r\n\tif (viewport.chatmsg.type == 5) {\r\n\t\tdocument.getElementById(\"client_bench\").style.display = \"none\";\r\n\t\tdocument.getElementById(\"client_court\").src = AO_HOST + \"themes/default/\" + standname + \"_speedlines.gif\";\r\n\t}\r\n}\r\n\r\n/**\r\n * Triggered when the reconnect button is pushed.\r\n */\r\nexport function ReconnectButton() {\r\n\tclient.cleanup();\r\n\tclient = new Client(serverIP);\r\n\tif (client) {\r\n\t\tmode = \"join\"; // HACK: see client.onOpen\r\n\t\tdocument.getElementById(\"client_error\").style.display = \"none\";\r\n\t}\r\n}\r\nwindow.ReconnectButton = ReconnectButton;\r\n\r\n/**\r\n * Triggered when the retry button is pushed (during the loading process).\r\n */\r\nexport function RetryButton() {\r\n\tclient.joinServer();\r\n}\r\nwindow.RetryButton = RetryButton;\r\n\r\n/**\r\n * Appends a message to the in-character chat log.\r\n * @param {string} toadd the string to be added\r\n * @param {string} name the name of the sender\r\n */\r\nfunction appendICLog(toadd, name = \"\", time = new Date()) {\r\n\tconst entry = document.createElement(\"p\");\r\n\tconst nameField = document.createElement(\"span\");\r\n\tnameField.id = \"iclog_name\";\r\n\tnameField.appendChild(document.createTextNode(name));\r\n\tentry.appendChild(nameField);\r\n\tentry.appendChild(document.createTextNode(toadd));\r\n\r\n\t// Only put a timestamp if the minute has changed.\r\n\tif (lastICMessageTime.getMinutes() !== time.getMinutes()) {\r\n\t\tconst timeStamp = document.createElement(\"span\");\r\n\t\ttimeStamp.id = \"iclog_time\";\r\n\t\ttimeStamp.innerText = time.toLocaleTimeString(undefined, {\r\n\t\t\thour: \"numeric\",\r\n\t\t\tminute: \"2-digit\"\r\n\t\t});\r\n\t\tentry.appendChild(timeStamp);\r\n\t}\r\n\r\n\tconst clientLog = document.getElementById(\"client_log\");\r\n\tclientLog.appendChild(entry);\r\n\r\n\tif (clientLog.scrollTop > clientLog.scrollHeight - 600) {\r\n\t\tclientLog.scrollTop = clientLog.scrollHeight;\r\n\t}\r\n\r\n\tlastICMessageTime = new Date();\r\n}\r\n\r\n/**\r\n * Requests to play as a character.\r\n * @param {number} ccharacter the character ID; if this is a large number, then spectator is chosen instead.\r\n */\r\nexport function pickchar(ccharacter) {\r\n\tif (ccharacter < 1000) {\r\n\t\tclient.sendCharacter(ccharacter);\r\n\t} else {\r\n\t\t// Spectator\r\n\t\tdocument.getElementById(\"client_charselect\").style.display = \"none\";\r\n\t\tdocument.getElementById(\"client_inputbox\").style.display = \"none\";\r\n\t\tdocument.getElementById(\"client_emo\").style.display = \"none\";\r\n\t}\r\n}\r\nwindow.pickchar = pickchar;\r\n\r\n/**\r\n * Highlights and selects an emotion for in-character chat.\r\n * @param {string} emo the new emotion to be selected\r\n */\r\nexport function pickemotion(emo) {\r\n\tif (client.selectedEmote != -1) {\r\n\t\tdocument.getElementById(\"emo_\" + client.selectedEmote).src = client.myEmote().button_off;\r\n\t}\r\n\tclient.selectedEmote = emo\r\n\tdocument.getElementById(\"emo_\" + emo).src = client.myEmote().button_on;\r\n}\r\nwindow.pickemotion = pickemotion;\r\n\r\n/**\r\n * Highlights and selects a shout for in-character chat.\r\n * If the same shout button is selected, then the shout is canceled.\r\n * @param {string} shout the new shout to be selected\r\n */\r\nexport function toggleshout(shout) {\r\n\tif (shout == selectedShout) {\r\n\t\tdocument.getElementById(\"button_\" + shout).className = \"client_button\";\r\n\t\tselectedShout = 0;\r\n\t} else {\r\n\t\tdocument.getElementById(\"button_\" + shout).className = \"client_button dark\";\r\n\t\tif (selectedShout) {\r\n\t\t\tdocument.getElementById(\"button_\" + selectedShout).className = \"client_button\";\r\n\t\t}\r\n\t\tselectedShout = shout;\r\n\t}\r\n}\r\nwindow.toggleshout = toggleshout;\r\n\r\n/**\r\n * Escapes a string to be HTML-safe.\r\n * \r\n * XXX: This is unnecessary if we use `createTextNode` instead!\r\n * @param {string} unsafe an unsanitized string\r\n */\r\nfunction escapeHtml(unsafe) {\r\n\treturn unsafe\r\n\t\t.replace(/&/g, \"&\")\r\n\t\t.replace(/</g, \"<\")\r\n\t\t.replace(/>/g, \">\")\r\n\t\t.replace(/\"/g, \""\")\r\n\t\t.replace(/'/g, \"'\");\r\n}\r\n\r\n/**\r\n * Escapes a string to AO1 escape codes.\r\n * @param {string} estring the string to be escaped\r\n */\r\nfunction escapeChat(estring) {\r\n\treturn estring\r\n\t\t.replace(/#/g, \"<pound>\")\r\n\t\t.replace(/&/g, \"<and>\")\r\n\t\t.replace(/%/g, \"<percent>\")\r\n\t\t.replace(/\\$/g, \"<dollar>\");\r\n}\r\n\r\n// TODO: Possibly safe to remove, since we are using a transpiler.\r\nif (typeof(String.prototype.trim) === \"undefined\")\r\n{\r\n String.prototype.trim = function() \r\n {\r\n return String(this).replace(/^\\s+|\\s+$/g, '');\r\n };\r\n}\r\n\r\n// Used for HDID calculation.\r\nString.prototype.hashCode = function() {\r\n\tvar hash = 0, i, chr;\r\n\tif (this.length === 0) return hash;\r\n\tfor (i = 0; i < this.length; i++) {\r\n\t chr = this.charCodeAt(i);\r\n\t hash = ((hash << 5) - hash) + chr;\r\n\t hash |= 0; // Convert to 32bit integer\r\n\t}\r\n\treturn hash;\r\n};\r\n\r\n\r\n//\r\n// Client code\r\n//\r\n\r\nlet client = new Client(serverIP);\r\nlet viewport = new Viewport();\r\n"],"sourceRoot":""}
\ No newline at end of file diff --git a/client.css b/webAO/client.css index bb592f1..96a7f71 100644 --- a/client.css +++ b/webAO/client.css @@ -10,9 +10,16 @@ img { -ms-interpolation-mode: nearest-neighbor; } +#about-logo { + padding-top: 5px; + height: 30%; + image-rendering: auto; +} + @keyframes error_blink { - 0% { color: red; } - 100% { color: white; } + 0% { color: white; } + 50% { color: red; } + 100% { color: white; } } .error { @@ -23,15 +30,17 @@ img { left: 50%; margin-right: -50%; transform: translate(-50%, -50%); - justify-content: center; display: flex; - align-content: center; margin: 0 auto; + justify-content: center; + align-content: center; align-items: center; - background: red; + text-align: center; + background: #4e0e00; color: white; - font-size: 4em; - animation: error_blink 0.5s linear infinite; + font-size: x-large; + animation: error_blink 0.5s ease-in-out infinite; + z-index: 3; } #client_loading { @@ -53,9 +62,9 @@ img { #client_gamewindow { position: relative; - top: 0; - left: 0; - width: 100%; + /*! top: 0; */ + /*! left: 0; */ + /*! width: 100%; */ padding-bottom: 75%; } @@ -67,7 +76,6 @@ img { height: 100%; overflow-y: scroll; justify-content: center; - display: none; align-items: center; vertical-align: middle; margin: 0 auto; @@ -91,19 +99,27 @@ img { } #client_wrapper { - position: absolute; - top: 0; - left: 0; + /*! position: absolute; */ + /*! top: 0; */ + /*! left: 0; */ background-color: #888888; - height: 99%; - width: 512px; - margin: 0; - padding: 0; - float: left; - resize: horizontal; + /*! height: 99%; */ + /*! width: 512px; */ + /*! margin: 0; */ + /*! padding: 0; */ + /*! float: left; */ + /*! resize: horizontal; */ overflow: auto; overflow-y:hidden; - border: 1px solid; + /*! border: 1px solid; */ + min-width: 256px; + resize: horizontal; +} + +@media (max-width: 360px) { + #kek { + width: fit-content; + } } #client_emo { @@ -113,9 +129,11 @@ img { } #client_settings { - position: absolute; - top: 100%; - width: 60%; + /*! position: absolute; */ + /*! top: 100%; */ + width: 100%; + /*! grid-column: 1; */ + /*! grid-row: 2; */ } .area_btn { @@ -189,73 +207,124 @@ img { word-break: keep-all; word-wrap: break-word; overflow-wrap: break-word; + text-align: start; + overflow: hidden; + scroll-behavior: smooth; } #client_chat p { margin: 4px; color: white; } -.long { - width: 98%; +.long { + width: 100%; background-color: #dddddd; border: 1px solid #555555; + border-style: solid; + box-sizing: border-box; + margin: auto; } #client_chatlog { - width: 244px; - height: 100%; - background: #dbdbdb url("misc/chat2.png") no-repeat; - padding: 0; - position: absolute; + /*! width: 244px; */ + /*! height: 100%; */ + /*! background: #dbdbdb url("misc/chat2.png") no-repeat; */ + /*! padding: 0; */ + /*! position: absolute; */ top: 0; right: 0; + /* grid-column: 2; */ + flex: 1; } #client_log { position: relative; - top: 3px; - left: 10px; - height: 310px; - width: 225px; + /* top: 3px; */ + /*! left: 10px; */ + height: 100%; + /*! width: 99%; */ color: white; word-break: keep-all; word-wrap:break-word; overflow-wrap: break-word; - overflow-y: hidden; - font-size: 12px; - margin-bottom: 40px; + overflow-y: scroll; + font-size: medium; + /* margin-bottom: 10px; */ + background-color: #242424; + border: black; + border-style: solid; + /* max-width: 50em; */ + /* min-height: 30em; */ + text-align: start; + line-height: .85em; +} + +#client_log > p { + line-height: 1.1em; +} + +#iclog_name { + font-weight: bold; + padding-right: .35em; +} + +#iclog_time { + float: right; + padding-right: .5em; + color: #dbdbdb; } #client_ooclog { - width: 220px; - margin-top: 30px; - height: 50%; + /*! width: 99%; */ + /* margin-top: 25px; */ + /* height: 50%; */ position: relative; - background-color: #8b8b8b; + background-color: #242424; + color: white; + font-family: "Source Code Pro", "Consolas", monospace; + font-size: small; + overflow-wrap: break-word; + overflow-y: scroll; + text-rendering: optimizelegibility; + resize: none; + flex: 1 1 auto; + border: none; } #client_musiclist { - width: 244px; - margin-top: 30px; - height: 50%; - position: relative; - background-color: #ff0000; + width: 99%; + /* margin-top: 20px; */ + /*! height: 50%; */ + background-color: #222; + color: white; } #client_bars { position: relative; - margin-bottom: 30px; + /*! margin-bottom: 30px; */ text-align: center; + /* display: flex; */ + /* flex-direction: row; */ + height: 20px; +} + +.slider { + padding-right: 4px; + width: 80%; + align-self: center; + margin-left: auto; + margin-right: auto; } .client_defense { - position: absolute; - left: 30px; + /* position: absolute; */ + /* left: 30px; */ + width: 90px; + height: 20px; } .client_prosecutor { - position: absolute; - left: 130px; + /* left: 130px; */ } .client_button { @@ -264,4 +333,31 @@ img { .dark { filter: brightness(50%); +} + +.hrtext { + overflow: hidden; + text-align: center; + font-size: small; +} + +.hrtext:before, +.hrtext:after { + background-color: #c6c6c6; + content: ""; + display: inline-block; + height: 1px; + position: relative; + vertical-align: middle; + width: 50%; +} + +.hrtext:before { + right: 0.5em; + margin-left: -50%; +} + +.hrtext:after { + left: 0.5em; + margin-right: -50%; }
\ No newline at end of file diff --git a/webAO/client.html b/webAO/client.html new file mode 100644 index 0000000..57872d3 --- /dev/null +++ b/webAO/client.html @@ -0,0 +1,110 @@ +<!DOCTYPE html> +<html lang="en"><head> + <title>Attorney Online session</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1.0"> + <link rel="stylesheet" type="text/css" href="client.css"> + <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> + <!--<script src="golden/js/goldenlayout.js"></script>--> + <link type="text/css" rel="stylesheet" href="golden/css/goldenlayout.css" /> + <link type="text/css" rel="stylesheet" href="https://golden-layout.com/files/latest/css/goldenlayout-dark-theme.css" /> + <script src="ui.b.js"></script> + <script src="client.b.js"></script> +</head> + +<template id="client_wrapper"> + <meta name="frame-title" lang="en" content="Game"> + <div id="client_gamewindow"> + <img id="client_court" alt="Courtroom background" onerror="imgError(this);"> + <img id="client_char" alt="Character sprite" onerror="imgError(this);"> + <img id="client_bench" alt="Bench overlay"> + <img id="client_fg" alt="Various overlay" onerror="imgError(this);"> + <div id="client_name"> + <p>Dolan</p> + </div> + <div id="client_chat"> + <p id="client_inner_chat"></p> + </div> + </div> + <input id="client_inputbox" class="long" type="text" onkeypress="onEnter(event)" style="padding-left: 1px; padding-right: 1px;"> + <div id="client_emo"> + </div> + <br> + <div id="client_buttons"> + <img src="misc/holdit.png" id="button_1" alt="Hold it!" class="client_button" onclick="toggleshout(1)"> + <img src="misc/objection.png" id="button_2" alt="OBJECTION!" class="client_button" onclick="toggleshout(2)"> + <img src="misc/takethat.png" id="button_3" alt="Take That!" class="client_button" onclick="toggleshout(3)"> + <br> + <input type="checkbox" id="sendsfx" name="sendsfx" value="sendsfx"> + <label for="sendsfx">SFX</label> + </div> +</template> + +<template id="client_settings"> + <meta name="frame-title" lang="en" content="Settings"> + <div class="slider">Music<input id="client_mvolume" class="long" type="range" min="0" max="100" value="80" onchange="changeMusicVolume()"></div> + <div class="slider">SFX <input id="client_svolume" class="long" type="range" min="0" max="100" value="70" onchange="changeSFXVolume()"></div> + <div class="slider">Blip <input id="client_bvolume" class="long" type="range" min="0" max="100" value="60" onchange="changeBlipVolume()"></div> + <input id="change_character" type="button" onclick="changeCharacter()" value="Change character"> +</template> + +<template id="log"> + <meta name="frame-title" lang="en" content="Log"> + <div id="client_log"> + <div class="hrtext">↓ log starts here ↓</div> + </div> +</template> + +<template id="misc" style="display: flex; flex-direction: column;"> + <meta name="frame-title" lang="en" content="Miscellaneous"> + <div id="client_bars"> + <span style="background-image: url("misc/zdoh.png"); width: 90px; height: 20px;"> + <img class="client_defense" alt="Defense health" id="client_defense_hp" src="misc/advocat.png" style="clip-path: polygon(0px 0px, 90px 0px, 90px 20px, 0px 20px, 0px 0px); clip: rect(0px, 90px, 20px, 0px);"> + </span> + <span style="background-image: url("misc/zdoh.png"); width: 90px; height: 20px;" misc=""> + <img class="client_prosecutor" alt="Prosecution health" id="client_prosecutor_hp" src="misc/procuror.png" style="clip-path: polygon(0px 0px, 90px 0px, 90px 20px, 0px 20px, 0px 0px); clip: rect(0px, 90px, 20px, 0px);" misc=""> + </span> + </div> +</template> + +<template id="ooc"> + <meta name="frame-title" lang="en" content="Server"> + <div style="height: 100%; display: flex; flex-direction: column;"> + <textarea id="client_ooclog" style="flex: 1 auto"></textarea> + <input id="client_oocinputbox" class="long" type="text" onkeypress="onOOCEnter(event)"> + </div> +</template> + +<template id="music"> + <meta name="frame-title" lang="en" content="Music"> + <select id="client_musiclist" size="5" onclick="musiclist_click(event)" style="width: 100%; height: 100%;"> + </select> +</template> + +<template id="about"> + <meta name="frame-title" lang="en" content="About"> + <img id="about-logo" src="images/logo-new.png" alt="Attorney Online logo"> + <h1 style="line-height: .3em;">webAO</h1> + <h3>version 2.1</h3> + <p>Client created by <a href="https://github.com/stonedDiscord">@stonedDiscord</a> and fixed up by <a href="https://github.com/oldmud0">@oldmud0</a>.</p> + <p>Special thanks to Aleks for reverse engineering the original Delphi client written by FanatSors.</p> +</template> + +<body> + <span id="sound"></span> + <div id="here"></div> + <div id="client_loading"> + <h1 id="client_loadingtext">Loading</h1> + <button onclick="RetryButton()">RETRY</button> + </div> + <div id="client_charselect"> + <button onclick="pickchar(1001)">SPECTATE</button> + <table id="client_chartable"></table> + </div> + <div id="client_error" class="error" style="display: none"> + <p>A network error occurred.</p> + <p id="error_id">(unknown error id)</p> + <button onclick="ReconnectButton()">Reconnect</button> + </div> +</body> +</html>
\ No newline at end of file diff --git a/webAO/client.js b/webAO/client.js new file mode 100644 index 0000000..6d301e5 --- /dev/null +++ b/webAO/client.js @@ -0,0 +1,1087 @@ +/* + * Glorious webAO + * made by sD, refactored by oldmud0 + * credits to aleks for original idea and source +*/ + +let queryDict = {}; +location.search.substr(1).split("&").forEach(function(item) { + queryDict[item.split("=")[0]] = item.split("=")[1] +}); + +/* Server magic */ + +const serverIP = queryDict.ip; +let mode = queryDict.mode; + +const AO_HOST = queryDict.asset || "http://assets.aceattorneyonline.com/base/"; +const MUSIC_HOST = AO_HOST + "sounds/music/"; +const BAR_WIDTH = 90; +const BAR_HEIGHT = 20; +const CHAR_SELECT_WIDTH = 8; +const UPDATE_INTERVAL = 65; + +let oldLoading = false; +if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|BB|PlayBook|IEMobile|Windows Phone|Kindle|Silk|Opera Mini/i.test(navigator.userAgent)) { + oldLoading = true; +} + +let selectedShout = 0; +let lastICMessageTime = new Date(0); + +class Client { + constructor(address) { + this.serv = new WebSocket("ws://" + address); + + this.serv.onopen = (evt) => this.onOpen(evt); + this.serv.onclose = (evt) => this.onClose(evt); + this.serv.onmessage = (evt) => this.onMessage(evt); + this.serv.onerror = (evt) => this.onError(evt); + + this.playerID = 1; + this.charID = -1; + + this.chars = []; + this.emotes = []; + + this.selectedEmote = -1; + + this.checkUpdater = null; + + // Only used for RMC/`music` packets, not EM/SM/MC packets. + this.musicList = Object(); + + this.handlers = { + "MS": (args) => this.handleMS(args), + "CT": (args) => this.handleCT(args), + "MC": (args) => this.handleMC(args), + "RMC": (args) => this.handleRMC(args), + "CI": (args) => this.handleCI(args), + "SC": (args) => this.handleSC(args), + "EI": (args) => this.handleEI(args), + "EM": (args) => this.handleEM(args), + "SM": (args) => this.handleSM(args), + "music": (args) => this.handlemusic(args), + "DONE": (args) => this.handleDONE(args), + "BN": (args) => this.handleBN(args), + "NBG": (args) => this.handleNBG(args), + "HP": (args) => this.handleHP(args), + "ID": (args) => this.handleID(args), + "PN": (args) => this.handlePN(args), + "SI": (args) => this.handleSI(args), + "CharsCheck": (args) => this.handleCharsCheck(args), + "PV": (args) => this.handlePV(args) + } + + this._lastTimeICReceived = new Date(0); + } + + /** + * Gets the current player's character. + */ + me() { + return this.chars[this.charID]; + } + + /** + * Gets the player's currently selected emote. + */ + myEmote() { + return this.emotes[this.selectedEmote]; + } + + /** + * Sends an out-of-character chat message. + * @param {string} message the message to send + */ + sendOOC(message) { + this.serv.send(`CT#web${this.playerID}#${escapeChat(message)}#%`); + } + + /** + * Sends an in-character chat message. + * @param {string} speaking who is speaking + * @param {string} name the name of the current character + * @param {string} silent whether or not it's silent + * @param {string} message the message to be sent + * @param {string} side the name of the side in the background + * @param {string} ssfxname the name of the sound effect + * @param {string} zoom whether or not to zoom + * @param {string} ssfxdelay the delay (in milliseconds) to play the sound effect + * @param {string} objection the number of the shout to play + */ + sendIC(speaking, name, silent, message, side, ssfxname, zoom, ssfxdelay, objection) { + this.serv.send( + `MS#chat#${speaking}#${name}#${silent}` + + `#${escapeChat(message)}#${side}#${ssfxname}#${zoom}` + + `#${this.charID}#${ssfxdelay}#${selectedShout}#0#0#0#0#%` + ); + } + + /** + * Requests to change the music to the specified track. + * @param {string} track the track ID + */ + sendMusicChange(track) { + this.serv.send(`MC#${track}#${this.charID}#%`); + } + + /** + * Requests to leave the room and free the character slot. + * + * Note: This packet is undocumented. It is not implemented by + * either the AO2 client or tsuserver. + */ + sendLeaveRoom() { + this.serv.send("FC#%"); + } + + /** + * Begins the handshake process by sending an identifier + * to the server. + */ + joinServer() { + this.serv.send(`HI#${navigator.userAgent.hashCode()}#%`); + this.serv.send("ID#webAO#2.4.5#%"); + this.CHECKupdater = setInterval(() => this.sendCheck, 5000); + } + + /** + * Requests to play as a specified character. + * @param {number} character the character ID + */ + sendCharacter(character) { + this.serv.send(`CC#${this.playerID}#${character}#web#%`); + } + + /** + * Requests to select a music track. + * @param {number?} song the song to be played + */ + sendMusic(song) { + this.serv.send(`MC#${song}`); + } + + /** + * Sends a keepalive packet. + */ + sendCheck() { + this.serv.send(`CH#${this.charID}#%`); + } + + /** + * Triggered when a connection is established to the server. + */ + onOpen(e) { + // XXX: Why does watching mean just SITTING there and doing nothing? + if (mode == "join") { + client.joinServer(); + } else { + document.getElementById("client_loading").style.display = "none"; + } + } + + /** + * Triggered when the connection to the server closes. + * @param {CloseEvent} e + */ + onClose(e) { + console.error(`The connection was closed: ${e.reason} (${e.code})`); + if (e.code !== 1001) { + document.getElementById("client_error").style.display = "block"; + document.getElementById("error_id").textContent = e.code; + this.cleanup(); + } + } + + /** + * Triggered when a packet is received from the server. + * @param {MessageEvent} e + */ + onMessage(e) { + let msg = e.data; + console.debug(msg); + let lines = msg.split('%'); + let args = lines[0].split('#'); + let header = args[0]; + let handler = this.handlers[header]; + if (typeof handler !== "undefined") { + handler(args); + } else { + console.warn(`Invalid packet header ${header}`); + } + } + + /** + * Triggered when an network error occurs. + * @param {ErrorEvent} e + */ + onError(e) { + console.error(`A network error occurred: ${e.reason} (${e.code})`); + document.getElementById("client_error").style.display = "block"; + document.getElementById("error_id").textContent = e.code; + this.cleanup(); + } + + cleanup() { + try { + this.serv.close(1001); + } catch (e) { + // I don't care if this errors + } + clearInterval(this.checkUpdater); + } + + /** + * Handles an in-character chat message. + * @param {*} args packet arguments + */ + handleMS(args) { + // TODO: this if-statement might be a bug. + if (args[4] != viewport.chatmsg.content) { + document.getElementById("client_inner_chat").innerHTML = ""; + let chatmsg = { + pre: escape(args[2]), + character: -1, // Will do a linear search + preanim: escape(args[2]), // XXX: why again? + nameplate: args[3], // TODO: parse INI to get this info + name: args[3], + speaking: "(b)" + escape(args[4]), + silent: "(a)" + escape(args[4]), + content: args[5], + side: args[6], + sound: escape(args[7]), + type: args[8], + // charid: args[9], + snddelay: args[10], + objection: args[11], + evidence: args[12], + // flip: args[13], + flash: args[14], + color: args[15], + isnew: true, + }; + + // The dreaded linear search... + for (let i = 0; i < this.chars.length; i++) { + if (this.chars[i].name == args[3]) { + chatmsg.character = i; + break; + } + } + + if (chatmsg.character == this.charID) { + resetICParams(); + } + + viewport.say(chatmsg); + } + } + + /** + * Handles an out-of-character chat message. + * @param {Array} args packet arguments + */ + handleCT(args) { + const oocLog = document.getElementById("client_ooclog"); + oocLog.innerHTML += `${args[1]}: ${args[2]}\r\n`; + if (oocLog.scrollTop > oocLog.scrollHeight - 60) { + oocLog.scrollTop = oocLog.scrollHeight; + } + } + + /** + * Handles a music change to an arbitrary resource. + * @param {Array} args packet arguments + */ + handleMC(args) { + const music = viewport.music; + music.pause(); + music.src = MUSIC_HOST + args[1]; + music.play(); + if (args[2] >= 0) { + let musicname = this.chars[args[2]].name; + appendICLog(`${musicname} changed music to ${args[1]}`); + } else { + appendICLog(`The music was changed to ${args[1]}`); + } + } + + /** + * Handles a music change to an arbitrary resource, with an offset in seconds. + * @param {Array} args packet arguments + */ + handleRMC(args) { + viewport.music.pause(); + viewport.music = new Audio(this.musicList[args[1]]); + const music = viewport.music; + // Music offset + drift from song loading + music.totime = args[1]; + music.offset = new Date().getTime() / 1000; + music.addEventListener('loadedmetadata', function() { + music.currentTime += parseFloat(music.totime + (new Date().getTime() / 1000 - music.offset)).toFixed(3); + music.play(); + }, false); + } + + /** + * Handles incoming character information, bundling multiple characters + * per packet. + * @param {Array} args packet arguments + */ + handleCI(args) { + document.getElementById("client_loadingtext").innerHTML = "Loading Character " + args[1]; + this.serv.send("AN#" + ((args[1] / 10) + 1) + "#%"); + for (let i = 2; i < args.length - 1; i++) { + if (i % 2 == 0) { + let chargs = args[i].split("&"); + this.chars[args[i - 1]] = { + "name": chargs[0], + "desc": chargs[1], + "evidence": chargs[3], + "icon": AO_HOST + "characters/" + escape(chargs[0]) + "/char_icon.png" + }; + } + } + } + + /** + * Handles incoming character information, containing only one character + * per packet. + * @param {Array} args packet arguments + */ + handleSC(args) { + document.getElementById("client_loadingtext").innerHTML = "Loading Characters"; + for (let i = 1; i < args.length - 1; i++) { + let chargs = args[i].split("&"); + this.chars[i - 1] = { + "name": chargs[0], + "desc": chargs[1], + "evidence": chargs[3], + "icon": AO_HOST + "characters/" + escape(chargs[0]) + "/char_icon.png" + } + } + this.serv.send("RM#%"); + } + + /** + * Handles incoming evidence information, containing only one evidence + * item per packet. + * + * Mostly unimplemented in webAO. + * @param {Array} args packet arguments + */ + handleEI(args) { + document.getElementById("client_loadingtext").innerHTML = "Loading Evidence " + args[1]; + //serv.send("AE#" + (args[1] + 1) + "#%"); + this.serv.send("RM#%"); + } + + /** + * Handles incoming music information, containing multiple entries + * per packet. + * @param {Array} args packet arguments + */ + handleEM(args) { + document.getElementById("client_loadingtext").innerHTML = "Loading Music " + args[1]; + this.serv.send("AM#" + ((args[1] / 10) + 1) + "#%"); + let hmusiclist = document.getElementById("client_musiclist"); + for (let i = 2; i < args.length - 1; i++) { + if (i % 2 == 0) { + let newentry = document.createElement("OPTION"); + newentry.text = args[i]; + hmusiclist.options.add(newentry); + } + } + } + + /** + * Handles incoming music information, containing only one entry + * per packet. + * @param {Array} args packet arguments + */ + handleSM(args) { + document.getElementById("client_loadingtext").innerHTML = "Loading Music "; + let hmusiclist = document.getElementById("client_musiclist"); + for (let i = 1; i < args.length - 1; i++) { + let newentry = document.createElement("OPTION"); + newentry.text = args[i]; + hmusiclist.options.add(newentry); + } + this.serv.send("RD#%"); + } + + /** + * Handles incoming music information, containing all entries + * in the same packet. + * @param {Array} args packet arguments + */ + handlemusic(args) { + for (let i = 0; i < args.length / 2; i++) { + this.musicList[args[2 * i]] = args[2 * i + 1]; + } + } + + /** + * Handles the handshake completion packet, meaning the player + * is ready to select a character. + * + * @param {Array} args packet arguments + */ + handleDONE(args) { + document.getElementById("client_loading").style.display = "none"; + document.getElementById("client_charselect").style.display = "block"; + } + + /** + * Handles a background change. + * @param {Array} args packet arguments + */ + handleBN(args) { + viewport.bgname = escape(args[1]); + } + + handleNBG(args) { + // TODO (set by sD) + } + + /** + * Handles a change in the health bars' states. + * @param {Array} args packet arguments + */ + handleHP(args) { + // TODO (set by sD) + // Also, this is broken. + if (args[1] == 1) { + document.getElementById("client_defense_hp").style.clip = "rect(0px," + BAR_WIDTH * args[2] / 10 + "px," + BAR_HEIGHT + "px,0px)"; + } else { + document.getElementById("client_prosecutor_hp").style.clip = "rect(0px," + BAR_WIDTH * args[2] / 10 + "px," + BAR_HEIGHT + "px,0px)"; + } + } + + /** + * Handles the issuance of a player ID by the server. + * @param {Array} args packet arguments + */ + handleID(args) { + this.playerID = args[1]; + } + + handlePN(args) { + this.serv.send("askchaa#%"); + } + + /** + * Received when the server announces its server info, + * but we use it as a cue to begin retrieving characters. + * @param {Array} args packet arguments + */ + handleSI(args) { + if (oldLoading) { + this.serv.send("askchar2#%"); + } else { + this.serv.send("RC#%"); + } + } + + /** + * Handles the list of all used and vacant characters. + * @param {Array} args packet arguments + */ + handleCharsCheck(args) { + document.getElementById("client_chartable").innerHTML = ""; + for (let i = 0; i < this.chars.length; i++) { + if (i % CHAR_SELECT_WIDTH == 0) { + var tr = document.createElement('TR'); + } + let td = document.createElement('TD'); + let icon_chosen; + let thispick = this.chars[i].icon; + if (args[i + 1] == "-1") { + icon_chosen = " dark"; + } else { + icon_chosen = ""; + } + td.innerHTML = `<img class='demothing${icon_chosen}' id='demo_${i}' ` + + `src='${thispick}' alt='${this.chars[i].desc}' onclick='pickchar(${i})' ` + + `onerror='demoError(this);'>`; + tr.appendChild(td); + if (i % CHAR_SELECT_WIDTH == 0) { + document.getElementById("client_chartable").appendChild(tr); + } + } + changeBackground("def"); + } + + /** + * Handles the server's assignment of a character for the player to use. + * @param {Array} args packet arguments + */ + handlePV(args) { + this.charID = args[3]; + document.getElementById("client_charselect").style.display = "none"; + let me = this.me(); + let emotes = this.emotes; + let xhr = new XMLHttpRequest(); + xhr.open('GET', AO_HOST + 'characters/' + escape(this.me().name) + '/char.ini', true); + xhr.responseType = 'text'; + xhr.onload = function (e) { + if (this.status == 200) { + let linifile = this.responseText; + let pinifile = INI.parse(linifile); + me.side = pinifile.Options.side; + for (let i = 1; i < pinifile.Emotions.number; i++) { + let emoteinfo = pinifile.Emotions[i].split('#'); + let esfx = "0"; + let esfxd = "0"; + if (typeof pinifile.SoundN !== 'undefined') { + esfx = pinifile.SoundN[i]; + } + if (typeof pinifile.SoundT !== 'undefined') { + esfxd = pinifile.SoundT[i]; + } + emotes[i] = { + desc: emoteinfo[0], + speaking: emoteinfo[1], + silent: emoteinfo[2], + zoom: emoteinfo[3], + sfx: esfx, + sfxdelay: esfxd, + button_off: AO_HOST + 'characters/' + escape(me.name) + '/emotions/button' + i + '_off.png', + button_on: AO_HOST + 'characters/' + escape(me.name) + '/emotions/button' + i + '_on.png' + }; + document.getElementById("client_emo").innerHTML += "<img src='" + emotes[i].button_off + "' id='emo_" + i + "' alt='" + emotes[i].desc + "' class='client_button' onclick='pickemotion(" + i + ")'>"; + } + pickemotion(1); + } + }; + xhr.send(); + } +} + +class Viewport { + constructor() { + this.textnow = ""; + this.chatmsg = { + "isnew": false, + "content": "", + "objection": "0", + "sound": "", + "startspeaking": false, + "side": null, + "color": "0", + "snddelay": 0 + }; + this.blip = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); + this.blip.volume = 0.5; + + // Allocate multiple blip audio channels to make blips less jittery + + // TODO: read blip type ("gender") from ini + this.blipChannels = new Array(6); + for (let i = 0; i < this.blipChannels.length; i++) { + this.blipChannels[i] = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); + this.blipChannels[i].volume = 0.5; + } + this.currentBlipChannel = 0; + + this.sfxaudio = new Audio(AO_HOST + 'sounds/general/sfx-blipmale.wav'); + this.sfxplayed = 0; + + this.music = new Audio(); + this.music.play(); + + this.updater = null; + + this.bgname = "gs4"; + + this.shoutTimer = 0; + this.textTimer = 0; + + this._animating = false; + } + + /** + * Returns whether or not the viewport is busy + * performing a task (animating). + */ + isAnimating() { + return this._animating; + } + + /** + * Sets the volume of the blip sound. + * @param {number} volume + */ + setBlipVolume(volume) { + for (let i = 0; i < this.blipChannels.length; i++) { + this.blipChannels[i].volume = volume; + } + } + + /** + * Returns the path which the background is located in. + */ + bgFolder() { + return `${AO_HOST}background/${this.bgname}/`; + } + + /** + * Sets a new emote. + * @param {object} chatmsg the new chat message + */ + say(chatmsg) { + this.chatmsg = chatmsg; + appendICLog(chatmsg.content, chatmsg.nameplate); + changeBackground(chatmsg.side); + this.textnow = ''; + this.sfxplayed = 0; + this.textTimer = 0; + this._animating = true; + this.updater = setInterval(() => this.updateText(), UPDATE_INTERVAL); + } + + /** + * Updates the chatbox based on the given text. + * + * XXX: This relies on a global variable `this.chatmsg`! + */ + updateText() { + if (this.chatmsg.content.trim() == "") { + document.getElementById("client_name").style.display = "none"; + document.getElementById("client_chat").style.display = "none"; + } else { + document.getElementById("client_name").style.display = "block"; + document.getElementById("client_chat").style.display = "block"; + } + + if (this.chatmsg.isnew) { + const shouts = { + "1": "holdit", + "2": "takethat", + "3": "objection" + }; + + let shout = shouts[this.chatmsg.objection]; + if (typeof shout !== "undefined") { + document.getElementById("client_char").src = AO_HOST + "misc/" + shout + ".gif"; + (new Audio(`${AO_HOST}/characters/${this.chatmsg.name}/${shout}.wav`)).play(); + this.shoutTimer = 800; + } else { + this.shoutTimer = 0; + } + + this.chatmsg.isnew = false; + this.chatmsg.startspeaking = true; + } + + if (this.textTimer >= this.shoutTimer) { + if (this.chatmsg.startspeaking) { + changeBackground(this.chatmsg.side); + document.getElementById("client_char").src = AO_HOST + "characters/" + escape(this.chatmsg.name) + "/" + this.chatmsg.speaking + ".gif"; + document.getElementById("client_name").style.fontSize = (document.getElementById("client_name").offsetHeight * 0.7) + "px"; + document.getElementById("client_chat").style.fontSize = (document.getElementById("client_chat").offsetHeight * 0.25) + "px"; + document.getElementById("client_name").innerHTML = "<p>" + escapeHtml(this.chatmsg.nameplate) + "</p>"; + + const colors = { + "0": "#ffffff", + "1": "#00ff00", + "2": "#ff0000", + "3": "#ffaa00", + "4": "#0000ff", + "5": "#ffff00", + "6": "#aa00aa" + } + let stylecolor = "color: " + (colors[this.chatmsg.color] || "#ffffff"); + document.getElementById("client_inner_chat").style = stylecolor; + this.chatmsg.startspeaking = false; + } else { + if (this.textnow != this.chatmsg.content) { + if (this.chatmsg.content.charAt(this.textnow.length) != " ") { + this.blipChannels[this.currentBlipChannel].play(); + this.currentBlipChannel++; + this.currentBlipChannel %= this.blipChannels.length; + } + this.textnow = this.chatmsg.content.substring(0, this.textnow.length + 1); + document.getElementById("client_inner_chat").innerHTML = this.textnow; + if (this.textnow == this.chatmsg.content) { + this.textTimer = 0; + this._animating = false; + clearInterval(this.updater); + document.getElementById("client_char").src = AO_HOST + "characters/" + escape(this.chatmsg.name) + "/" + this.chatmsg.silent + ".gif"; + } + } + } + } + if (!this.sfxplayed && this.chatmsg.snddelay + this.shoutTimer >= this.textTimer) { + this.sfxaudio.pause(); + this.sfxplayed = 1; + if (this.chatmsg.sound != "0" && this.chatmsg.sound != "1") { + this.sfxaudio.src = AO_HOST + "sounds/general/" + escape(this.chatmsg.sound) + ".wav"; + this.sfxaudio.play(); + } + } + this.textTimer = this.textTimer + UPDATE_INTERVAL; + } +} + +class INI { + static parse(data) { + let regex = { + section: /^\s*\[\s*([^\]]*)\s*\]\s*$/, + param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/, + comment: /^\s*;.*$/ + }; + let value = {}; + let lines = data.split(/\r\n|\r|\n/); + let section = null; + lines.forEach(function(line) { + if (regex.comment.test(line)) { + return; + } else if (line.length == 0) { + return; + } else if (regex.param.test(line)) { + let match = line.match(regex.param); + if (section) { + value[section][match[1]] = match[2]; + } else { + value[match[1]] = match[2]; + } + } else if (regex.section.test(line)) { + let match = line.match(regex.section); + value[match[1]] = {}; + section = match[1]; + }; + }); + return value; + } +} + +/** + * Triggered when the Return key is pressed on the out-of-character chat input box. + * @param {KeyboardEvent} event + */ +export function onOOCEnter(event) { + if (event.keyCode == 13) { + client.sendOOC(document.getElementById("client_oocinputbox").value); + document.getElementById("client_oocinputbox").value = ""; + } +} +window.onOOCEnter = onOOCEnter; + +/** + * Triggered when the Return key is pressed on the in-character chat input box. + * @param {KeyboardEvent} event + */ +export function onEnter(event) { + if (event.keyCode == 13) { + let mychar = client.me(); + let myemo = client.myEmote(); + let ssfxname = "0"; + let ssfxdelay = "0"; + if (document.getElementById("sendsfx").checked) { + ssfxname = myemo.sfx; + ssfxdelay = myemo.sfxdelay; + } + client.sendIC(myemo.speaking, mychar.name, myemo.silent, document.getElementById("client_inputbox").value, mychar.side, ssfxname, myemo.zoom, ssfxdelay, selectedShout); + } +} +window.onEnter = onEnter; + +/** + * Resets the IC parameters for the player to enter a new chat message. + * This should only be called when the player's previous chat message + * was successfully sent/presented. + */ +function resetICParams() { + document.getElementById("client_inputbox").value = ""; + if (selectedShout) { + document.getElementById("button_" + selectedShout).className = "client_button"; + selectedShout = 0; + } +} + +/** + * Triggered when an item on the music list is clicked. + * @param {MouseEvent} event + */ +export function musiclist_click(event) { + let playtrack = document.getElementById("client_musiclist").value; + client.sendMusicChange(playtrack); +} +window.musiclist_click = musiclist_click; + +/** + * Triggered by the music volume slider. + */ +export function changeMusicVolume() { + viewport.music.volume = document.getElementById("client_mvolume").value / 100; +} +window.changeMusicVolume = changeMusicVolume; + +/** + * Triggered by the sound effect volume slider. + */ +export function changeSFXVolume() { + viewport.sfxaudio.volume = document.getElementById("client_svolume").value / 100; +} +window.changeSFXVolume = changeSFXVolume; + +/** + * Triggered by the blip volume slider. + */ +export function changeBlipVolume() { + viewport.setBlipVolume(document.getElementById("client_bvolume").value / 100); +} +window.changeBlipVolume = changeBlipVolume; + +/** + * Triggered when a character icon is clicked in the character selection menu. + * @param {MouseEvent} event + */ +export function changeCharacter(event) { + client.sendLeaveRoom(); + document.getElementById("client_charselect").style.display = "block"; + document.getElementById("client_emo").innerHTML = ""; +} +window.changeCharacter = changeCharacter; + +/** + * Triggered when there was an error loading a character sprite. + * @param {HTMLImageElement} image the element containing the missing image + */ +export function imgError(image) { + image.onerror = ""; + image.src = "/misc/placeholder.gif"; + return true; +} +window.imgError = imgError; + +/** + * Triggered when there was an error loading a character icon. + * @param {HTMLImageElement} image the element containing the missing image + */ +export function demoError(image) { + image.onerror = ""; + image.src = "/misc/placeholder.png"; + return true; +} +window.demoError = demoError; + +/** + * Checks if an image exists at the specified URI. + * @param {string} url the URI to be checked + */ +function ImageExist(url) { + var img = new Image(); + img.src = url; + return img.height != 0; +} + +/** + * Changes the viewport background based on a given position. + * + * Valid positions: `def, pro, hld, hlp, wit, jud` + * @param {string} position the position to change into + */ +function changeBackground(position) { + var standname; + let bgfolder = viewport.bgFolder(); + document.getElementById("client_fg").style.display = "none"; + document.getElementById("client_bench").style.display = "none"; + switch (position) { + case "def": + document.getElementById("client_court").src = bgfolder + "defenseempty.png" + document.getElementById("client_bench").style.display = "block"; + document.getElementById("client_bench").src = bgfolder + "defensedesk.png" + standname = "defense"; + break; + case "pro": + document.getElementById("client_court").src = bgfolder + "prosecutorempty.png" + document.getElementById("client_bench").style.display = "block" + document.getElementById("client_bench").src = bgfolder + "prosecutiondesk.png" + standname = "prosecution"; + break; + case "hld": + document.getElementById("client_court").src = bgfolder + "helperstand.png" + standname = "defense"; + break; + case "hlp": + document.getElementById("client_court").src = bgfolder + "prohelperstand.png" + standname = "prosecution"; + break; + case "wit": + document.getElementById("client_court").src = bgfolder + "witnessempty.png" + document.getElementById("client_bench").style.display = "block" + document.getElementById("client_bench").src = bgfolder + "estrado.png" + standname = "prosecution"; + break; + case "jud": + document.getElementById("client_court").src = bgfolder + "judgestand.png" + standname = "prosecution"; + break; + } + if (viewport.chatmsg.type == 5) { + document.getElementById("client_bench").style.display = "none"; + document.getElementById("client_court").src = AO_HOST + "themes/default/" + standname + "_speedlines.gif"; + } +} + +/** + * Triggered when the reconnect button is pushed. + */ +export function ReconnectButton() { + client.cleanup(); + client = new Client(serverIP); + if (client) { + mode = "join"; // HACK: see client.onOpen + document.getElementById("client_error").style.display = "none"; + } +} +window.ReconnectButton = ReconnectButton; + +/** + * Triggered when the retry button is pushed (during the loading process). + */ +export function RetryButton() { + client.joinServer(); +} +window.RetryButton = RetryButton; + +/** + * Appends a message to the in-character chat log. + * @param {string} toadd the string to be added + * @param {string} name the name of the sender + */ +function appendICLog(toadd, name = "", time = new Date()) { + const entry = document.createElement("p"); + const nameField = document.createElement("span"); + nameField.id = "iclog_name"; + nameField.appendChild(document.createTextNode(name)); + entry.appendChild(nameField); + entry.appendChild(document.createTextNode(toadd)); + + // Only put a timestamp if the minute has changed. + if (lastICMessageTime.getMinutes() !== time.getMinutes()) { + const timeStamp = document.createElement("span"); + timeStamp.id = "iclog_time"; + timeStamp.innerText = time.toLocaleTimeString(undefined, { + hour: "numeric", + minute: "2-digit" + }); + entry.appendChild(timeStamp); + } + + const clientLog = document.getElementById("client_log"); + clientLog.appendChild(entry); + + if (clientLog.scrollTop > clientLog.scrollHeight - 600) { + clientLog.scrollTop = clientLog.scrollHeight; + } + + lastICMessageTime = new Date(); +} + +/** + * Requests to play as a character. + * @param {number} ccharacter the character ID; if this is a large number, then spectator is chosen instead. + */ +export function pickchar(ccharacter) { + if (ccharacter < 1000) { + client.sendCharacter(ccharacter); + } else { + // Spectator + document.getElementById("client_charselect").style.display = "none"; + document.getElementById("client_inputbox").style.display = "none"; + document.getElementById("client_emo").style.display = "none"; + } +} +window.pickchar = pickchar; + +/** + * Highlights and selects an emotion for in-character chat. + * @param {string} emo the new emotion to be selected + */ +export function pickemotion(emo) { + if (client.selectedEmote != -1) { + document.getElementById("emo_" + client.selectedEmote).src = client.myEmote().button_off; + } + client.selectedEmote = emo + document.getElementById("emo_" + emo).src = client.myEmote().button_on; +} +window.pickemotion = pickemotion; + +/** + * Highlights and selects a shout for in-character chat. + * If the same shout button is selected, then the shout is canceled. + * @param {string} shout the new shout to be selected + */ +export function toggleshout(shout) { + if (shout == selectedShout) { + document.getElementById("button_" + shout).className = "client_button"; + selectedShout = 0; + } else { + document.getElementById("button_" + shout).className = "client_button dark"; + if (selectedShout) { + document.getElementById("button_" + selectedShout).className = "client_button"; + } + selectedShout = shout; + } +} +window.toggleshout = toggleshout; + +/** + * Escapes a string to be HTML-safe. + * + * XXX: This is unnecessary if we use `createTextNode` instead! + * @param {string} unsafe an unsanitized string + */ +function escapeHtml(unsafe) { + return unsafe + .replace(/&/g, "&") + .replace(/</g, "<") + .replace(/>/g, ">") + .replace(/"/g, """) + .replace(/'/g, "'"); +} + +/** + * Escapes a string to AO1 escape codes. + * @param {string} estring the string to be escaped + */ +function escapeChat(estring) { + return estring + .replace(/#/g, "<pound>") + .replace(/&/g, "<and>") + .replace(/%/g, "<percent>") + .replace(/\$/g, "<dollar>"); +} + +// TODO: Possibly safe to remove, since we are using a transpiler. +if (typeof(String.prototype.trim) === "undefined") +{ + String.prototype.trim = function() + { + return String(this).replace(/^\s+|\s+$/g, ''); + }; +} + +// Used for HDID calculation. +String.prototype.hashCode = function() { + var hash = 0, i, chr; + if (this.length === 0) return hash; + for (i = 0; i < this.length; i++) { + chr = this.charCodeAt(i); + hash = ((hash << 5) - hash) + chr; + hash |= 0; // Convert to 32bit integer + } + return hash; +}; + + +// +// Client code +// + +let client = new Client(serverIP); +let viewport = new Viewport(); diff --git a/webAO/golden/LICENSE.txt b/webAO/golden/LICENSE.txt new file mode 100644 index 0000000..5ef7a1f --- /dev/null +++ b/webAO/golden/LICENSE.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2016 deepstream.io + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.
\ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css b/webAO/golden/css/goldenlayout.css new file mode 100644 index 0000000..ecb0d6b --- /dev/null +++ b/webAO/golden/css/goldenlayout.css @@ -0,0 +1,525 @@ +h2 { + font: 14px Arial, sans-serif; + color: #fff; + padding: 10px; +} +.lm_content { + text-align: center; + color: white; +} +body { + height: 100%; + width: 100%; + position: absolute; + transition: all 0.5s ease; +} +#menuContainer { + list-style: none; + margin: 10px; + padding: 0; +} +#menuContainer:after { + content: ""; + display: table; + clear: both; +} +#menuContainer li { + float: left; + margin-right: 10px; +} +#menuContainer li a { + background-color: black; + color: white; + padding: 5px; + text-decoration: none; + font-family: Arial, sans-serif; + font-size: 12px; +} +.lm_root { + position: relative; +} +.lm_row > .lm_item { + float: left; +} +.lm_content { + overflow: hidden; + position: relative; +} +.lm_dragging, +.lm_dragging * { + cursor: move !important; + user-select: none; +} +.lm_maximised { + position: absolute; + top: 0; + left: 0; + z-index: 40; +} +.lm_maximise_placeholder { + display: none; +} +.lm_splitter { + position: relative; + z-index: 2; +} +.lm_splitter:hover, +.lm_splitter.lm_dragging { + background: orange; +} +.lm_splitter.lm_vertical .lm_drag_handle { + width: 100%; + position: absolute; + cursor: ns-resize; +} +.lm_splitter.lm_horizontal { + float: left; + height: 100%; +} +.lm_splitter.lm_horizontal .lm_drag_handle { + height: 100%; + position: absolute; + cursor: ew-resize; +} +.lm_header { + overflow: visible; + position: relative; + z-index: 1; + user-select: none; +} +.lm_header.lm_selectable { + cursor: pointer; +} +.lm_header [class^=lm_] { + box-sizing: content-box !important; +} +.lm_header .lm_controls { + position: absolute; + right: 3px; +} +.lm_header .lm_controls > li { + cursor: pointer; + float: left; + width: 18px; + height: 18px; + text-align: center; +} +.lm_header ul { + margin: 0; + padding: 0; + list-style-type: none; +} +.lm_header .lm_tabs { + position: absolute; +} +.lm_header .lm_tab { + cursor: pointer; + float: left; + height: 14px; + margin-top: 1px; + padding: 0px 10px 5px; + padding-right: 25px; + position: relative; +} +.lm_header .lm_tab i { + width: 2px; + height: 19px; + position: absolute; +} +.lm_header .lm_tab i.lm_left { + top: 0; + left: -2px; +} +.lm_header .lm_tab i.lm_right { + top: 0; + right: -2px; +} +.lm_header .lm_tab .lm_title { + display: inline-block; + overflow: hidden; + text-overflow: ellipsis; +} +.lm_header .lm_tab .lm_close_tab { + width: 14px; + height: 14px; + position: absolute; + top: 0; + right: 0; + text-align: center; +} +.lm_stack { + position: relative; +} +.lm_stack > .lm_items { + overflow: hidden; +} +.lm_stack.lm_left > .lm_items { + position: absolute; + left: 20px; + top: 0; +} +.lm_stack.lm_right > .lm_items { + position: absolute; + right: 20px; + top: 0; +} +.lm_stack.lm_right > .lm_header { + position: absolute; + right: 0; + top: 0; +} +.lm_stack.lm_bottom > .lm_items { + position: absolute; + bottom: 20px; +} +.lm_stack.lm_bottom > .lm_header { + position: absolute; + bottom: 0; +} +.lm_stack.lm_docked { + overflow: visible; + z-index: 3; +} +.lm_stack.lm_docked > .lm_header { + z-index: 5; +} +.lm_stack.lm_docked > .lm_items { + *z-index: 3; + transition: height 0.4s ease-in; + border: solid 2px; + border-image-slice: 1 !important; + margin: -2px 0; +} +.lm_stack.lm_docked.lm_left > .lm_items, +.lm_stack.lm_docked.lm_right > .lm_items { + transition: width 0.4s ease-in, height 0.001s linear; +} +.lm_left.lm_stack .lm_header, +.lm_right.lm_stack .lm_header { + height: 100%; +} +.lm_left.lm_dragProxy .lm_header, +.lm_right.lm_dragProxy .lm_header, +.lm_left.lm_dragProxy .lm_items, +.lm_right.lm_dragProxy .lm_items { + float: left; +} +.lm_left.lm_dragProxy .lm_header, +.lm_right.lm_dragProxy .lm_header, +.lm_left.lm_stack .lm_header, +.lm_right.lm_stack .lm_header { + width: 20px; + vertical-align: top; +} +.lm_left.lm_dragProxy .lm_header .lm_tabs, +.lm_right.lm_dragProxy .lm_header .lm_tabs, +.lm_left.lm_stack .lm_header .lm_tabs, +.lm_right.lm_stack .lm_header .lm_tabs { + transform-origin: left top; + top: 0; + width: 1000px; + /*hack*/ +} +.lm_left.lm_dragProxy .lm_header .lm_controls, +.lm_right.lm_dragProxy .lm_header .lm_controls, +.lm_left.lm_stack .lm_header .lm_controls, +.lm_right.lm_stack .lm_header .lm_controls { + bottom: 0; +} +.lm_dragProxy.lm_left .lm_header .lm_tabs, +.lm_stack.lm_left .lm_header .lm_tabs { + transform: rotate(-90deg) scaleX(-1); + left: 0; +} +.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab, +.lm_stack.lm_left .lm_header .lm_tabs .lm_tab { + transform: scaleX(-1); + margin-top: 1px; +} +.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list, +.lm_stack.lm_left .lm_header .lm_tabdropdown_list { + top: initial; + right: initial; + left: 20px; +} +.lm_dragProxy.lm_right .lm_content { + float: left; +} +.lm_dragProxy.lm_right .lm_header .lm_tabs, +.lm_stack.lm_right .lm_header .lm_tabs { + transform: rotate(90deg) scaleX(1); + left: 100%; + margin-left: 0; +} +.lm_dragProxy.lm_right .lm_header .lm_controls, +.lm_stack.lm_right .lm_header .lm_controls { + left: 3px; +} +.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list, +.lm_stack.lm_right .lm_header .lm_tabdropdown_list { + top: initial; + right: 20px; +} +.lm_dragProxy.lm_bottom .lm_header, +.lm_stack.lm_bottom .lm_header { + width: 100%; +} +.lm_dragProxy.lm_bottom .lm_header .lm_tab, +.lm_stack.lm_bottom .lm_header .lm_tab { + margin-top: 0; + border-top: none; +} +.lm_dragProxy.lm_bottom .lm_header .lm_controls, +.lm_stack.lm_bottom .lm_header .lm_controls { + top: 3px; +} +.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list, +.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list { + top: initial; + bottom: 20px; +} +.lm_drop_tab_placeholder { + float: left; + width: 100px; + height: 10px; + visibility: hidden; +} +.lm_header .lm_controls .lm_tabdropdown:before { + content: ''; + width: 0; + height: 0; + vertical-align: middle; + display: inline-block; + border-top: 5px dashed; + border-right: 5px solid transparent; + border-left: 5px solid transparent; + color: white; +} +.lm_header .lm_tabdropdown_list { + position: absolute; + top: 20px; + right: 0; + z-index: 5; + overflow: hidden; +} +.lm_header .lm_tabdropdown_list .lm_tab { + clear: both; + padding-right: 10px; + margin: 0; +} +.lm_header .lm_tabdropdown_list .lm_tab .lm_title { + width: 100px; +} +.lm_header .lm_tabdropdown_list .lm_close_tab { + display: none !important; +} +/*********************************** +* Drag Proxy +***********************************/ +.lm_dragProxy { + position: absolute; + top: 0; + left: 0; + z-index: 30; +} +.lm_dragProxy .lm_header { + background: transparent; +} +.lm_dragProxy .lm_content { + border-top: none; + overflow: hidden; +} +.lm_dropTargetIndicator { + display: none; + position: absolute; + z-index: 20; + transition: all 200ms ease; +} +.lm_dropTargetIndicator .lm_inner { + width: 100%; + height: 100%; + position: relative; + top: 0; + left: 0; +} +.lm_transition_indicator { + display: none; + width: 20px; + height: 20px; + position: absolute; + top: 0; + left: 0; + z-index: 20; +} +.lm_popin { + width: 20px; + height: 20px; + position: absolute; + bottom: 0; + right: 0; + z-index: 9999; +} +.lm_popin > * { + width: 100%; + height: 100%; + position: absolute; + top: 0; + left: 0; +} +.lm_popin > .lm_bg { + z-index: 10; +} +.lm_popin > .lm_icon { + z-index: 20; +} +.lm_goldenlayout { + background: #000000; +} +.lm_content { + background: #222222; + border: 1px solid transparent; +} +.lm_dragProxy .lm_content { + box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9); +} +.lm_dropTargetIndicator { + box-shadow: inset 0 0 30px #000000; + outline: 1px dashed #cccccc; +} +.lm_dropTargetIndicator .lm_inner { + background: #000000; + opacity: 0.2; +} +.lm_splitter { + background: #000000; + opacity: 0.001; + transition: opacity 200ms ease; +} +.lm_splitter:hover, +.lm_splitter.lm_dragging { + background: #444444; + opacity: 1; +} +.lm_header { + height: 20px; +} +.lm_header .lm_tab { + font-family: Arial, sans-serif; + font-size: 12px; + color: #999999; + background: #111111; + box-shadow: 2px -2px 2px rgba(0, 0, 0, 0.3); + margin-right: 2px; + padding-bottom: 2px; + padding-top: 2px; + /*.lm_title // Present in LIGHT Theme + { + padding-top:1px; + }*/ +} +.lm_header .lm_tab .lm_close_tab { + width: 11px; + height: 11px; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII="); + background-position: center center; + background-repeat: no-repeat; + top: 4px; + right: 6px; + opacity: 0.4; +} +.lm_header .lm_tab .lm_close_tab:hover { + opacity: 1; +} +.lm_header .lm_tab.lm_active { + border-bottom: none; + box-shadow: 0 -2px 2px #000000; + padding-bottom: 3px; +} +.lm_header .lm_tab.lm_active .lm_close_tab { + opacity: 1; +} +.lm_dragProxy.lm_right .lm_header .lm_tab.lm_active, +.lm_stack.lm_right .lm_header .lm_tab.lm_active { + box-shadow: 2px -2px 2px #000000; +} +.lm_dragProxy.lm_bottom .lm_header .lm_tab, +.lm_stack.lm_bottom .lm_header .lm_tab { + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3); +} +.lm_dragProxy.lm_bottom .lm_header .lm_tab.lm_active, +.lm_stack.lm_bottom .lm_header .lm_tab.lm_active { + box-shadow: 0 2px 2px #000000; +} +.lm_selected .lm_header { + background-color: #452500; +} +.lm_tab:hover, +.lm_tab.lm_active { + background: #222222; + color: #dddddd; +} +.lm_header .lm_controls .lm_tabdropdown:before { + color: #ffffff; +} +.lm_controls > li { + position: relative; + background-position: center center; + background-repeat: no-repeat; + opacity: 0.4; + transition: opacity 300ms ease; +} +.lm_controls > li:hover { + opacity: 1; +} +.lm_controls .lm_popout { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII="); +} +.lm_controls .lm_maximise { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg=="); +} +.lm_controls .lm_close { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII="); +} +.lm_controls .lm_dock { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QQLExoPDb+5JQAAAKZJREFUOMvV0tENgjAUhWFGYBQ20FG6iYzgBo4gG8gIbAAbyAafD5akwWIATYz3sWn+e/qfFsUvBsevQDzn8gmkRI8a3W4YGjQJdD0MFQ44YUQ5S/geFgF99NFhyEmOz5QtIG4a0aYJMneuSwvmiUaEhebu0Vm51s8LLKaotzY1OQjJWbvpUyJESD0li26g2goJs2feMOyCZJxVuyFp7WvTnJcg/zkPjGQks0ox9/8AAAAASUVORK5CYII="); + transform: rotate(-45deg); + transition: transform 300ms; +} +.lm_stack.lm_docked .lm_controls .lm_dock { + transform: rotate(0deg); +} +.lm_stack.lm_docked > .lm_items { + border-color: #555555; + border-image: linear-gradient(to right, #444444 1%, #999999 100%); + box-shadow: 0 2px 2px #000000; +} +.lm_maximised .lm_header { + background-color: #000000; +} +.lm_maximised .lm_controls .lm_maximise { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC"); +} +.lm_transition_indicator { + background-color: #000000; + border: 1px dashed #555555; +} +.lm_popin { + cursor: pointer; +} +.lm_popin .lm_bg { + background: #ffffff; + opacity: 0.3; +} +.lm_popin .lm_icon { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC"); + background-position: center center; + background-repeat: no-repeat; + border-left: 1px solid #eeeeee; + border-top: 1px solid #eeeeee; + opacity: 0.7; +} +.lm_popin:hover .lm_icon { + opacity: 1; +} + +/*# sourceMappingURL=goldenlayout.css.map*/
\ No newline at end of file diff --git a/webAO/golden/css/goldenlayout.css.map b/webAO/golden/css/goldenlayout.css.map new file mode 100644 index 0000000..ea8f7a7 --- /dev/null +++ b/webAO/golden/css/goldenlayout.css.map @@ -0,0 +1 @@ +{"version":3,"file":"css\\goldenlayout.css","sources":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","sourceRoot":""}
\ No newline at end of file diff --git a/webAO/golden/js/goldenlayout.js b/webAO/golden/js/goldenlayout.js new file mode 100644 index 0000000..6f4c3c0 --- /dev/null +++ b/webAO/golden/js/goldenlayout.js @@ -0,0 +1,2 @@ +(function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define('GoldenLayout',[],t):'object'==typeof exports?exports.GoldenLayout=t():e.GoldenLayout=t()})('undefined'==typeof self?this:self,function(){var e=Math.min,t=Math.floor,n=Math.max;return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(n,'a',n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=35)}([function(e,t,n){'use strict';function o(e){var t=location.hash.match(new RegExp(e+'=([^&]*)'));return t?t[1]:null}t.e=function(e){return $.zepto?e.touches?e.targetTouches[0]:e:e.originalEvent&&e.originalEvent.touches?e.originalEvent.touches[0]:e},t.j=function(e){var t,n;if('function'==typeof a.a)return a()(e);for(n in t=[],e)t.push(n);return t},t.d=function(e){if(window.location.hash)return o(e);if(!window.location.search)return null;var t,n,i=window.location.search.substr(1).split('&'),a={};for(n=0;n<i.length;n++)t=i[n].split('='),a[t[0]]=t[1];return a[e]||null},t.b=function(e,t){for(var n in t)e[n]=t[n];return e},t.a=function(e){return(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)})(function(){e()})},t.g=function(e,t){if(!(t instanceof Array))throw new Error('Haystack is not an Array');if(t.indexOf)return t.indexOf(e);for(var n=0;n<t.length;n++)if(t[n]===e)return n;return-1},n.d(t,'h',function(){return l}),t.c=function(e,t,n){if(void 0!==Function.prototype.bind)return Function.prototype.bind.apply(e,[t].concat(n||[]));var o=function(){var i=(n||[]).concat(Array.prototype.slice.call(arguments,0));return this instanceof o?void e.apply(this,i):e.apply(t,i)};return o.prototype=e.prototype,o},t.i=function(){return'function'==typeof Date.now?Date.now():new Date().getTime()},t.f=function(){return(1e15*Math.random()).toString(36).replace('.','')},t.k=function(e){return $.trim(e.replace(/(<([^>]+)>)/ig,''))};var i=n(40),a=n.n(i),s=n(60),r=n.n(s),l='function'!=typeof /./&&'object'!=typeof Int8Array?function(e){return'function'==typeof e||!1}:function(e){return'[object Function]'===toString.call(e)}},function(e,t,n){'use strict';var o=n(0);const a='__all';t.a=a;t.b=class{constructor(){this._mSubscriptions={},this._mSubscriptions[a]=[],this.on=function(e,t,n){if(!Object(o.h)(t))throw new Error('Tried to listen to event '+e+' with non-function callback '+t);this._mSubscriptions[e]||(this._mSubscriptions[e]=[]),this._mSubscriptions[e].push({fn:t,ctx:n})},this.emit=function(e){var t,n,o;o=Array.prototype.slice.call(arguments,1);var i=this._mSubscriptions[e];if(i)for(i=i.slice(),t=0;t<i.length;t++)n=i[t].ctx||{},i[t].fn.apply(n,o);o.unshift(e);var s=this._mSubscriptions[a].slice();for(t=0;t<s.length;t++)n=s[t].ctx||{},s[t].fn.apply(n,o)},this.unbind=function(e,t,n){if(!this._mSubscriptions[e])throw new Error('No subscribtions to unsubscribe for event '+e);var o,i=!1;for(o=0;o<this._mSubscriptions[e].length;o++)t&&this._mSubscriptions[e][o].fn!==t||n&&n!==this._mSubscriptions[e][o].ctx||(this._mSubscriptions[e].splice(o,1),i=!0);if(!1==i)throw new Error('Nothing to unbind for '+e)},this.off=this.unbind,this.trigger=this.emit}}},function(e){var t=e.exports={version:'2.5.6'};'number'==typeof __e&&(__e=t)},function(e,t,n){'use strict';var o=n(1),i=n(26),a=n(12),s=n(27),r=n(66),l=n(0);class c extends o.b{constructor(e,t,n){super(),this.config=this._extendItemNode(t),this.type=t.type,this.contentItems=[],this.parent=n,this.isInitialised=!1,this.isMaximised=!1,this.isRoot=!1,this.isRow=!1,this.isColumn=!1,this.isStack=!1,this.isComponent=!1,this.layoutManager=e,this._pendingEventPropagations={},this._throttledEvents=['stateChanged'],this.on(o.a,this._propagateEvent,this),t.content&&this._createContentItems(t)}setSize(){throw new Error('Abstract Method')}callDownwards(e,t,n,o){var a;for(!0!==n&&!0!==o&&this[e].apply(this,t||[]),a=0;a<this.contentItems.length;a++)this.contentItems[a].callDownwards(e,t,n);!0===n&&!0!==o&&this[e].apply(this,t||[])}removeChild(e,t){var n=Object(l.g)(e,this.contentItems);if(-1===n)throw new Error('Can\'t remove child item. Unknown content item');!0!==t&&this.contentItems[n]._$destroy(),this.contentItems.splice(n,1),this.config.content.splice(n,1),0<this.contentItems.length?this.callDownwards('setSize'):!(this instanceof a.a)&&!0===this.config.isClosable&&this.parent.removeChild(this)}undisplayChild(e){var t=Object(l.g)(e,this.contentItems);if(-1===t)throw new Error('Can\'t remove child item. Unknown content item');this instanceof a.a||!0!==this.config.isClosable||this.parent.undisplayChild(this)}addChild(e,t){t===void 0&&(t=this.contentItems.length),this.contentItems.splice(t,0,e),this.config.content===void 0&&(this.config.content=[]),this.config.content.splice(t,0,e.config),e.parent=this,!0===e.parent.isInitialised&&!1===e.isInitialised&&e._$init()}replaceChild(e,t,n){t=this.layoutManager._$normalizeContentItem(t);var o=Object(l.g)(e,this.contentItems),i=e.element[0].parentNode;if(-1===o)throw new Error('Can\'t replace child. oldChild is not child of this');i.replaceChild(t.element[0],e.element[0]),!0===n&&(e.parent=null,e._$destroy()),this.contentItems[o]=t,t.parent=this,this.isStack&&(this.header.tabs[o].contentItem=t),!0===t.parent.isInitialised&&!1===t.isInitialised&&t._$init(),this.callDownwards('setSize')}remove(){this.parent.removeChild(this)}popout(){var e=this.layoutManager.createPopout(this);return this.emitBubblingEvent('stateChanged'),e}toggleMaximise(t){t&&t.preventDefault(),!0===this.isMaximised?this.layoutManager._$minimiseItem(this):this.layoutManager._$maximiseItem(this),this.isMaximised=!this.isMaximised,this.emitBubblingEvent('stateChanged')}select(){this.layoutManager.selectedItem!==this&&(this.layoutManager.selectItem(this,!0),this.element.addClass('lm_selected'))}deselect(){this.layoutManager.selectedItem===this&&(this.layoutManager.selectedItem=null,this.element.removeClass('lm_selected'))}setTitle(e){this.config.title=e,this.emit('titleChanged',e),this.emit('stateChanged')}hasId(e){if(!this.config.id)return!1;return'string'==typeof this.config.id?this.config.id===e:this.config.id instanceof Array?-1!==Object(l.g)(e,this.config.id):void 0}addId(e){this.hasId(e)||(this.config.id?'string'==typeof this.config.id?this.config.id=[this.config.id,e]:this.config.id instanceof Array&&this.config.id.push(e):this.config.id=e)}removeId(e){if(!this.hasId(e))throw new Error('Id not found');if('string'==typeof this.config.id)delete this.config.id;else if(this.config.id instanceof Array){var t=Object(l.g)(e,this.config.id);this.config.id.splice(t,1)}}getItemsByFilter(e){var t=[],n=function(o){for(var a=0;a<o.contentItems.length;a++)!0===e(o.contentItems[a])&&t.push(o.contentItems[a]),n(o.contentItems[a])};return n(this),t}getItemsById(e){return this.getItemsByFilter(function(t){return t.config.id instanceof Array?-1!==Object(l.g)(e,t.config.id):t.config.id===e})}getItemsByType(e){return this._$getItemsByProperty('type',e)}getComponentsByName(e){var t,n=this._$getItemsByProperty('componentName',e),o=[];for(t=0;t<n.length;t++)o.push(n[t].instance);return o}_$getItemsByProperty(e,t){return this.getItemsByFilter(function(n){return n[e]===t})}_$setParent(e){this.parent=e}_$highlightDropZone(e,t,n){this.layoutManager.dropTargetIndicator.highlightArea(n)}_$onDrop(e){this.addChild(e)}_$hide(){this._callOnActiveComponents('hide'),this.element.hide(),this.layoutManager.updateSize()}_$show(){this._callOnActiveComponents('show'),this.element.show(),this.layoutManager.updateSize()}_callOnActiveComponents(e){var t,n,o=this.getItemsByType('stack');for(n=0;n<o.length;n++)t=o[n].getActiveContentItem(),t&&t.isComponent&&t.container[e]()}_$destroy(){this.emitBubblingEvent('beforeItemDestroyed'),this.callDownwards('_$destroy',[],!0,!0),this.element.remove(),this.emitBubblingEvent('itemDestroyed')}_$getArea(e){e=e||this.element;var t=e.offset(),n=e.width(),o=e.height();return{x1:t.left,y1:t.top,x2:t.left+n,y2:t.top+o,surface:n*o,contentItem:this}}_$init(){var e;for(this.setSize(),e=0;e<this.contentItems.length;e++)this.childElementContainer.append(this.contentItems[e].element);this.isInitialised=!0,this.emitBubblingEvent('itemCreated'),this.emitBubblingEvent(this.type+'Created')}emitBubblingEvent(e){var t=new i.a(e,this);this.emit(e,t)}_createContentItems(e){var t,n;if(!(e.content instanceof Array))throw new s.a('content must be an Array',e);for(n=0;n<e.content.length;n++)t=this.layoutManager.createContentItem(e.content[n],this),this.contentItems.push(t)}_extendItemNode(e){for(var t in r.a)void 0===e[t]&&(e[t]=r.a[t]);return e}_propagateEvent(e,t){t instanceof i.a&&!1===t.isPropagationStopped&&!0===this.isInitialised&&(!1===this.isRoot&&this.parent?this.parent.emit.apply(this.parent,Array.prototype.slice.call(arguments,0)):this._scheduleEventPropagationToLayoutManager(e,t))}_scheduleEventPropagationToLayoutManager(e,t){-1===Object(l.g)(e,this._throttledEvents)?this.layoutManager.emit(e,t.origin):!0!==this._pendingEventPropagations[e]&&(this._pendingEventPropagations[e]=!0,Object(l.a)(Object(l.c)(this._propagateEventToLayoutManager,this,[e,t])))}_propagateEventToLayoutManager(e,t){this._pendingEventPropagations[e]=!1,this.layoutManager.emit(e,t)}}t.a=c},function(e){var t=e.exports='undefined'!=typeof window&&window.Math==Math?window:'undefined'!=typeof self&&self.Math==Math?self:Function('return this')();'number'==typeof __g&&(__g=t)},function(e,t,n){e.exports=!n(10)(function(){return 7!=Object.defineProperty({},'a',{get:function(){return 7}}).a})},function(e,o,i){'use strict';var a=Math.round,s=i(3),r=i(13),l=i(67),c=i(0);class p extends s.a{constructor(e,t,n,o){super(t,n,o),this.isRow=!e,this.isColumn=e,this.element=$('<div class="lm_item lm_'+(e?'column':'row')+'"></div>'),this.childElementContainer=this.element,this._splitterSize=t.config.dimensions.borderWidth,this._splitterGrabSize=t.config.dimensions.borderGrabWidth,this._isColumn=e,this._dimension=e?'height':'width',this._splitter=[],this._splitterPosition=null,this._splitterMinPosition=null,this._splitterMaxPosition=null}addChild(e,t,o){var a,r,l,i;if(e=this.layoutManager._$normalizeContentItem(e,this),void 0===t&&(t=this.contentItems.length),0<this.contentItems.length?(i=this._createSplitter(n(0,t-1)).element,0<t?(this.contentItems[t-1].element.after(i),i.after(e.element),this._isDocked(t-1)&&(this._splitter[t-1].element.hide(),this._splitter[t].element.show())):(this.contentItems[0].element.before(i),i.before(e.element))):this.childElementContainer.append(e.element),s.a.prototype.addChild.call(this,e,t),a=100*(1/this.contentItems.length),!0===o)return void this.emitBubblingEvent('stateChanged');for(l=0;l<this.contentItems.length;l++)this.contentItems[l]===e?e.config[this._dimension]=a:(r=this.contentItems[l].config[this._dimension]*=(100-a)/100,this.contentItems[l].config[this._dimension]=r);this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged'),this._validateDocking()}undisplayChild(e){var t,o=e.config[this._dimension],i=Object(c.g)(e,this.contentItems),a=n(i-1,0);if(-1===i)throw new Error('Can\'t undisplay child. ContentItem is not child of this Row or Column');this._splitter[a]&&this._splitter[a].element.hide(),a<this._splitter.length&&this._isDocked(a)&&this._splitter[a].element.hide();var r=this._isDocked();for(t=0;t<this.contentItems.length;t++)this.contentItems[t]===e?this.contentItems[t].config[this._dimension]=0:this._isDocked(t)||(this.contentItems[t].config[this._dimension]+=o/(this.contentItems.length-1-r));1===this.contentItems.length&&s.a.prototype.undisplayChild.call(this,e),this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged')}removeChild(e,t){var o,i,a=e.config[this._dimension],r=Object(c.g)(e,this.contentItems),l=n(r-1,0);if(-1===r)throw new Error('Can\'t remove child. ContentItem is not child of this Row or Column');this._splitter[l]&&(this._splitter[l]._$destroy(),this._splitter.splice(l,1)),l<this._splitter.length&&this._isDocked(l)&&this._splitter[l].element.hide();var p=this._isDocked();for(o=0;o<this.contentItems.length;o++)this.contentItems[o]!==e&&(this._isDocked(o)||(this.contentItems[o].config[this._dimension]+=a/(this.contentItems.length-1-p)));s.a.prototype.removeChild.call(this,e,t),1===this.contentItems.length&&!0===this.config.isClosable?(i=this.contentItems[0],this.contentItems=[],this.parent.replaceChild(this,i,!0),this._validateDocking(this.parent)):(this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged'),this._validateDocking())}replaceChild(e,t){var n=e.config[this._dimension];s.a.prototype.replaceChild.call(this,e,t),t.config[this._dimension]=n,this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged')}setSize(){0<this.contentItems.length&&(this._calculateRelativeSizes(),this._setAbsoluteSizes()),this.emitBubblingEvent('stateChanged'),this.emit('resize')}dock(e,t,o){if(1===this.contentItems.length)throw new Error('Can\'t dock child when it single');var a=e.config[this._dimension],s=this.layoutManager.config.dimensions.headerHeight,r=Object(c.g)(e,this.contentItems),l=n(r-1,0);if(-1===r)throw new Error('Can\'t dock child. ContentItem is not child of this Row or Column');var p,i=e._docker&&e._docker.docked;if('undefined'==typeof t||t!=i){if(i){for(this._splitter[l].element.show(),p=0;p<this.contentItems.length;p++){var d=e._docker.size;this.contentItems[p]===e?e.config[this._dimension]=d:(itemSize=this.contentItems[p].config[this._dimension]*=(100-d)/100,this.contentItems[p].config[this._dimension]=itemSize)}e._docker={docked:!1}}else{if(2>this.contentItems.length-this._isDocked())throw new Error('Can\'t dock child when it is last in '+this.config.type);var m={column:{first:'top',last:'bottom'},row:{first:'left',last:'right'}}[this.config.type][r?'last':'first'];e.header.position()!=m&&e.header.position(m),this._splitter[l]&&this._splitter[l].element.hide();var _=this._isDocked();for(p=0;p<this.contentItems.length;p++)this.contentItems[p]===e?this.contentItems[p].config[this._dimension]=0:this._isDocked(p)||(this.contentItems[p].config[this._dimension]+=a/(this.contentItems.length-1-_));e._docker={dimension:this._dimension,size:a,realSize:e.element[this._dimension]()-s,docked:!0},o&&e.childElementContainer[this._dimension](0)}e.element.toggleClass('lm_docked',e._docker.docked),this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged'),this._validateDocking()}}_$init(){if(!0!==this.isInitialised){var e;for(s.a.prototype._$init.call(this),e=0;e<this.contentItems.length-1;e++)this.contentItems[e].element.after(this._createSplitter(e).element);for(e=0;e<this.contentItems.length;e++)this.contentItems[e]._header&&this.contentItems[e]._header.docked&&this.dock(this.contentItems[e],!0,!0)}}_setAbsoluteSizes(){var e,t=this._calculateAbsoluteSizes();for(e=0;e<this.contentItems.length;e++)0<t.additionalPixel-e&&t.itemSizes[e]++,this._isColumn?(this.contentItems[e].element.width(t.totalWidth),this.contentItems[e].element.height(t.itemSizes[e])):(this.contentItems[e].element.width(t.itemSizes[e]),this.contentItems[e].element.height(t.totalHeight))}_calculateAbsoluteSizes(){var e,n,o,i=(this.contentItems.length-1)*this._splitterSize,a=this.layoutManager.config.dimensions.headerHeight,s=this.element.width(),r=this.element.height(),l=0,c=[];for(this._isColumn?r-=i:s-=i,e=0;e<this.contentItems.length;e++)this._isDocked(e)&&(this._isColumn?r-=a-this._splitterSize:s-=a-this._splitterSize);for(e=0;e<this.contentItems.length;e++)o=this._isColumn?t(r*(this.contentItems[e].config.height/100)):t(s*(this.contentItems[e].config.width/100)),this._isDocked(e)&&(o=a),l+=o,c.push(o);return n=t((this._isColumn?r:s)-l),{itemSizes:c,additionalPixel:n,totalWidth:s,totalHeight:r}}_calculateRelativeSizes(){var e,t=0,n=[],o=this._isColumn?'height':'width';for(e=0;e<this.contentItems.length;e++)void 0===this.contentItems[e].config[o]?n.push(this.contentItems[e]):t+=this.contentItems[e].config[o];if(100===a(t))return void this._respectMinItemWidth();if(100>a(t)&&0<n.length){for(e=0;e<n.length;e++)n[e].config[o]=(100-t)/n.length;return void this._respectMinItemWidth()}if(100<a(t))for(e=0;e<n.length;e++)n[e].config[o]=50,t+=50;for(e=0;e<this.contentItems.length;e++)this.contentItems[e].config[o]=100*(this.contentItems[e].config[o]/t);this._respectMinItemWidth()}_respectMinItemWidth(){var e,t,n,o=this.layoutManager.config.dimensions?this.layoutManager.config.dimensions.minItemWidth||0:0,s=null,r=[],l=0,c=0,p=0,d=0,m=null,_=[];if(!(this._isColumn||!o||1>=this.contentItems.length)){s=this._calculateAbsoluteSizes();for(var g=0;g<this.contentItems.length;g++)m=this.contentItems[g],d=s.itemSizes[g],d<o?(c+=o-d,n={width:o}):(l+=d-o,n={width:d},r.push(n)),_.push(n);if(!(0==c||c>l)){for(e=c/l,p=c,g=0;g<r.length;g++)n=r[g],t=a((n.width-o)*e),p-=t,n.width-=t;for(0!==p&&(_[_.length-1].width-=p),g=0;g<this.contentItems.length;g++)this.contentItems[g].config.width=100*(_[g].width/s.totalWidth)}}}_createSplitter(e){var t;return t=new l.a(this._isColumn,this._splitterSize,this._splitterGrabSize),t.on('drag',Object(c.c)(this._onSplitterDrag,this,[t]),this),t.on('dragStop',Object(c.c)(this._onSplitterDragStop,this,[t]),this),t.on('dragStart',Object(c.c)(this._onSplitterDragStart,this,[t]),this),this._splitter.splice(e,0,t),t}_getItemsForSplitter(e){var t=Object(c.g)(e,this._splitter);return{before:this.contentItems[t],after:this.contentItems[t+1]}}_isDocked(e){if('undefined'==typeof e){for(var t=0,n=0;n<this.contentItems.length;++n)this._isDocked(n)&&t++;return t}return e<this.contentItems.length?this.contentItems[e]._docker&&this.contentItems[e]._docker.docked:void 0}_validateDocking(e){e=e||this;for(var t=1<e.contentItems.length-e._isDocked(),n=0;n<e.contentItems.length;++n)e.contentItems[n]instanceof r.a&&(e.contentItems[n].header._setDockable(e._isDocked(n)||t),e.contentItems[n].header._$setClosable(t))}_getMinimumDimensions(e){for(var t=0,o=0,a=0;a<e.length;++a)t=n(e[a].minWidth||0,t),o=n(e[a].minHeight||0,o);return{horizontal:t,vertical:o}}_onSplitterDragStart(e){var t=this._getItemsForSplitter(e),n=this.layoutManager.config.dimensions[this._isColumn?'minItemHeight':'minItemWidth'],o=this._getMinimumDimensions(t.before.config.content),i=this._isColumn?o.vertical:o.horizontal,a=this._getMinimumDimensions(t.after.config.content),s=this._isColumn?a.vertical:a.horizontal;this._splitterPosition=0,this._splitterMinPosition=-1*(t.before.element[this._dimension]()-(i||n)),this._splitterMaxPosition=t.after.element[this._dimension]()-(s||n)}_onSplitterDrag(e,t,n){var o=this._isColumn?n:t;o>this._splitterMinPosition&&o<this._splitterMaxPosition&&(this._splitterPosition=o,e.element.css(this._isColumn?'top':'left',o))}_onSplitterDragStop(e){var t=this._getItemsForSplitter(e),n=t.before.element[this._dimension](),o=t.after.element[this._dimension](),i=(this._splitterPosition+n)/(n+o),a=t.before.config[this._dimension]+t.after.config[this._dimension];t.before.config[this._dimension]=i*a,t.after.config[this._dimension]=(1-i)*a,e.element.css({top:0,left:0}),Object(c.a)(Object(c.c)(this.callDownwards,this,['setSize']))}}o.a=p},function(e,t,n){'use strict';var o=n(1),i=n(0);class a extends o.b{constructor(e,t){super(),this._timeout=null,this._eElement=$(e),this._oDocument=$(document),this._eBody=$(document.body),this._nButtonCode=t||0,this._nDelay=200,this._nDistance=10,this._nX=0,this._nY=0,this._nOriginalX=0,this._nOriginalY=0,this._bDragging=!1,this._fMove=Object(i.c)(this.onMouseMove,this),this._fUp=Object(i.c)(this.onMouseUp,this),this._fDown=Object(i.c)(this.onMouseDown,this),this._eElement.on('mousedown touchstart',this._fDown)}destroy(){this._eElement.unbind('mousedown touchstart',this._fDown),this._oDocument.unbind('mouseup touchend',this._fUp),this._eElement=null,this._oDocument=null,this._eBody=null}onMouseDown(e){if(e.preventDefault(),0==e.button||'touchstart'===e.type){var t=this._getCoordinates(e);this._nOriginalX=t.x,this._nOriginalY=t.y,this._oDocument.on('mousemove touchmove',this._fMove),this._oDocument.one('mouseup touchend',this._fUp),this._timeout=setTimeout(Object(i.c)(this._startDrag,this),this._nDelay)}}onMouseMove(e){var t=Math.abs;if(null!=this._timeout){e.preventDefault();var n=this._getCoordinates(e);this._nX=n.x-this._nOriginalX,this._nY=n.y-this._nOriginalY,!1===this._bDragging&&(t(this._nX)>this._nDistance||t(this._nY)>this._nDistance)&&(clearTimeout(this._timeout),this._startDrag()),this._bDragging&&this.emit('drag',this._nX,this._nY,e)}}onMouseUp(e){null!=this._timeout&&(clearTimeout(this._timeout),this._eBody.removeClass('lm_dragging'),this._eElement.removeClass('lm_dragging'),this._oDocument.find('iframe').css('pointer-events',''),this._oDocument.unbind('mousemove touchmove',this._fMove),this._oDocument.unbind('mouseup touchend',this._fUp),!0===this._bDragging&&(this._bDragging=!1,this.emit('dragStop',e,this._nOriginalX+this._nX)))}_startDrag(){this._bDragging=!0,this._eBody.addClass('lm_dragging'),this._eElement.addClass('lm_dragging'),this._oDocument.find('iframe').css('pointer-events','none'),this.emit('dragStart',this._nOriginalX,this._nOriginalY)}_getCoordinates(e){return e=Object(i.e)(e),{x:e.pageX,y:e.pageY}}}t.a=a},function(e,t,n){var o=n(9);e.exports=function(e){if(!o(e))throw TypeError(e+' is not an object!');return e}},function(e){e.exports=function(e){return'object'==typeof e?null!==e:'function'==typeof e}},function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){'use strict';var o=n(0);t.a=class{constructor(){if(this._keys=['settings','hasHeaders','constrainDragToContainer','selectionEnabled','dimensions','borderWidth','minItemHeight','minItemWidth','headerHeight','dragProxyWidth','dragProxyHeight','labels','close','maximise','minimise','popout','content','componentName','componentState','id','width','type','height','isClosable','title','popoutWholeStack','openPopouts','parentId','activeItemIndex','reorderEnabled','borderGrabWidth'],36<this._keys.length)throw new Error('Too many keys in config minifier map');this._values=[!0,!1,'row','column','stack','component','close','maximise','minimise','open in new window']}minifyConfig(e){var t={};return this._nextLevel(e,t,'_min'),t}unminifyConfig(e){var t={};return this._nextLevel(e,t,'_max'),t}_nextLevel(e,t,n){var o,i;for(o in e)e instanceof Array&&(o=parseInt(o,10)),e.hasOwnProperty(o)&&(i=this[n](o,this._keys),'object'==typeof e[o]?(t[i]=e[o]instanceof Array?[]:{},this._nextLevel(e[o],t[i],n)):t[i]=this[n](e[o],this._values))}_min(e,t){if('string'==typeof e&&1===e.length)return'___'+e;var n=Object(o.g)(e,t);return-1===n?e:n.toString(36)}_max(e,t){return'string'==typeof e&&1===e.length?t[parseInt(e,36)]:'string'==typeof e&&'___'===e.substr(0,3)?e[3]:e}}},function(e,t,n){'use strict';var o=n(3),i=n(6);class a extends o.a{constructor(e,t,n){super(e,t,null),this.isRoot=!0,this.type='root',this.element=$('<div class="lm_goldenlayout lm_item lm_root"></div>'),this.childElementContainer=this.element,this._containerElement=n,this._containerElement.append(this.element)}addChild(e){if(0<this.contentItems.length)throw new Error('Root node can only have a single child');e=this.layoutManager._$normalizeContentItem(e,this),this.childElementContainer.append(e.element),o.a.prototype.addChild.call(this,e),this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged')}setSize(e,t){e='undefined'==typeof e?this._containerElement.width():e,t='undefined'==typeof t?this._containerElement.height():t,this.element.width(e),this.element.height(t),this.contentItems[0]&&(this.contentItems[0].element.width(e),this.contentItems[0].element.height(t))}_$highlightDropZone(){this.layoutManager.tabDropPlaceholder.remove(),o.a.prototype._$highlightDropZone.apply(this,arguments)}_$onDrop(e,t){var n;if(e.isComponent&&(n=this.layoutManager.createContentItem({type:'stack',header:e.config.header||{}},this),n._$init(),n.addChild(e),e=n),!this.contentItems.length)this.addChild(e);else{('row'===e.config.type||'column'===e.config.type)&&(n=this.layoutManager.createContentItem({type:'stack'},this),n.addChild(e),e=n);var o='x'==t.side[0]?'row':'column',a='x'==t.side[0]?'width':'height',s='2'==t.side[1],r=this.contentItems[0];if(!(r instanceof i.a)||r.type!=o){var l=this.layoutManager.createContentItem({type:o},this);this.replaceChild(r,l),l.addChild(e,s?0:void 0,!0),l.addChild(r,s?void 0:0,!0),r.config[a]=50,e.config[a]=50,l.callDownwards('setSize')}else{var c=r.contentItems[s?0:r.contentItems.length-1];r.addChild(e,s?0:void 0,!0),c.config[a]*=0.5,e.config[a]=c.config[a],r.callDownwards('setSize')}}}}t.a=a},function(t,o,i){'use strict';var a=i(3),s=i(6),r=i(28),l=i(0);class c extends a.a{constructor(e,t,n){super(e,t,n),this.element=$('<div class="lm_item lm_stack"></div>'),this._activeContentItem=null;var o=e.config;this._header={show:!0===o.settings.hasHeaders&&!1!==t.hasHeaders,popout:o.settings.showPopoutIcon&&o.labels.popout,maximise:o.settings.showMaximiseIcon&&o.labels.maximise,close:o.settings.showCloseIcon&&o.labels.close,minimise:o.labels.minimise},o.header&&Object(l.b)(this._header,o.header),t.header&&Object(l.b)(this._header,t.header),t.content&&t.content[0]&&t.content[0].header&&Object(l.b)(this._header,t.content[0].header),this._dropZones={},this._dropSegment=null,this._contentAreaDimensions=null,this._dropIndex=null,this.isStack=!0,this.childElementContainer=$('<div class="lm_items"></div>'),this.header=new r.a(e,this),this.element.on('mouseleave mouseenter',Object(l.c)(function(e){this._docker&&this._docker.docked&&this.childElementContainer[this._docker.dimension]('mouseenter'==e.type?this._docker.realSize:0)},this)),this.element.append(this.header.element),this.element.append(this.childElementContainer),this._setupHeaderPosition(),this._$validateClosability()}dock(e){this._header.dock&&this.parent instanceof s.a&&this.parent.dock(this,e)}setSize(){if('none'!==this.element.css('display')){var e=this._docker&&this._docker.docked,t={width:this.element.width(),height:this.element.height()};this._header.show&&(t[this._sided?'width':'height']-=this.layoutManager.config.dimensions.headerHeight),e&&(t[this._docker.dimension]=this._docker.realSize),e&&'height'!=this._docker.dimension||this.childElementContainer.width(t.width),e&&'width'!=this._docker.dimension||this.childElementContainer.height(t.height);for(var n=0;n<this.contentItems.length;n++)this.contentItems[n].element.width(t.width),this.contentItems[n].element.height(t.height);this.emit('resize'),this.emitBubblingEvent('stateChanged')}}_$init(){var e,t;if(!0!==this.isInitialised){for(a.a.prototype._$init.call(this),e=0;e<this.contentItems.length;e++)this.header.createTab(this.contentItems[e]),this.contentItems[e]._$hide();if(0<this.contentItems.length){if(t=this.contentItems[this.config.activeItemIndex||0],!t)throw new Error('Configured activeItemIndex out of bounds');this.setActiveContentItem(t)}}}setActiveContentItem(e){if(-1===Object(l.g)(e,this.contentItems))throw new Error('contentItem is not a child of this stack');null!==this._activeContentItem&&this._activeContentItem._$hide(),this._activeContentItem=e,this.header.setActiveContentItem(e),e._$show(),this.emit('activeContentItemChanged',e),this.layoutManager.emit('activeContentItemChanged',e),this.emitBubblingEvent('stateChanged')}getActiveContentItem(){return this.header.activeContentItem}addChild(e,t){t>this.contentItems.length&&(t-=1),e=this.layoutManager._$normalizeContentItem(e,this),a.a.prototype.addChild.call(this,e,t),this.childElementContainer.append(e.element),this.header.createTab(e,t),this.setActiveContentItem(e),this.callDownwards('setSize'),this._$validateClosability(),this.parent instanceof s.a&&this.parent._validateDocking(),this.emitBubblingEvent('stateChanged')}removeChild(e,t){var o=Object(l.g)(e,this.contentItems);a.a.prototype.removeChild.call(this,e,t),this.header.removeTab(e),this.header.activeContentItem===e&&(0<this.contentItems.length?this.setActiveContentItem(this.contentItems[n(o-1,0)]):this._activeContentItem=null),this._$validateClosability(),this.parent instanceof s.a&&this.parent._validateDocking(),this.emitBubblingEvent('stateChanged')}undisplayChild(e){if(1<this.contentItems.length){var t=Object(l.g)(e,this.contentItems);e._$hide&&e._$hide(),this.setActiveContentItem(this.contentItems[0===t?t+1:t-1])}else this.header.hideTab(e),e._$hide&&e._$hide(),a.a.prototype.undisplayChild.call(this,e),this.parent instanceof s.a&&this.parent._validateDocking();this.emitBubblingEvent('stateChanged')}_$validateClosability(){var e,t,n;for(e=this.header._isClosable(),n=0,t=this.contentItems.length;n<t&&!!e;n++)e=this.contentItems[n].config.isClosable;this.header._$setClosable(e)}_$destroy(){a.a.prototype._$destroy.call(this),this.header._$destroy(),this.element.off('mouseenter mouseleave')}_$onDrop(e){if('header'===this._dropSegment)return this._resetHeaderDropZone(),void this.addChild(e,this._dropIndex);if('body'===this._dropSegment)return void this.addChild(e);var t,n,o,i='top'===this._dropSegment||'bottom'===this._dropSegment,a='left'===this._dropSegment||'right'===this._dropSegment,s='top'===this._dropSegment||'left'===this._dropSegment,r=i&&this.parent.isColumn||a&&this.parent.isRow,c=i?'column':'row',p=i?'height':'width';e.isComponent&&(n=this.layoutManager.createContentItem({type:'stack',header:e.config.header||{}},this),n._$init(),n.addChild(e),e=n),('row'===e.config.type||'column'===e.config.type)&&(n=this.layoutManager.createContentItem({type:'stack'},this),n.addChild(e),e=n),r?(t=Object(l.g)(this,this.parent.contentItems),this.parent.addChild(e,s?t:t+1,!0),this.config[p]*=0.5,e.config[p]=this.config[p],this.parent.callDownwards('setSize')):(c=i?'column':'row',o=this.layoutManager.createContentItem({type:c},this),this.parent.replaceChild(this,o),o.addChild(e,s?0:void 0,!0),o.addChild(this,s?void 0:0,!0),this.config[p]=50,e.config[p]=50,o.callDownwards('setSize')),this.parent._validateDocking()}_$highlightDropZone(e,t){var n,o;for(n in this._contentAreaDimensions)if(o=this._contentAreaDimensions[n].hoverArea,o.x1<e&&o.x2>e&&o.y1<t&&o.y2>t)return void('header'===n?(this._dropSegment='header',this._highlightHeaderDropZone(this._sided?t:e)):(this._resetHeaderDropZone(),this._highlightBodyDropZone(n)))}_$getArea(){if('none'===this.element.css('display'))return null;var e=a.a.prototype._$getArea,t=e.call(this,this.header.element),n=e.call(this,this.childElementContainer),o=n.x2-n.x1,i=n.y2-n.y1;return(this._contentAreaDimensions={header:{hoverArea:{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2},highlightArea:{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}}},this._activeContentItem&&!1===this._activeContentItem.isComponent)?t:0===this.contentItems.length?(this._contentAreaDimensions.body={hoverArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2}},e.call(this,this.element)):(this._contentAreaDimensions.left={hoverArea:{x1:n.x1,y1:n.y1,x2:n.x1+0.25*o,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x1+0.5*o,y2:n.y2}},this._contentAreaDimensions.top={hoverArea:{x1:n.x1+0.25*o,y1:n.y1,x2:n.x1+0.75*o,y2:n.y1+0.5*i},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y1+0.5*i}},this._contentAreaDimensions.right={hoverArea:{x1:n.x1+0.75*o,y1:n.y1,x2:n.x2,y2:n.y2},highlightArea:{x1:n.x1+0.5*o,y1:n.y1,x2:n.x2,y2:n.y2}},this._contentAreaDimensions.bottom={hoverArea:{x1:n.x1+0.25*o,y1:n.y1+0.5*i,x2:n.x1+0.75*o,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1+0.5*i,x2:n.x2,y2:n.y2}},e.call(this,this.element))}_highlightHeaderDropZone(t){var n,o,i,a,s,r,l,c,p,d=this.header.tabs.length,m=!1;if(0===d)return l=this.header.element.offset(),void this.layoutManager.dropTargetIndicator.highlightArea({x1:l.left,x2:l.left+100,y1:l.top+this.header.element.height()-20,y2:l.top+this.header.element.height()});for(n=0;n<d;n++)if(o=this.header.tabs[n].element,s=o.offset(),this._sided?(a=s.top,i=s.left,c=o.height()):(a=s.left,i=s.top,c=o.width()),t>a&&t<a+c){m=!0;break}if(!(!1==m&&t<a)){if(p=a+c/2,t<p?(this._dropIndex=n,o.before(this.layoutManager.tabDropPlaceholder)):(this._dropIndex=e(n+1,d),o.after(this.layoutManager.tabDropPlaceholder)),this._sided){var _=this.layoutManager.tabDropPlaceholder.offset().top;return void this.layoutManager.dropTargetIndicator.highlightArea({x1:i,x2:i+o.innerHeight(),y1:_,y2:_+this.layoutManager.tabDropPlaceholder.width()})}r=this.layoutManager.tabDropPlaceholder.offset().left,this.layoutManager.dropTargetIndicator.highlightArea({x1:r,x2:r+this.layoutManager.tabDropPlaceholder.width(),y1:i,y2:i+o.innerHeight()})}}_resetHeaderDropZone(){this.layoutManager.tabDropPlaceholder.remove()}toggleMaximise(t){this.isMaximised||this.dock(!1),a.a.prototype.toggleMaximise.call(this,t)}_setupHeaderPosition(){var e=0<=['right','left','bottom'].indexOf(this._header.show)&&this._header.show;if(this.header.element.toggle(!!this._header.show),this._side=e,this._sided=0<=['right','left'].indexOf(this._side),this.element.removeClass('lm_left lm_right lm_bottom'),this._side&&this.element.addClass('lm_'+this._side),this.element.find('.lm_header').length&&this.childElementContainer){var t=0<=['right','bottom'].indexOf(this._side)?'before':'after';this.header.element[t](this.childElementContainer),this.callDownwards('setSize')}}_highlightBodyDropZone(e){var t=this._contentAreaDimensions[e].highlightArea;this.layoutManager.dropTargetIndicator.highlightArea(t),this._dropSegment=e}}o.a=c},function(e){e.exports=function(e){if(e==void 0)throw TypeError('Can\'t call method on '+e);return e}},function(e,t,n){var o=n(44),i=n(20);e.exports=Object.keys||function(e){return o(e,i)}},function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},function(e,t,n){var o=n(45),i=n(14);e.exports=function(e){return o(i(e))}},function(e){var n=Math.ceil;e.exports=function(e){return isNaN(e=+e)?0:(0<e?t:n)(e)}},function(e,t,n){var o=n(50)('keys'),i=n(52);e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e){e.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf']},function(e,t,n){var o=n(4),i=n(2),a=n(54),s=n(56),r=n(16),l='prototype',c=function(e,t,n){var p,d,m,_=e&c.F,g=e&c.G,u=e&c.S,f=e&c.P,h=e&c.B,y=e&c.W,v=g?i:i[t]||(i[t]={}),b=v[l],k=g?o:u?o[t]:(o[t]||{})[l];for(p in g&&(n=t),n)d=!_&&k&&void 0!==k[p],d&&r(v,p)||(m=d?k[p]:n[p],v[p]=g&&'function'!=typeof k[p]?n[p]:h&&d?a(m,o):y&&k[p]==m?function(e){var t=function(t,n,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n);}return new e(t,n,o)}return e.apply(this,arguments)};return t[l]=e[l],t}(m):f&&'function'==typeof m?a(Function.call,m):m,f&&((v.virtual||(v.virtual={}))[p]=m,e&c.R&&b&&!b[p]&&s(b,p,m)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var o=n(8),i=n(57),a=n(58),s=Object.defineProperty;t.f=n(5)?Object.defineProperty:function(e,t,n){if(o(e),t=a(t,!0),o(n),i)try{return s(e,t,n)}catch(t){}if('get'in n||'set'in n)throw TypeError('Accessors not supported!');return'value'in n&&(e[t]=n.value),e}},function(e,t,n){var o=n(9),i=n(4).document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t){'use strict';t.a=class{constructor(e,t){this._reactComponent=null,this._originalComponentWillUpdate=null,this._container=e,this._initialState=t,this._reactClass=this._getReactClass(),this._container.on('open',this._render,this),this._container.on('destroy',this._destroy,this)}_render(){this._reactComponent=ReactDOM.render(this._getReactComponent(),this._container.getElement()[0]),this._originalComponentWillUpdate=this._reactComponent.componentWillUpdate||function(){},this._reactComponent.componentWillUpdate=this._onUpdate.bind(this),this._container.getState()&&this._reactComponent.setState(this._container.getState())}_destroy(){ReactDOM.unmountComponentAtNode(this._container.getElement()[0]),this._container.off('open',this._render,this),this._container.off('destroy',this._destroy,this)}_onUpdate(e,t){this._container.setState(t),this._originalComponentWillUpdate.call(this._reactComponent,e,t)}_getReactClass(){var e,t=this._container._config.component;if(!t)throw new Error('No react component name. type: react-component needs a field `component`');if(e=this._container.layoutManager.getComponent(t),!e)throw new Error('React component "'+t+'" not found. Please register all components with GoldenLayout using `registerComponent(name, component)`');return e}_getReactComponent(){var e={glEventHub:this._container.layoutManager.eventHub,glContainer:this._container},t=$.extend(e,this._container._config.props);return React.createElement(this._reactClass,t)}}},function(e,t,n){'use strict';var o=n(1),i=n(0);class a extends o.b{constructor(e){super(),this._layoutManager=e,this._dontPropagateToParent=null,this._childEventSource=null,this.on(o.a,Object(i.c)(this._onEventFromThis,this)),this._boundOnEventFromChild=Object(i.c)(this._onEventFromChild,this),$(window).on('gl_child_event',this._boundOnEventFromChild)}_onEventFromThis(){var e=Array.prototype.slice.call(arguments);this._layoutManager.isSubWindow&&e[0]!==this._dontPropagateToParent&&this._propagateToParent(e),this._propagateToChildren(e),this._dontPropagateToParent=null,this._childEventSource=null}_$onEventFromParent(e){this._dontPropagateToParent=e[0],this.emit.apply(this,e)}_onEventFromChild(e){this._childEventSource=e.originalEvent.__gl,this.emit.apply(this,e.originalEvent.__glArgs)}_propagateToParent(e){var t,n='gl_child_event';document.createEvent?(t=window.opener.document.createEvent('HTMLEvents'),t.initEvent(n,!0,!0)):(t=window.opener.document.createEventObject(),t.eventType=n),t.eventName=n,t.__glArgs=e,t.__gl=this._layoutManager,document.createEvent?window.opener.dispatchEvent(t):window.opener.fireEvent('on'+t.eventType,t)}_propagateToChildren(e){var t,n;for(n=0;n<this._layoutManager.openPopouts.length;n++)t=this._layoutManager.openPopouts[n].getGlInstance(),t&&t!==this._childEventSource&&t.eventHub._$onEventFromParent(e)}destroy(){$(window).off('gl_child_event',this._boundOnEventFromChild)}}t.a=a},function(e,t){'use strict';t.a=class{constructor(e,t){this.name=e,this.origin=t,this.isPropagationStopped=!1}stopPropagation(){this.isPropagationStopped=!0}}},function(e,t){'use strict';class n extends Error{constructor(e,t){super(),this.name='Configuration Error',this.message=e,this.node=t}}t.a=n},function(e,t,n){'use strict';var o=n(1),a=n(29),i=n(31),s=n(0);class r extends o.b{constructor(e,t){super(),this.layoutManager=e,this.element=$('<div class="lm_header"><ul class="lm_tabs"></ul><ul class="lm_controls"></ul><ul class="lm_tabdropdown_list"></ul></div>'),!0===this.layoutManager.config.settings.selectionEnabled&&(this.element.addClass('lm_selectable'),this.element.on('click touchstart',Object(s.c)(this._onHeaderClick,this))),this.tabsContainer=this.element.find('.lm_tabs'),this.tabDropdownContainer=this.element.find('.lm_tabdropdown_list'),this.tabDropdownContainer.hide(),this.controlsContainer=this.element.find('.lm_controls'),this.parent=t,this.parent.on('resize',this._updateTabSizes,this),this.tabs=[],this.tabsMarkedForRemoval=[],this.activeContentItem=null,this.closeButton=null,this.dockButton=null,this.tabDropdownButton=null,this.hideAdditionalTabsDropdown=Object(s.c)(this._hideAdditionalTabsDropdown,this),$(document).mouseup(this.hideAdditionalTabsDropdown),this._lastVisibleTabIndex=-1,this._tabControlOffset=this.layoutManager.config.settings.tabControlOffset,this._createControls()}createTab(e,t){var n,o;for(o=0;o<this.tabs.length;o++)if(this.tabs[o].contentItem===e)return;return n=new a.a(this,e),0===this.tabs.length?(this.tabs.push(n),void this.tabsContainer.append(n.element)):void(void 0===t&&(t=this.tabs.length),0<t?this.tabs[t-1].element.after(n.element):this.tabs[0].element.before(n.element),this.tabs.splice(t,0,n),this._updateTabSizes())}removeTab(e){for(var t=0;t<this.tabs.length;t++)if(this.tabs[t].contentItem===e)return this.tabs[t]._$destroy(),void this.tabs.splice(t,1);for(t=0;t<this.tabsMarkedForRemoval.length;t++)if(this.tabsMarkedForRemoval[t].contentItem===e)return this.tabsMarkedForRemoval[t]._$destroy(),void this.tabsMarkedForRemoval.splice(t,1);throw new Error('contentItem is not controlled by this header')}hideTab(e){for(var t=0;t<this.tabs.length;t++)if(this.tabs[t].contentItem===e)return this.tabs[t].element.hide(),this.tabsMarkedForRemoval.push(this.tabs[t]),void this.tabs.splice(t,1);throw new Error('contentItem is not controlled by this header')}setActiveContentItem(e){var t,n,o,i;for(t=0;t<this.tabs.length;t++)o=this.tabs[t].contentItem===e,this.tabs[t].setActive(o),!0===o&&(this.activeContentItem=e,this.parent.config.activeItemIndex=t);if(this.layoutManager.config.settings.reorderOnTabMenuClick&&-1!==this._lastVisibleTabIndex&&this.parent.config.activeItemIndex>this._lastVisibleTabIndex){for(i=this.tabs[this.parent.config.activeItemIndex],n=this.parent.config.activeItemIndex;0<n;n--)this.tabs[n]=this.tabs[n-1];this.tabs[0]=i,this.parent.config.activeItemIndex=0}this._updateTabSizes(),this.parent.emitBubblingEvent('stateChanged')}position(e){var t=this.parent._header.show;if(this.parent._docker&&this.parent._docker.docked)throw new Error('Can\'t change header position in docked stack');return t&&!this.parent._side&&(t='top'),void 0!==e&&this.parent._header.show!=e&&(this.parent._header.show=e,this.parent._setupHeaderPosition()),t}_$setClosable(e){return this._canDestroy=e||1<this.tabs.length,this.closeButton&&this._isClosable()&&(this.closeButton.element[e?'show':'hide'](),!0)}_setDockable(e){return this.dockButton&&this.parent._header&&this.parent._header.dock&&(this.dockButton.element.toggle(!!e),!0)}_$destroy(){this.emit('destroy',this);for(var e=0;e<this.tabs.length;e++)this.tabs[e]._$destroy();$(document).off('mouseup',this.hideAdditionalTabsDropdown),this.element.remove()}_getHeaderSetting(e){if(e in this.parent._header)return this.parent._header[e]}_createControls(){var e,t,n,o,a,r,l,c,p;if(p=Object(s.c)(this._showAdditionalTabsDropdown,this),c=this.layoutManager.config.labels.tabDropdown,this.tabDropdownButton=new i.a(this,c,'lm_tabdropdown',p),this.tabDropdownButton.element.hide(),this.parent._header&&this.parent._header.dock){var d=Object(s.c)(this.parent.dock,this.parent);n=this._getHeaderSetting('dock'),this.dockButton=new i.a(this,n,'lm_dock',d)}this._getHeaderSetting('popout')&&(t=Object(s.c)(this._onPopoutClick,this),n=this._getHeaderSetting('popout'),new i.a(this,n,'lm_popout',t)),this._getHeaderSetting('maximise')&&(r=Object(s.c)(this.parent.toggleMaximise,this.parent),o=this._getHeaderSetting('maximise'),a=this._getHeaderSetting('minimise'),l=new i.a(this,o,'lm_maximise',r),this.parent.on('maximised',function(){l.element.attr('title',a)}),this.parent.on('minimised',function(){l.element.attr('title',o)})),this._isClosable()&&(e=Object(s.c)(this.parent.remove,this.parent),n=this._getHeaderSetting('close'),this.closeButton=new i.a(this,n,'lm_close',e))}_showAdditionalTabsDropdown(){this.tabDropdownContainer.show()}_hideAdditionalTabsDropdown(){this.tabDropdownContainer.hide()}_isClosable(){return this.parent.config.isClosable&&this.layoutManager.config.settings.showCloseIcon}_onPopoutClick(){!0===this.layoutManager.config.settings.popoutWholeStack?this.parent.popout():this.activeContentItem.popout()}_onHeaderClick(e){e.target===this.element[0]&&this.parent.select()}_updateTabSizes(e){if(0!==this.tabs.length){this.tabDropdownButton.element.toggle(!0===e);var t=function(e){return e?'width':'height'};this.element.css(t(!this.parent._sided),''),this.element[t(this.parent._sided)](this.layoutManager.config.dimensions.headerHeight);var n,o,i,a,s,r=this.element.outerWidth()-this.controlsContainer.outerWidth()-this._tabControlOffset,l=0,c=0,p=0,d=this.layoutManager.config.settings.tabOverlapAllowance,m=!1,_=this.activeContentItem?this.tabs.indexOf(this.activeContentItem.tab):0,g=this.tabs[_];for(this.parent._sided&&(r=this.element.outerHeight()-this.controlsContainer.outerHeight()-this._tabControlOffset),this._lastVisibleTabIndex=-1,o=0;o<this.tabs.length;o++)if(n=this.tabs[o].element,this.tabsContainer.append(n),s=n.outerWidth()+parseInt(n.css('margin-right'),10),l+=s,c=_<=o?l:l+g.element.outerWidth()+parseInt(g.element.css('margin-right'),10),c>r){if(!!m)o===_&&(n.css({"z-index":'auto',"margin-left":''}),this.tabsContainer.append(n));else if(p=0<_&&_<=o?(c-r)/(o-1):(c-r)/o,p<d){for(i=0;i<=o;i++)a=i!==_&&0!==i?'-'+p+'px':'',this.tabs[i].element.css({"z-index":o-i,"margin-left":a});this._lastVisibleTabIndex=o,this.tabsContainer.append(n)}else m=!0;if(m&&o!==_)if(e)n.css({"z-index":'auto',"margin-left":''}),this.tabDropdownContainer.append(n);else return void this._updateTabSizes(!0)}else this._lastVisibleTabIndex=o,n.css({"z-index":'auto',"margin-left":''}),this.tabsContainer.append(n)}}}t.a=r},function(e,t,n){'use strict';var o=n(7),i=n(30),a=n(0);t.a=class{constructor(e,t){this.header=e,this.contentItem=t,this.element=$('<li class="lm_tab"><i class="lm_left"></i><span class="lm_title"></span><div class="lm_close_tab"></div><i class="lm_right"></i></li>'),this.titleElement=this.element.find('.lm_title'),this.closeElement=this.element.find('.lm_close_tab'),this.closeElement[t.config.isClosable?'show':'hide'](),this.isActive=!1,this.setTitle(t.config.title),this.contentItem.on('titleChanged',this.setTitle,this),this._layoutManager=this.contentItem.layoutManager,!0===this._layoutManager.config.settings.reorderEnabled&&!0===t.config.reorderEnabled&&(this._dragListener=new o.a(this.element),this._dragListener.on('dragStart',this._onDragStart,this),this.contentItem.on('destroy',this._dragListener.destroy,this._dragListener)),this._onTabClickFn=Object(a.c)(this._onTabClick,this),this._onCloseClickFn=Object(a.c)(this._onCloseClick,this),this.element.on('mousedown touchstart',this._onTabClickFn),this.contentItem.config.isClosable?(this.closeElement.on('click touchstart',this._onCloseClickFn),this.closeElement.on('mousedown',this._onCloseMousedown)):this.closeElement.remove(),this.contentItem.tab=this,this.contentItem.emit('tab',this),this.contentItem.layoutManager.emit('tabCreated',this),this.contentItem.isComponent&&(this.contentItem.container.tab=this,this.contentItem.container.emit('tab',this))}setTitle(e){this.element.attr('title',Object(a.k)(e)),this.titleElement.html(e)}setActive(e){e===this.isActive||(this.isActive=e,e?this.element.addClass('lm_active'):this.element.removeClass('lm_active'))}_$destroy(){this.element.off('mousedown touchstart',this._onTabClickFn),this.closeElement.off('click touchstart',this._onCloseClickFn),this._dragListener&&(this.contentItem.off('destroy',this._dragListener.destroy,this._dragListener),this._dragListener.off('dragStart',this._onDragStart),this._dragListener=null),this.element.remove()}_onDragStart(e,t){return this.header._canDestroy?void(!0===this.contentItem.parent.isMaximised&&this.contentItem.parent.toggleMaximise(),new i.a(e,t,this._dragListener,this._layoutManager,this.contentItem,this.header.parent)):null}_onTabClick(e){if(0===e.button||'touchstart'===e.type){var t=this.header.parent.getActiveContentItem();this.contentItem!==t&&this.header.parent.setActiveContentItem(this.contentItem)}else 1===e.button&&this.contentItem.config.isClosable&&this._onCloseClick(e)}_onCloseClick(e){e.stopPropagation();this.header._canDestroy&&this.header.parent.removeChild(this.contentItem)}_onCloseMousedown(e){e.stopPropagation()}}},function(e,t,n){'use strict';var o=n(1),i=n(0);class a extends o.b{constructor(e,t,n,o,a,s){super(),this._dragListener=n,this._layoutManager=o,this._contentItem=a,this._originalParent=s,this._area=null,this._lastValidArea=null,this._dragListener.on('drag',this._onDrag,this),this._dragListener.on('dragStop',this._onDrop,this),this.element=$('<div class="lm_dragProxy"><div class="lm_header"><ul class="lm_tabs"><li class="lm_tab lm_active"><i class="lm_left"></i><span class="lm_title"></span><i class="lm_right"></i></li></ul></div><div class="lm_content"></div></div>'),s&&s._side&&(this._sided=s._sided,this.element.addClass('lm_'+s._side),0<=['right','bottom'].indexOf(s._side)&&this.element.find('.lm_content').after(this.element.find('.lm_header'))),this.element.css({left:e,top:t}),this.element.find('.lm_tab').attr('title',Object(i.k)(this._contentItem.config.title)),this.element.find('.lm_title').html(this._contentItem.config.title),this.childElementContainer=this.element.find('.lm_content'),this.childElementContainer.append(a.element),this._undisplayTree(),this._layoutManager._$calculateItemAreas(),this._setDimensions(),$(document.body).append(this.element);var r=this._layoutManager.container.offset();this._minX=r.left,this._minY=r.top,this._maxX=this._layoutManager.container.width()+this._minX,this._maxY=this._layoutManager.container.height()+this._minY,this._width=this.element.width(),this._height=this.element.height(),this._setDropPosition(e,t)}_onDrag(e,t,n){n=Object(i.e)(n);var o=n.pageX,a=n.pageY,s=o>this._minX&&o<this._maxX&&a>this._minY&&a<this._maxY;(s||!0!==this._layoutManager.config.settings.constrainDragToContainer)&&this._setDropPosition(o,a)}_setDropPosition(e,t){this.element.css({left:e,top:t}),this._area=this._layoutManager._$getArea(e,t),null!==this._area&&(this._lastValidArea=this._area,this._area.contentItem._$highlightDropZone(e,t,this._area))}_onDrop(){this._updateTree(),this._layoutManager.dropTargetIndicator.hide(),null===this._area?null===this._lastValidArea?this._originalParent?this._originalParent.addChild(this._contentItem):this._contentItem._$destroy():this._lastValidArea.contentItem._$onDrop(this._contentItem,this._lastValidArea):this._area.contentItem._$onDrop(this._contentItem,this._area),this.element.remove(),this._layoutManager.emit('itemDropped',this._contentItem)}_undisplayTree(){this._contentItem.parent&&this._contentItem.parent.undisplayChild(this._contentItem)}_updateTree(){this._contentItem.parent&&this._contentItem.parent.removeChild(this._contentItem,!0),this._contentItem._$setParent(this)}_setDimensions(){var e=this._layoutManager.config.dimensions,t=e.dragProxyWidth,n=e.dragProxyHeight;this.element.width(t),this.element.height(n),t-=this._sided?e.headerHeight:0,n-=this._sided?0:e.headerHeight,this.childElementContainer.width(t),this.childElementContainer.height(n),this._contentItem.element.width(t),this._contentItem.element.height(n),this._contentItem.callDownwards('_$show'),this._contentItem.callDownwards('setSize')}}t.a=a},function(e,t){'use strict';t.a=class{constructor(e,t,n,o){this._header=e,this.element=$('<li class="'+n+'" title="'+t+'"></li>'),this._header.on('destroy',this._$destroy,this),this._action=o,this.element.on('click touchstart',this._action),this._header.controlsContainer.append(this.element)}_$destroy(){this.element.off(),this.element.remove()}}},function(e,t,n){'use strict';var o=n(3),i=n(33);class a extends o.a{constructor(e,t,n){super(e,t,n);var o=e.getComponent(this.config.componentName),a=$.extend(!0,{},this.config.componentState||{});a.componentName=this.config.componentName,this.componentName=this.config.componentName,''===this.config.title&&(this.config.title=this.config.componentName),this.isComponent=!0,this.container=new i.a(this.config,this,e),this.instance=new o(this.container,a),this.element=this.container._element}close(){this.parent.removeChild(this)}setSize(){'none'!==this.element.css('display')&&this.container._$setSize(this.element.width(),this.element.height())}_$init(){o.a.prototype._$init.call(this),this.container.emit('open')}_$hide(){this.container.hide(),o.a.prototype._$hide.call(this)}_$show(){this.container.show(),o.a.prototype._$show.call(this)}_$shown(){this.container.shown(),o.a.prototype._$shown.call(this)}_$destroy(){this.container.emit('destroy',this),o.a.prototype._$destroy.call(this)}_$getArea(){return null}}t.a=a},function(e,t,n){'use strict';var o=n(1);class i extends o.b{constructor(e,t,n){super(),this.width=null,this.height=null,this.title=e.componentName,this.parent=t,this.layoutManager=n,this.isHidden=!1,this._config=e,this._element=$('<div class="lm_item_container"><div class="lm_content"></div></div>'),this._contentElement=this._element.find('.lm_content')}getElement(){return this._contentElement}hide(){this.emit('hide'),this.isHidden=!0,this._element.hide()}show(){this.emit('show'),this.isHidden=!1,this._element.show(),(0!=this.height||0!=this.width)&&this.emit('shown')}setSize(e,t){for(var n,o,a,s,r,l,i=this.parent,c=this;!i.isColumn&&!i.isRow;)if(c=i,i=i.parent,i.isRoot)return!1;for(a=i.isColumn?'height':'width',s='height'===a?t:e,n=this[a]*(1/(c.config[a]/100)),o=100*(s/n),r=(c.config[a]-o)/(i.contentItems.length-1),l=0;l<i.contentItems.length;l++)i.contentItems[l]===c?i.contentItems[l].config[a]=o:i.contentItems[l].config[a]+=r;return i.callDownwards('setSize'),!0}close(){this._config.isClosable&&(this.emit('close'),this.parent.close())}getState(){return this._config.componentState}extendState(e){this.setState($.extend(!0,this.getState(),e))}setState(e){this._config.componentState=e,this.parent.emitBubblingEvent('stateChanged')}setTitle(e){this.parent.setTitle(e)}_$setSize(e,t){(e!==this.width||t!==this.height)&&(this.width=e,this.height=t,$.zepto?this._contentElement.width(e):this._contentElement.outerWidth(e),$.zepto?this._contentElement.height(t):this._contentElement.outerHeight(t),this.emit('resize'))}}t.a=i},function(e,n,o){'use strict';var i=o(68),a=o.n(i),s=o(1),r=o(11),l=o(0);class c extends s.b{constructor(e,t,n,o,i){super(),this.isInitialised=!1,this._config=e,this._dimensions=t,this._parentId=n,this._indexInParent=o,this._layoutManager=i,this._popoutWindow=null,this._id=null,this._createWindow()}toConfig(){if(!1===this.isInitialised)throw new Error('Can\'t create config, layout not yet initialised');return{dimensions:{width:this.getGlInstance().width,height:this.getGlInstance().height,left:this._popoutWindow.screenX||this._popoutWindow.screenLeft,top:this._popoutWindow.screenY||this._popoutWindow.screenTop},content:this.getGlInstance().toConfig().content,parentId:this._parentId,indexInParent:this._indexInParent}}getGlInstance(){return this._popoutWindow.__glInstance}getWindow(){return this._popoutWindow}close(){if(this.getGlInstance())this.getGlInstance()._$closeWindow();else try{this.getWindow().close()}catch(t){}}popIn(){var e,t,n=this._indexInParent;this._parentId&&(e=$.extend(!0,{},this.getGlInstance().toConfig()).content[0],t=this._layoutManager.root.getItemsById(this._parentId)[0],!t&&(t=0<this._layoutManager.root.contentItems.length?this._layoutManager.root.contentItems[0]:this._layoutManager.root,n=0)),t.addChild(e,this._indexInParent),this.close()}_createWindow(){var e,n=this._createUrl(),o=t(1e6*Math.random()).toString(36),i=this._serializeWindowOptions({width:this._dimensions.width,height:this._dimensions.height,innerWidth:this._dimensions.width,innerHeight:this._dimensions.height,menubar:'no',toolbar:'no',location:'no',personalbar:'no',resizable:'yes',scrollbars:'no',status:'no'});if(this._popoutWindow=window.open(n,o,i),!this._popoutWindow)if(!0===this._layoutManager.config.settings.blockedPopoutsThrowError){var a=new Error('Popout blocked');throw a.type='popoutBlocked',a}else return;$(this._popoutWindow).on('load',Object(l.c)(this._positionWindow,this)).on('unload beforeunload',Object(l.c)(this._onClose,this)),e=setInterval(Object(l.c)(function(){this._popoutWindow.__glInstance&&this._popoutWindow.__glInstance.isInitialised&&(this._onInitialised(),clearInterval(e))},this),10)}_serializeWindowOptions(e){var t,n=[];for(t in e)n.push(t+'='+e[t]);return n.join(',')}_createUrl(){var e,t={content:this._config},n='gl-window-config-'+Object(l.f)();t=new r.a().minifyConfig(t);try{localStorage.setItem(n,a()(t))}catch(t){throw new Error('Error while writing to localStorage '+t.toString())}return e=document.location.href.split('?'),1===e.length?e[0]+'?gl-window='+n:document.location.href+'&gl-window='+n}_positionWindow(){this._popoutWindow.moveTo(this._dimensions.left,this._dimensions.top),this._popoutWindow.focus()}_onInitialised(){this.isInitialised=!0,this.getGlInstance().on('popIn',this.popIn,this),this.emit('initialised')}_onClose(){setTimeout(Object(l.c)(this.emit,this,['closed']),50)}}n.a=c},function(e,t,n){'use strict';Object.defineProperty(t,'__esModule',{value:!0});var o=n(36),i=n.n(o),a=n(37),s=n.n(a),r=n(38),l=n.n(r),c=n(39);n.d(t,'default',function(){return c.a});var p=n(33);n.d(t,'ItemContainer',function(){return p.a});var d=n(34);n.d(t,'BrowserPopout',function(){return d.a});var m=n(28);n.d(t,'Header',function(){return m.a});var _=n(31);n.d(t,'HeaderButton',function(){return _.a});var g=n(29);n.d(t,'Tab',function(){return g.a});var u=n(32);n.d(t,'Component',function(){return u.a});var f=n(12);n.d(t,'Root',function(){return f.a});var h=n(6);n.d(t,'RowOrColumn',function(){return h.a});var y=n(13);n.d(t,'Stack',function(){return y.a});var v=n(26);n.d(t,'BubblingEvent',function(){return v.a});var b=n(11);n.d(t,'ConfigMinifier',function(){return b.a});var k=n(7);n.d(t,'DragListener',function(){return k.a});var x=n(1);n.d(t,'EventEmitter',function(){return x.b});var D=n(25);n.d(t,'EventHub',function(){return D.a});var w=n(24);n.d(t,'ReactComponentHandler',function(){return w.a}),{}.ES6&&(n(74),n(77))},function(){},function(){},function(){},function(e,o,i){'use strict';var a=i(1),s=i(24),r=i(11),l=i(25),c=i(12),p=i(6),d=i(13),m=i(32),_=i(3),g=i(34),u=i(70),f=i(71),h=i(72),y=i(27),v=i(73),b=i(0);class k extends a.b{constructor(e,t){if(!$){var n='jQuery is missing as dependency for GoldenLayout. ';throw n+='Please either expose $ on GoldenLayout\'s scope (e.g. window) or add "jquery" to ',n+='your paths when using RequireJS/AMD',new Error(n)}super(),this.isInitialised=!1,this._isFullPage=!1,this._resizeTimeoutId=null,this._components={"lm-react-component":s.a},this._itemAreas=[],this._resizeFunction=Object(b.c)(this._onResize,this),this._unloadFunction=Object(b.c)(this._onUnload,this),this._maximisedItem=null,this._maximisePlaceholder=$('<div class="lm_maximise_place"></div>'),this._creationTimeoutPassed=!1,this._subWindowsCreated=!1,this._dragSources=[],this._updatingColumnsResponsive=!1,this._firstLoad=!0,this.width=null,this.height=null,this.root=null,this.openPopouts=[],this.selectedItem=null,this.isSubWindow=!1,this.eventHub=new l.a(this),this.config=this._createConfig(e),this.container=t,this.dropTargetIndicator=null,this.transitionIndicator=null,this.tabDropPlaceholder=$('<div class="lm_drop_tab_placeholder"></div>'),!0===this.isSubWindow&&$('body').css('visibility','hidden'),this._typeToItem={column:Object(b.c)(p.a,this,[!0]),row:Object(b.c)(p.a,this,[!1]),stack:d.a,component:m.a}}minifyConfig(e){return new r.a().minifyConfig(e)}unminifyConfig(e){return new r.a().unminifyConfig(e)}registerComponent(e,t){if('function'!=typeof t)throw new Error('Please register a constructor function');if(void 0!==this._components[e])throw new Error('Component '+e+' is already registered');this._components[e]=t}toConfig(e){var t,n,o;if(!1===this.isInitialised)throw new Error('Can\'t create config, layout not yet initialised');if(e&&!(e instanceof _.a))throw new Error('Root must be a ContentItem');for(t={settings:Object(b.b)({},this.config.settings),dimensions:Object(b.b)({},this.config.dimensions),labels:Object(b.b)({},this.config.labels)},t.content=[],n=function(e,t){var o,a;for(o in t.config)'content'!==o&&(e[o]=t.config[o]);if(t.contentItems.length)for(e.content=[],a=0;a<t.contentItems.length;a++)e.content[a]={},n(e.content[a],t.contentItems[a])},e?n(t,{contentItems:[e]}):n(t,this.root),this._$reconcilePopoutWindows(),t.openPopouts=[],o=0;o<this.openPopouts.length;o++)t.openPopouts.push(this.openPopouts[o].toConfig());return t.maximisedItemId=this._maximisedItem?'__glMaximised':null,t}getComponent(e){if(this._components[e]===void 0)throw new y.a('Unknown component "'+e+'"');return this._components[e]}init(){return!1===this._subWindowsCreated&&(this._createSubWindows(),this._subWindowsCreated=!0),'loading'===document.readyState||null===document.body?void $(document).ready(Object(b.c)(this.init,this)):!0===this.isSubWindow&&!1===this._creationTimeoutPassed?(setTimeout(Object(b.c)(this.init,this),7),void(this._creationTimeoutPassed=!0)):void(!0===this.isSubWindow&&this._adjustToWindowMode(),this._setContainer(),this.dropTargetIndicator=new f.a(this.container),this.transitionIndicator=new h.a,this.updateSize(),this._create(this.config),this._bindEvents(),this.isInitialised=!0,this._adjustColumnsResponsive(),this.emit('initialised'))}updateSize(e,t){2===arguments.length?(this.width=e,this.height=t):(this.width=this.container.width(),this.height=this.container.height()),!0===this.isInitialised&&(this.root.callDownwards('setSize',[this.width,this.height]),this._maximisedItem&&(this._maximisedItem.element.width(this.container.width()),this._maximisedItem.element.height(this.container.height()),this._maximisedItem.callDownwards('setSize')),this._adjustColumnsResponsive())}destroy(){!1===this.isInitialised||(this._onUnload(),$(window).off('resize',this._resizeFunction),$(window).off('unload beforeunload',this._unloadFunction),this.root.callDownwards('_$destroy',[],!0),this.root.contentItems=[],this.tabDropPlaceholder.remove(),this.dropTargetIndicator.destroy(),this.transitionIndicator.destroy(),this.eventHub.destroy(),this._dragSources.forEach(function(e){e._dragListener.destroy(),e._element=null,e._itemConfig=null,e._dragListener=null}),this._dragSources=[])}createContentItem(e,t){var n,o;if('string'!=typeof e.type)throw new y.a('Missing parameter \'type\'',e);if('react-component'===e.type&&(e.type='component',e.componentName='lm-react-component'),!this._typeToItem[e.type])throw n='Unknown type \''+e.type+'\'. Valid types are '+Object(b.j)(this._typeToItem).join(','),new y.a(n);return'component'!==e.type||t instanceof d.a||!t||!0===this.isSubWindow&&t instanceof c.a||(e={type:'stack',width:e.width,height:e.height,content:[e]}),o=new this._typeToItem[e.type](this,e,t),o}createPopout(e,t,n,o){var i,a,s,r,l,c,p=e,d=e instanceof _.a,m=this;if(n=n||null,d){for(p=this.toConfig(e).content,n=Object(b.f)(),r=e.parent,l=e;1===r.contentItems.length&&!r.isRoot;)r=r.parent,l=l.parent;r.addId(n),isNaN(o)&&(o=Object(b.g)(l,r.contentItems))}else p instanceof Array||(p=[p]);return!t&&d&&(i=window.screenX||window.screenLeft,a=window.screenY||window.screenTop,s=e.element.offset(),t={left:i+s.left,top:a+s.top,width:e.element.width(),height:e.element.height()}),t||d||(t={left:window.screenX||window.screenLeft+20,top:window.screenY||window.screenTop+20,width:500,height:309}),d&&e.remove(),c=new g.a(p,t,n,o,this),c.on('initialised',function(){m.emit('windowOpened',c)}),c.on('closed',function(){m._$reconcilePopoutWindows()}),this.openPopouts.push(c),c}createDragSource(e,t){this.config.settings.constrainDragToContainer=!1;var n=new u.a($(e),t,this);return this._dragSources.push(n),n}selectItem(e,t){if(!0!==this.config.settings.selectionEnabled)throw new Error('Please set selectionEnabled to true to use this feature');e===this.selectedItem||(null!==this.selectedItem&&this.selectedItem.deselect(),e&&!0!==t&&e.select(),this.selectedItem=e,this.emit('selectionChanged',e))}_$maximiseItem(e){null!==this._maximisedItem&&this._$minimiseItem(this._maximisedItem),this._maximisedItem=e,this._maximisedItem.addId('__glMaximised'),e.element.addClass('lm_maximised'),e.element.after(this._maximisePlaceholder),this.root.element.prepend(e.element),e.element.width(this.container.width()),e.element.height(this.container.height()),e.callDownwards('setSize'),this._maximisedItem.emit('maximised'),this.emit('stateChanged')}_$minimiseItem(e){e.element.removeClass('lm_maximised'),e.removeId('__glMaximised'),this._maximisePlaceholder.after(e.element),this._maximisePlaceholder.remove(),e.parent.callDownwards('setSize'),this._maximisedItem=null,e.emit('minimised'),this.emit('stateChanged')}_$closeWindow(){window.setTimeout(function(){window.close()},1)}_$getArea(e,t){var n,o,i=Infinity,a=null;for(n=0;n<this._itemAreas.length;n++)o=this._itemAreas[n],e>o.x1&&e<o.x2&&t>o.y1&&t<o.y2&&i>o.surface&&(i=o.surface,a=o);return a}_$createRootItemAreas(){var e=50,t={y2:0,x2:0,y1:'y2',x1:'x2'};for(var n in t){var o=this.root._$getArea();o.side=n,o[n]=t[n]?o[t[n]]-e:e,o.surface=(o.x2-o.x1)*(o.y2-o.y1),this._itemAreas.push(o)}}_$calculateItemAreas(){var e,t,n=this._getAllContentItems();if(this._itemAreas=[],1===n.length)return void this._itemAreas.push(this.root._$getArea());for(this._$createRootItemAreas(),e=0;e<n.length;e++)if(n[e].isStack)if(t=n[e]._$getArea(),null===t)continue;else if(t instanceof Array)this._itemAreas=this._itemAreas.concat(t);else{this._itemAreas.push(t);var o={};Object(b.b)(o,t),Object(b.b)(o,t.contentItem._contentAreaDimensions.header.highlightArea),o.surface=(o.x2-o.x1)*(o.y2-o.y1),this._itemAreas.push(o)}}_$normalizeContentItem(e,t){if(!e)throw new Error('No content item defined');if(Object(b.h)(e)&&(e=e()),e instanceof _.a)return e;if($.isPlainObject(e)&&e.type){var n=this.createContentItem(e,t);return n.callDownwards('_$init'),n}throw new Error('Invalid contentItem')}_$reconcilePopoutWindows(){var e,t=[];for(e=0;e<this.openPopouts.length;e++)!1===this.openPopouts[e].getWindow().closed?t.push(this.openPopouts[e]):this.emit('windowClosed',this.openPopouts[e]);this.openPopouts.length!==t.length&&(this.emit('stateChanged'),this.openPopouts=t)}_getAllContentItems(){var e=[],t=function(n){if(e.push(n),n.contentItems instanceof Array)for(var o=0;o<n.contentItems.length;o++)t(n.contentItems[o])};return t(this.root),e}_bindEvents(){this._isFullPage&&$(window).resize(this._resizeFunction),$(window).on('unload beforeunload',this._unloadFunction)}_onResize(){clearTimeout(this._resizeTimeoutId),this._resizeTimeoutId=setTimeout(Object(b.c)(this.updateSize,this),100)}_createConfig(e){var t=Object(b.d)('gl-window');t&&(this.isSubWindow=!0,e=localStorage.getItem(t),e=JSON.parse(e),e=new r.a().unminifyConfig(e),localStorage.removeItem(t)),e=$.extend(!0,{},v.a,e);var n=function(e){for(var t in e)'props'!=t&&'object'==typeof e[t]?n(e[t]):'type'==t&&'react-component'===e[t]&&(e.type='component',e.componentName='lm-react-component')};return n(e),!1===e.settings.hasHeaders&&(e.dimensions.headerHeight=0),e}_adjustToWindowMode(){var e=$('<div class="lm_popin" title="'+this.config.labels.popin+'"><div class="lm_icon"></div><div class="lm_bg"></div></div>');e.click(Object(b.c)(function(){this.emit('popIn')},this)),document.title=Object(b.k)(this.config.content[0].title),$('head').append($('body link, body style, template, .gl_keep')),this.container=$('body').html('').css('visibility','visible').append(e);document.body.offsetHeight;window.__glInstance=this}_createSubWindows(){var e,t;for(e=0;e<this.config.openPopouts.length;e++)t=this.config.openPopouts[e],this.createPopout(t.content,t.dimensions,t.parentId,t.indexInParent)}_setContainer(){var e=$(this.container||'body');if(0===e.length)throw new Error('GoldenLayout container not found');if(1<e.length)throw new Error('GoldenLayout more than one container element specified');e[0]===document.body&&(this._isFullPage=!0,$('html, body').css({height:'100%',margin:0,padding:0,overflow:'hidden'})),this.container=e}_create(e){var t;if(!(e.content instanceof Array))throw t=void 0===e.content?'Missing setting \'content\' on top level of configuration':'Configuration parameter \'content\' must be an array',new y.a(t,e);if(1<e.content.length)throw t='Top level content can\'t contain more then one element.',new y.a(t,e);this.root=new c.a(this,{content:e.content},this.container),this.root.callDownwards('_$init'),'__glMaximised'===e.maximisedItemId&&this.root.getItemsById(e.maximisedItemId)[0].toggleMaximise()}_onUnload(){if(!0===this.config.settings.closePopoutsOnUnload)for(var e=0;e<this.openPopouts.length;e++)this.openPopouts[e].close()}_adjustColumnsResponsive(){if(!this._useResponsiveLayout()||this._updatingColumnsResponsive||!this.config.dimensions||!this.config.dimensions.minItemWidth||0===this.root.contentItems.length||!this.root.contentItems[0].isRow)return void(this._firstLoad=!1);this._firstLoad=!1;var e=this.root.contentItems[0].contentItems.length;if(!(1>=e)){var o=this.config.dimensions.minItemWidth;if(!(e*o<=this.width)){this._updatingColumnsResponsive=!0;for(var a,s=n(t(this.width/o),1),r=this.root.contentItems[0],l=this._findAllStackContainers()[0],c=0;c<e-s;c++)a=r.contentItems[r.contentItems.length-1],this._addChildContentItemsToContainer(l,a);this._updatingColumnsResponsive=!1}}}_useResponsiveLayout(){return this.config.settings&&('always'==this.config.settings.responsiveMode||'onload'==this.config.settings.responsiveMode&&this._firstLoad)}_addChildContentItemsToContainer(e,t){'stack'===t.type?t.contentItems.forEach(function(n){e.addChild(n),t.removeChild(n,!0)}):t.contentItems.forEach(Object(b.c)(function(t){this._addChildContentItemsToContainer(e,t)},this))}_findAllStackContainers(){var e=[];return this._findAllStackContainersRecursive(e,this.root),e}_findAllStackContainersRecursive(e,t){t.contentItems.forEach(Object(b.c)(function(t){'stack'==t.type?e.push(t):!t.isComponent&&this._findAllStackContainersRecursive(e,t)},this))}}o.a=k},function(e,t,n){e.exports={default:n(41),__esModule:!0}},function(e,t,n){n(42),e.exports=n(2).Object.keys},function(e,t,n){var o=n(43),i=n(15);n(53)('keys',function(){return function(e){return i(o(e))}})},function(e,t,n){var o=n(14);e.exports=function(e){return Object(o(e))}},function(e,t,n){var o=n(16),a=n(17),s=n(47)(!1),i=n(19)('IE_PROTO');e.exports=function(e,t){var n,r=a(e),l=0,c=[];for(n in r)n!=i&&o(r,n)&&c.push(n);for(;t.length>l;)o(r,n=t[l++])&&(~s(c,n)||c.push(n));return c}},function(e,t,n){var o=n(46);e.exports=Object('z').propertyIsEnumerable(0)?Object:function(e){return'String'==o(e)?e.split(''):Object(e)}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,t,n){var o=n(17),i=n(48),a=n(49);e.exports=function(e){return function(t,n,s){var r,l=o(t),c=i(l.length),p=a(s,c);if(e&&n!=n){for(;c>p;)if(r=l[p++],r!=r)return!0;}else for(;c>p;p++)if((e||p in l)&&l[p]===n)return e||p||0;return!e&&-1}}},function(t,n,o){var i=o(18);t.exports=function(t){return 0<t?e(i(t),9007199254740991):0}},function(t,o,i){var a=i(18);t.exports=function(t,o){return t=a(t),0>t?n(t+o,0):e(t,o)}},function(e,t,n){var o=n(2),i=n(4),a='__core-js_shared__',s=i[a]||(i[a]={});(e.exports=function(e,t){return s[e]||(s[e]=t===void 0?{}:t)})('versions',[]).push({version:o.version,mode:n(51)?'pure':'global',copyright:'\xA9 2018 Denis Pushkarev (zloirock.ru)'})},function(e){e.exports=!0},function(e){var t=0,n=Math.random();e.exports=function(e){return'Symbol('.concat(e===void 0?'':e,')_',(++t+n).toString(36))}},function(e,t,n){var o=n(21),i=n(2),a=n(10);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={};s[e]=t(n),o(o.S+o.F*a(function(){n(1)}),'Object',s)}},function(e,t,n){var o=n(55);e.exports=function(e,t,n){return(o(e),void 0===t)?e:1===n?function(n){return e.call(t,n)}:2===n?function(n,o){return e.call(t,n,o)}:3===n?function(n,o,i){return e.call(t,n,o,i)}:function(){return e.apply(t,arguments)}}},function(e){e.exports=function(e){if('function'!=typeof e)throw TypeError(e+' is not a function!');return e}},function(e,t,n){var o=n(22),i=n(59);e.exports=n(5)?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){e.exports=!n(5)&&!n(10)(function(){return 7!=Object.defineProperty(n(23)('div'),'a',{get:function(){return 7}}).a})},function(e,t,n){var o=n(9);e.exports=function(e,t){if(!o(e))return e;var n,i;if(t&&'function'==typeof(n=e.toString)&&!o(i=n.call(e)))return i;if('function'==typeof(n=e.valueOf)&&!o(i=n.call(e)))return i;if(!t&&'function'==typeof(n=e.toString)&&!o(i=n.call(e)))return i;throw TypeError('Can\'t convert object to primitive value')}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports={default:n(61),__esModule:!0}},function(e,t,n){n(62);var o=n(2).Object;e.exports=function(e,t){return o.create(e,t)}},function(e,t,n){var o=n(21);o(o.S,'Object',{create:n(63)})},function(e,t,n){var o=n(8),i=n(64),a=n(20),s=n(19)('IE_PROTO'),r=function(){},l='prototype',c=function(){var e,t=n(23)('iframe'),o=a.length,i='<',s='>';for(t.style.display='none',n(65).appendChild(t),t.src='javascript:',e=t.contentWindow.document,e.open(),e.write(i+'script'+s+'document.F=Object'+i+'/script'+s),e.close(),c=e.F;o--;)delete c[l][a[o]];return c()};e.exports=Object.create||function(e,t){var n;return null===e?n=c():(r[l]=o(e),n=new r,r[l]=null,n[s]=e),void 0===t?n:i(n,t)}},function(e,t,n){var o=n(22),a=n(8),s=n(15);e.exports=n(5)?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),l=r.length,c=0;l>c;)o.f(e,n=r[c++],t[n]);return e}},function(e,t,n){var o=n(4).document;e.exports=o&&o.documentElement},function(e,t){'use strict';t.a={isClosable:!0,reorderEnabled:!0,title:''}},function(e,t,n){'use strict';var o=n(7);t.a=class{constructor(e,t,n){this._isVertical=e,this._size=t,this._grabSize=n<t?t:n,this.element=this._createElement(),this._dragListener=new o.a(this.element)}on(e,t,n){this._dragListener.on(e,t,n)}_$destroy(){this.element.remove()}_createElement(){var e=$('<div class="lm_drag_handle"></div>'),t=$('<div class="lm_splitter"></div>');t.append(e);var n=this._grabSize-this._size,o=n/2;return this._isVertical?(e.css('top',-o),e.css('height',this._size+n),t.addClass('lm_vertical'),t.height(this._size)):(e.css('left',-o),e.css('width',this._size+n),t.addClass('lm_horizontal'),t.width(this._size)),t}}},function(e,t,n){e.exports={default:n(69),__esModule:!0}},function(e,t,n){var o=n(2),i=o.JSON||(o.JSON={stringify:JSON.stringify});e.exports=function(){return i.stringify.apply(i,arguments)}},function(e,t,n){'use strict';var o=n(7),i=n(30),a=n(0);t.a=class{constructor(e,t,n){this._element=e,this._itemConfig=t,this._layoutManager=n,this._dragListener=null,this._createDragListener()}_createDragListener(){null!==this._dragListener&&this._dragListener.destroy(),this._dragListener=new o.a(this._element),this._dragListener.on('dragStart',this._onDragStart,this),this._dragListener.on('dragStop',this._createDragListener,this)}_onDragStart(e,t){var n=this._itemConfig;Object(a.h)(n)&&(n=n());var o=this._layoutManager._$normalizeContentItem($.extend(!0,{},n)),s=new i.a(e,t,this._dragListener,this._layoutManager,o,null);this._layoutManager.transitionIndicator.transitionElements(this._element,s.element)}}},function(e,t){'use strict';t.a=class{constructor(){this.element=$('<div class="lm_dropTargetIndicator"><div class="lm_inner"></div></div>'),$(document.body).append(this.element)}destroy(){this.element.remove()}highlight(e,t,n,o){this.highlightArea({x1:e,y1:t,x2:n,y2:o})}highlightArea(e){this.element.css({left:e.x1,top:e.y1,width:e.x2-e.x1,height:e.y2-e.y1}).show()}hide(){this.element.hide()}}},function(e,t,n){'use strict';var o=n(0);t.a=class{constructor(){this._element=$('<div class="lm_transition_indicator"></div>'),$(document.body).append(this._element),this._toElement=null,this._fromDimensions=null,this._totalAnimationDuration=200,this._animationStartTime=null}destroy(){this._element.remove()}transitionElements(){}_nextAnimationFrame(){var e,t=this._measure(this._toElement),n=(Object(o.i)()-this._animationStartTime)/this._totalAnimationDuration,i={};if(1<=n)return void this._element.hide();for(e in t.opacity=0,this._fromDimensions)i[e]=this._fromDimensions[e]+(t[e]-this._fromDimensions[e])*n;this._element.css(i),Object(o.a)(Object(o.c)(this._nextAnimationFrame,this))}_measure(e){var t=e.offset();return{left:t.left,top:t.top,width:e.outerWidth(),height:e.outerHeight()}}}},function(e,t){'use strict';t.a={openPopouts:[],settings:{hasHeaders:!0,constrainDragToContainer:!0,reorderEnabled:!0,selectionEnabled:!1,popoutWholeStack:!1,blockedPopoutsThrowError:!0,closePopoutsOnUnload:!0,showPopoutIcon:!0,showMaximiseIcon:!0,showCloseIcon:!0,responsiveMode:'onload',tabOverlapAllowance:0,reorderOnTabMenuClick:!0,tabControlOffset:10},dimensions:{borderWidth:5,borderGrabWidth:15,minItemHeight:10,minItemWidth:10,headerHeight:20,dragProxyWidth:300,dragProxyHeight:200},labels:{close:'close',maximise:'maximise',minimise:'minimise',popout:'open in new window',popin:'pop in',tabDropdown:'additional tabs'}}},function(e,t,n){n(75)(n(76))},function(e){e.exports=function(e){function t(e){'undefined'!=typeof console&&(console.error||console.log)('[Script Loader]',e)}function n(){return'undefined'!=typeof attachEvent&&'undefined'==typeof addEventListener}try{'undefined'!=typeof execScript&&n()?execScript(e):'undefined'==typeof eval?t('EvalError: No eval function available'):eval.call(null,e)}catch(e){t(e)}}},function(e){e.exports='/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n(function(global, factory) {\n if (typeof define === \'function\' && define.amd)\n define(function() { return factory(global) })\n else\n factory(global)\n}(this, function(window) {\n var Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { \'column-count\': 1, \'columns\': 1, \'font-weight\': 1, \'line-height\': 1,\'opacity\': 1, \'z-index\': 1, \'zoom\': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = [\'val\', \'css\', \'html\', \'text\', \'data\', \'width\', \'height\', \'offset\'],\n\n adjacencyOperators = [ \'after\', \'prepend\', \'before\', \'append\' ],\n table = document.createElement(\'table\'),\n tableRow = document.createElement(\'tr\'),\n containers = {\n \'tr\': document.createElement(\'tbody\'),\n \'tbody\': table, \'thead\': table, \'tfoot\': table,\n \'td\': tableRow, \'th\': tableRow,\n \'*\': document.createElement(\'div\')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement(\'div\'),\n propMap = {\n \'tabindex\': \'tabIndex\',\n \'readonly\': \'readOnly\',\n \'for\': \'htmlFor\',\n \'class\': \'className\',\n \'maxlength\': \'maxLength\',\n \'cellspacing\': \'cellSpacing\',\n \'cellpadding\': \'cellPadding\',\n \'rowspan\': \'rowSpan\',\n \'colspan\': \'colSpan\',\n \'usemap\': \'useMap\',\n \'frameborder\': \'frameBorder\',\n \'contenteditable\': \'contentEditable\'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || "object"\n }\n\n function isFunction(value) { return type(value) == "function" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == "object" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && \'length\' in obj && obj.length,\n type = $.type(obj)\n\n return \'function\' != type && !isWindow(obj) && (\n \'array\' == type || length === 0 ||\n (typeof length == \'number\' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : \'\' }) }\n function dasherize(str) {\n return str.replace(/::/g, \'/\')\n .replace(/([A-Z]+)([A-Z][a-z])/g, \'$1_$2\')\n .replace(/([a-z\\d])([A-Z])/g, \'$1_$2\')\n .replace(/_/g, \'-\')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp(\'(^|\\\\s)\' + name + \'(\\\\s|$)\'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, \'\').getPropertyValue("display")\n element.parentNode.removeChild(element)\n display == "none" && (display = "block")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return \'children\' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || \'\'\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don\'t support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, "<$1></$2>")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = \'*\'\n\n container = containers[name]\n container.innerHTML = \'\' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto\'s counterpart to jQuery\'s `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == \'string\') {\n selector = selector.trim()\n // If it\'s a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn\'t begin with <\n if (selector[0] == \'<\' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there\'s a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it\'s a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it\'s a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there\'s a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it\'s a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == \'boolean\') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto\'s CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == \'#\',\n maybeClass = !maybeID && selector[0] == \'.\',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn\'t have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn\'t have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it\'s simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it\'s not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || \'\',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // "true" => true\n // "false" => false\n // "null" => null\n // "42" => 42\n // "42.5" => 42.5\n // "08" => "08"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == "true" ||\n ( value == "false" ? false :\n value == "null" ? null :\n +value + "" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != \'boolean\' &&\n (type != \'string\' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? "" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) {\n class2type[ "[object " + name + "]" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn\'t yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener(\'DOMContentLoaded\', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == \'string\' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == \'object\')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == \'object\' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck(\'parentNode\')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = \'\' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == "none" && (this.style.display = \'\')\n if (getComputedStyle(this, \'\').getPropertyValue("display") == "none")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css("display", "none")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck(\'previousElementSibling\')).filter(selector || \'*\') },\n next: function(selector){ return $(this.pluck(\'nextElementSibling\')).filter(selector || \'*\') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? \'\' : \'\'+newText\n }) :\n (0 in this ? this.pluck(\'textContent\').join("") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == \'string\' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(\' \').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = \'data-\' + name.replace(capitalRE, \'-$1\').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = ""\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find(\'option\').filter(function(){ return this.selected }).pluck(\'value\') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css(\'position\') == \'static\') props[\'position\'] = \'relative\'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == \'string\') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, \'\').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, \'\')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = \'\'\n if (type(property) == \'string\') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + ":" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + \':\' + maybeAddPx(key, property[key]) + \';\'\n }\n\n return this.each(function(){ this.style.cssText += \';\' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!(\'className\' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? " " : "") + classList.join(" "))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!(\'className\' in this)) return\n if (name === undefined) return className(this, \'\')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), " ")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = \'scrollTop\' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = \'scrollLeft\' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css(\'margin-top\') ) || 0\n offset.left -= parseFloat( $(elem).css(\'margin-left\') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css(\'border-top-width\') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css(\'border-left-width\') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;[\'width\', \'height\'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el[\'inner\' + dimensionProperty] :\n isDocument(el) ? el.documentElement[\'scroll\' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == "array") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == "object" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a "before" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === \'SCRIPT\' &&\n (!el.type || el.type === \'text/javascript\') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target[\'eval\'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+\'To\' : \'insert\'+(operatorIndex ? \'Before\' : \'After\')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == \'string\' },\n handlers = {},\n specialEvents={},\n focusinSupported = \'onfocusin\' in window,\n focus = { focus: \'focusin\', blur: \'focusout\' },\n hover = { mouseenter: \'mouseover\', mouseleave: \'mouseout\' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = \'MouseEvents\'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = (\'\' + event).split(\'.\')\n return {e: parts[0], ns: parts.slice(1).sort().join(\' \')}\n }\n function matcherFor(ns) {\n return new RegExp(\'(?:^| )\' + ns.replace(\' \', \' .* ?\') + \'(?: |$)\')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == \'ready\') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if (\'addEventListener\' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || \'\').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if (\'removeEventListener\' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError("expected function")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: \'isDefaultPrevented\',\n stopImmediatePropagation: \'isImmediatePropagationStopped\',\n stopPropagation: \'isPropagationStopped\'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n \'returnValue\' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == "function") this[event.type]()\n // items in the collection might not be DOM elements\n else if (\'dispatchEvent\' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn\'t trigger an actual event, doesn\'t bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;(\'focusin focusout focus blur load resize scroll unload click dblclick \'+\n \'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \'+\n \'change select keydown keypress keyup error\').split(\' \').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || \'Events\'), bubbles = true\n if (props) for (var name in props) (name == \'bubbles\') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = \'application/json\',\n htmlType = \'text/html\',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement(\'a\')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax "global" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, \'ajaxStart\')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, \'ajaxStop\')\n }\n\n // triggers an extra global event "ajaxBeforeSend" that\'s like "ajaxSend" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, \'ajaxBeforeSend\', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, \'ajaxSend\', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = \'success\'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, \'ajaxSuccess\', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: "timeout", "error", "abort", "parsererror"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, \'ajaxError\', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: "success", "notmodified", "error", "timeout", "abort", "parsererror"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, \'ajaxComplete\', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!(\'type\' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || (\'Zepto\' + (jsonpID++)),\n script = document.createElement(\'script\'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler(\'error\', errorType || \'abort\')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on(\'load error\', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == \'error\' || !responseData) {\n ajaxError(null, errorType || \'error\', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort(\'abort\')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, \'?$1=\' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort(\'timeout\')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: \'GET\',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger "global" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as "application/x-javascript"\n accepts: {\n script: \'text/javascript, application/javascript, application/x-javascript\',\n json: jsonType,\n xml: \'application/xml, text/xml\',\n html: htmlType,\n text: \'text/plain\'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(\';\', 2)[0]\n return mime && ( mime == htmlType ? \'html\' :\n mime == jsonType ? \'json\' :\n scriptTypeRE.test(mime) ? \'script\' :\n xmlTypeRE.test(mime) && \'xml\' ) || \'text\'\n }\n\n function appendQuery(url, query) {\n if (query == \'\') return url\n return (url + \'&\' + query).replace(/[&?]{1,2}/, \'?\')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != "string")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == \'GET\' || \'jsonp\' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement(\'a\')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + \'//\' + originAnchor.host) !== (urlAnchor.protocol + \'//\' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf(\'#\')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = \'jsonp\'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n (\'script\' == dataType || \'jsonp\' == dataType)\n ))\n settings.url = appendQuery(settings.url, \'_=\' + Date.now())\n\n if (\'jsonp\' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + \'=?\') : settings.jsonp === false ? \'\' : \'callback=?\')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader(\'X-Requested-With\', \'XMLHttpRequest\')\n setHeader(\'Accept\', mime || \'*/*\')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(\',\') > -1) mime = mime.split(\',\', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != \'GET\'))\n setHeader(\'Content-Type\', settings.contentType || \'application/x-www-form-urlencoded\')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == \'file:\')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader(\'content-type\'))\n\n if (xhr.responseType == \'arraybuffer\' || xhr.responseType == \'blob\')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == \'script\') (1,eval)(result)\n else if (dataType == \'xml\') result = xhr.responseXML\n else if (dataType == \'json\') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, \'parsererror\', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? \'error\' : \'abort\', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, \'abort\', xhr, settings, deferred)\n return xhr\n }\n\n var async = \'async\' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, \'timeout\', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = \'POST\'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = \'json\'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $(\'<div>\').html(response.replace(rscript, "")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + \'[\' + (hash || type == \'object\' || type == \'array\' ? key : \'\') + \']\'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == "array" || (!traditional && type == "object"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = ""\n this.push(escape(key) + \'=\' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join(\'&\').replace(/%20/g, \'+\')\n }\n})(Zepto)\n\n;(function($){\n $.fn.serializeArray = function() {\n var name, type, result = [],\n add = function(value) {\n if (value.forEach) return value.forEach(add)\n result.push({ name: name, value: value })\n }\n if (this[0]) $.each(this[0].elements, function(_, field){\n type = field.type, name = field.name\n if (name && field.nodeName.toLowerCase() != \'fieldset\' &&\n !field.disabled && type != \'submit\' && type != \'reset\' && type != \'button\' && type != \'file\' &&\n ((type != \'radio\' && type != \'checkbox\') || field.checked))\n add($(field).val())\n })\n return result\n }\n\n $.fn.serialize = function(){\n var result = []\n this.serializeArray().forEach(function(elm){\n result.push(encodeURIComponent(elm.name) + \'=\' + encodeURIComponent(elm.value))\n })\n return result.join(\'&\')\n }\n\n $.fn.submit = function(callback) {\n if (0 in arguments) this.bind(\'submit\', callback)\n else if (this.length) {\n var event = $.Event(\'submit\')\n this.eq(0).trigger(event)\n if (!event.isDefaultPrevented()) this.get(0).submit()\n }\n return this\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn\'t freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n return Zepto\n}))\n'},function(){(function(e){e.expr={":":{}},e.support={},e.fn.clone=function(){var t=e();return this.each(function(){t.push(this.cloneNode(!0))}),t},['Left','Top'].forEach(function(t,n){function o(e){return e&&'object'==typeof e&&'setInterval'in e}function i(e){return o(e)?e:!(9!==e.nodeType)&&(e.defaultView||e.parentWindow)}var a='scroll'+t;e.fn[a]=function(t){var o,s;return void 0===t?(o=this[0],!o)?null:(s=i(o),s?'pageXOffset'in s?s[n?'pageYOffset':'pageXOffset']:s.document.documentElement[a]||s.document.body[a]:o[a]):void this.each(function(){if(s=i(this),s){var o=n?e(s).scrollLeft():t,r=n?t:e(s).scrollTop();s.scrollTo(o,r)}else this[a]=t})}}),['width','height'].forEach(function(t){var n=t.replace(/./,function(e){return e[0].toUpperCase()});e.fn['inner'+n]=function(e){var n=this;if(n){var o=n[t]();return{width:['left','right'],height:['top','bottom']}[t].forEach(function(t){o+=parseInt(n.css('padding-'+t),10),e&&(o+=parseInt(n.css('margin-'+t),10))}),o}return null},e.fn['outer'+n]=function(e){var n=this;if(n){var o=n[t]();return{width:['left','right'],height:['top','bottom']}[t].forEach(function(t){e&&(o+=parseInt(n.css('margin-'+t),10))}),o}return null}}),e.proxy=function(t,n){if('string'==typeof n){var o=t[n];n=t,t=o}if(e.isFunction(t)){var i=Array.prototype.slice.call(arguments,2),a=function(){return t.apply(n,i.concat(Array.prototype.slice.call(arguments)))};return a.guid=t.guid=t.guid||a.guid||e.guid++,a}};var t=String.prototype.trim;e.trim=function(e,n){return!n&&t?t.call(e):(n=defaultToWhiteSpace(n),e.replace(new RegExp('^['+n+']+|['+n+']+$','g'),''))};var n=/^t(?:able|d|h)$/i,o=/^(?:body|html)$/i;e.fn.position=function(){if(!this[0])return null;var t=this[0],n=this.offsetParent(),i=this.offset(),a=o.test(n[0].nodeName)?{top:0,left:0}:n.offset();return i.top-=parseFloat(e(t).css('margin-top'))||0,i.left-=parseFloat(e(t).css('margin-left'))||0,a.top+=parseFloat(e(n[0]).css('border-top-width'))||0,a.left+=parseFloat(e(n[0]).css('border-left-width'))||0,{top:i.top-a.top,left:i.left-a.left}},e.fn.offsetParent=function(){var t=e();return this.each(function(){for(var n=this.offsetParent||document.body;n&&!o.test(n.nodeName)&&'static'===e(n).css('position');)n=n.offsetParent;t.push(n)}),t}})(Zepto)}])}); +//# sourceMappingURL=goldenlayout.js.map
\ No newline at end of file diff --git a/webAO/golden/js/goldenlayout.js.map b/webAO/golden/js/goldenlayout.js.map new file mode 100644 index 0000000..b28cd6f --- /dev/null +++ b/webAO/golden/js/goldenlayout.js.map @@ -0,0 +1 @@ +{"version":3,"file":"js\\goldenlayout.js","sources":["webpack:///webpack/universalModuleDefinition"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"GoldenLayout\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"GoldenLayout\"] = factory();\n\telse\n\t\troot[\"GoldenLayout\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"],"mappings":"AAAA","sourceRoot":""}
\ No newline at end of file diff --git a/images/background.png b/webAO/images/background.png Binary files differindex 0048d20..0048d20 100644 --- a/images/background.png +++ b/webAO/images/background.png diff --git a/images/button.png b/webAO/images/button.png Binary files differindex 8ca7dd5..8ca7dd5 100644 --- a/images/button.png +++ b/webAO/images/button.png diff --git a/images/buttonH.png b/webAO/images/buttonH.png Binary files differindex e21d83c..e21d83c 100644 --- a/images/buttonH.png +++ b/webAO/images/buttonH.png diff --git a/images/desc.png b/webAO/images/desc.png Binary files differindex 4d8ec37..4d8ec37 100644 --- a/images/desc.png +++ b/webAO/images/desc.png diff --git a/webAO/images/logo-neo.png b/webAO/images/logo-neo.png Binary files differnew file mode 100644 index 0000000..c625cac --- /dev/null +++ b/webAO/images/logo-neo.png diff --git a/webAO/images/logo-new.png b/webAO/images/logo-new.png Binary files differnew file mode 100644 index 0000000..f53fe30 --- /dev/null +++ b/webAO/images/logo-new.png diff --git a/images/logo.png b/webAO/images/logo.png Binary files differindex b07cb99..b07cb99 100644 --- a/images/logo.png +++ b/webAO/images/logo.png diff --git a/images/sel.png b/webAO/images/sel.png Binary files differindex d8005f5..d8005f5 100644 --- a/images/sel.png +++ b/webAO/images/sel.png diff --git a/master.html b/webAO/master.html index 58473b4..58473b4 100644 --- a/master.html +++ b/webAO/master.html diff --git a/master.js b/webAO/master.js index fa10eaf..fa10eaf 100644 --- a/master.js +++ b/webAO/master.js diff --git a/misc/advocat.png b/webAO/misc/advocat.png Binary files differindex 8336b5d..8336b5d 100644 --- a/misc/advocat.png +++ b/webAO/misc/advocat.png diff --git a/misc/chat2.png b/webAO/misc/chat2.png Binary files differindex 356eada..356eada 100644 --- a/misc/chat2.png +++ b/webAO/misc/chat2.png diff --git a/misc/holdit.png b/webAO/misc/holdit.png Binary files differindex d7112e2..d7112e2 100644 --- a/misc/holdit.png +++ b/webAO/misc/holdit.png diff --git a/misc/objection.png b/webAO/misc/objection.png Binary files differindex 655a724..655a724 100644 --- a/misc/objection.png +++ b/webAO/misc/objection.png diff --git a/misc/placeholder.gif b/webAO/misc/placeholder.gif Binary files differindex e35aaf4..e35aaf4 100644 --- a/misc/placeholder.gif +++ b/webAO/misc/placeholder.gif diff --git a/misc/present.png b/webAO/misc/present.png Binary files differindex 134d742..134d742 100644 --- a/misc/present.png +++ b/webAO/misc/present.png diff --git a/misc/procuror.png b/webAO/misc/procuror.png Binary files differindex 5f793f2..5f793f2 100644 --- a/misc/procuror.png +++ b/webAO/misc/procuror.png diff --git a/misc/svidetel.png b/webAO/misc/svidetel.png Binary files differindex d8cf371..d8cf371 100644 --- a/misc/svidetel.png +++ b/webAO/misc/svidetel.png diff --git a/misc/takethat.png b/webAO/misc/takethat.png Binary files differindex 3c87805..3c87805 100644 --- a/misc/takethat.png +++ b/webAO/misc/takethat.png diff --git a/misc/zdoh.png b/webAO/misc/zdoh.png Binary files differindex 65026d7..65026d7 100644 --- a/misc/zdoh.png +++ b/webAO/misc/zdoh.png diff --git a/stylesheet.css b/webAO/stylesheet.css index 15a81ea..15a81ea 100644 --- a/stylesheet.css +++ b/webAO/stylesheet.css diff --git a/webAO/ui.b.js b/webAO/ui.b.js new file mode 100644 index 0000000..fb4146e --- /dev/null +++ b/webAO/ui.b.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:i})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([,function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";(function(e){var n,i,o,s,r=function(){function e(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}return function(t,n,i){return n&&e(t.prototype,n),i&&e(t,i),t}}(),a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function l(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function c(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function h(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}"undefined"==typeof self||self,s=function(){var e=Math.min,t=Math.floor,n=Math.max;return function(e){function t(i){if(n[i])return n[i].exports;var o=n[i]={i:i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,i){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:i})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=35)}([function(e,t,n){t.e=function(e){return $.zepto?e.touches?e.targetTouches[0]:e:e.originalEvent&&e.originalEvent.touches?e.originalEvent.touches[0]:e},t.j=function(e){var t,n;if("function"==typeof o.a)return o()(e);for(n in t=[],e)t.push(n);return t},t.d=function(e){if(window.location.hash)return function(e){var t=location.hash.match(new RegExp(e+"=([^&]*)"));return t?t[1]:null}(e);if(!window.location.search)return null;var t,n,i=window.location.search.substr(1).split("&"),o={};for(n=0;n<i.length;n++)o[(t=i[n].split("="))[0]]=t[1];return o[e]||null},t.b=function(e,t){for(var n in t)e[n]=t[n];return e},t.a=function(e){return(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)})(function(){e()})},t.g=function(e,t){if(!(t instanceof Array))throw new Error("Haystack is not an Array");if(t.indexOf)return t.indexOf(e);for(var n=0;n<t.length;n++)if(t[n]===e)return n;return-1},n.d(t,"h",function(){return r}),t.c=function(e,t,n){if(void 0!==Function.prototype.bind)return Function.prototype.bind.apply(e,[t].concat(n||[]));var i=function i(){var o=(n||[]).concat(Array.prototype.slice.call(arguments,0));return this instanceof i?void e.apply(this,o):e.apply(t,o)};return i.prototype=e.prototype,i},t.i=function(){return"function"==typeof Date.now?Date.now():(new Date).getTime()},t.f=function(){return(1e15*Math.random()).toString(36).replace(".","")},t.k=function(e){return $.trim(e.replace(/(<([^>]+)>)/gi,""))};var i=n(40),o=n.n(i),s=n(60),r=(n.n(s),"function"!=typeof/./&&"object"!=("undefined"==typeof Int8Array?"undefined":a(Int8Array))?function(e){return"function"==typeof e||!1}:function(e){return"[object Function]"===toString.call(e)})},function(e,t,n){var i=n(0),o="__all";t.a=o,t.b=function(){return function e(){h(this,e),this._mSubscriptions={},this._mSubscriptions[o]=[],this.on=function(e,t,n){if(!Object(i.h)(t))throw new Error("Tried to listen to event "+e+" with non-function callback "+t);this._mSubscriptions[e]||(this._mSubscriptions[e]=[]),this._mSubscriptions[e].push({fn:t,ctx:n})},this.emit=function(e){var t,n,i;i=Array.prototype.slice.call(arguments,1);var s=this._mSubscriptions[e];if(s)for(s=s.slice(),t=0;t<s.length;t++)n=s[t].ctx||{},s[t].fn.apply(n,i);i.unshift(e);var r=this._mSubscriptions[o].slice();for(t=0;t<r.length;t++)n=r[t].ctx||{},r[t].fn.apply(n,i)},this.unbind=function(e,t,n){if(!this._mSubscriptions[e])throw new Error("No subscribtions to unsubscribe for event "+e);var i,o=!1;for(i=0;i<this._mSubscriptions[e].length;i++)t&&this._mSubscriptions[e][i].fn!==t||n&&n!==this._mSubscriptions[e][i].ctx||(this._mSubscriptions[e].splice(i,1),o=!0);if(0==o)throw new Error("Nothing to unbind for "+e)},this.off=this.unbind,this.trigger=this.emit}}()},function(e){var t=e.exports={version:"2.5.6"};"number"==typeof __e&&(__e=t)},function(e,t,n){var i=n(1),o=n(26),s=n(12),a=n(27),u=n(66),d=n(0),f=function(e){function t(e,n,o){var s;return h(this,t),(s=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this))).config=s._extendItemNode(n),s.type=n.type,s.contentItems=[],s.parent=o,s.isInitialised=!1,s.isMaximised=!1,s.isRoot=!1,s.isRow=!1,s.isColumn=!1,s.isStack=!1,s.isComponent=!1,s.layoutManager=e,s._pendingEventPropagations={},s._throttledEvents=["stateChanged"],s.on(i.a,s._propagateEvent,s),n.content&&s._createContentItems(n),s}return c(t,i.b),r(t,[{key:"setSize",value:function(){throw new Error("Abstract Method")}},{key:"callDownwards",value:function(e,t,n,i){var o;for(!0!==n&&!0!==i&&this[e].apply(this,t||[]),o=0;o<this.contentItems.length;o++)this.contentItems[o].callDownwards(e,t,n);!0===n&&!0!==i&&this[e].apply(this,t||[])}},{key:"removeChild",value:function(e,t){var n=Object(d.g)(e,this.contentItems);if(-1===n)throw new Error("Can't remove child item. Unknown content item");!0!==t&&this.contentItems[n]._$destroy(),this.contentItems.splice(n,1),this.config.content.splice(n,1),0<this.contentItems.length?this.callDownwards("setSize"):!(this instanceof s.a)&&!0===this.config.isClosable&&this.parent.removeChild(this)}},{key:"undisplayChild",value:function(e){if(-1===Object(d.g)(e,this.contentItems))throw new Error("Can't remove child item. Unknown content item");this instanceof s.a||!0!==this.config.isClosable||this.parent.undisplayChild(this)}},{key:"addChild",value:function(e,t){void 0===t&&(t=this.contentItems.length),this.contentItems.splice(t,0,e),void 0===this.config.content&&(this.config.content=[]),this.config.content.splice(t,0,e.config),e.parent=this,!0===e.parent.isInitialised&&!1===e.isInitialised&&e._$init()}},{key:"replaceChild",value:function(e,t,n){t=this.layoutManager._$normalizeContentItem(t);var i=Object(d.g)(e,this.contentItems),o=e.element[0].parentNode;if(-1===i)throw new Error("Can't replace child. oldChild is not child of this");o.replaceChild(t.element[0],e.element[0]),!0===n&&(e.parent=null,e._$destroy()),this.contentItems[i]=t,t.parent=this,this.isStack&&(this.header.tabs[i].contentItem=t),!0===t.parent.isInitialised&&!1===t.isInitialised&&t._$init(),this.callDownwards("setSize")}},{key:"remove",value:function(){this.parent.removeChild(this)}},{key:"popout",value:function(){var e=this.layoutManager.createPopout(this);return this.emitBubblingEvent("stateChanged"),e}},{key:"toggleMaximise",value:function(e){e&&e.preventDefault(),!0===this.isMaximised?this.layoutManager._$minimiseItem(this):this.layoutManager._$maximiseItem(this),this.isMaximised=!this.isMaximised,this.emitBubblingEvent("stateChanged")}},{key:"select",value:function(){this.layoutManager.selectedItem!==this&&(this.layoutManager.selectItem(this,!0),this.element.addClass("lm_selected"))}},{key:"deselect",value:function(){this.layoutManager.selectedItem===this&&(this.layoutManager.selectedItem=null,this.element.removeClass("lm_selected"))}},{key:"setTitle",value:function(e){this.config.title=e,this.emit("titleChanged",e),this.emit("stateChanged")}},{key:"hasId",value:function(e){return!!this.config.id&&("string"==typeof this.config.id?this.config.id===e:this.config.id instanceof Array?-1!==Object(d.g)(e,this.config.id):void 0)}},{key:"addId",value:function(e){this.hasId(e)||(this.config.id?"string"==typeof this.config.id?this.config.id=[this.config.id,e]:this.config.id instanceof Array&&this.config.id.push(e):this.config.id=e)}},{key:"removeId",value:function(e){if(!this.hasId(e))throw new Error("Id not found");if("string"==typeof this.config.id)delete this.config.id;else if(this.config.id instanceof Array){var t=Object(d.g)(e,this.config.id);this.config.id.splice(t,1)}}},{key:"getItemsByFilter",value:function(e){var t=[];return function n(i){for(var o=0;o<i.contentItems.length;o++)!0===e(i.contentItems[o])&&t.push(i.contentItems[o]),n(i.contentItems[o])}(this),t}},{key:"getItemsById",value:function(e){return this.getItemsByFilter(function(t){return t.config.id instanceof Array?-1!==Object(d.g)(e,t.config.id):t.config.id===e})}},{key:"getItemsByType",value:function(e){return this._$getItemsByProperty("type",e)}},{key:"getComponentsByName",value:function(e){var t,n=this._$getItemsByProperty("componentName",e),i=[];for(t=0;t<n.length;t++)i.push(n[t].instance);return i}},{key:"_$getItemsByProperty",value:function(e,t){return this.getItemsByFilter(function(n){return n[e]===t})}},{key:"_$setParent",value:function(e){this.parent=e}},{key:"_$highlightDropZone",value:function(e,t,n){this.layoutManager.dropTargetIndicator.highlightArea(n)}},{key:"_$onDrop",value:function(e){this.addChild(e)}},{key:"_$hide",value:function(){this._callOnActiveComponents("hide"),this.element.hide(),this.layoutManager.updateSize()}},{key:"_$show",value:function(){this._callOnActiveComponents("show"),this.element.show(),this.layoutManager.updateSize()}},{key:"_callOnActiveComponents",value:function(e){var t,n,i=this.getItemsByType("stack");for(n=0;n<i.length;n++)(t=i[n].getActiveContentItem())&&t.isComponent&&t.container[e]()}},{key:"_$destroy",value:function(){this.emitBubblingEvent("beforeItemDestroyed"),this.callDownwards("_$destroy",[],!0,!0),this.element.remove(),this.emitBubblingEvent("itemDestroyed")}},{key:"_$getArea",value:function(e){var t=(e=e||this.element).offset(),n=e.width(),i=e.height();return{x1:t.left,y1:t.top,x2:t.left+n,y2:t.top+i,surface:n*i,contentItem:this}}},{key:"_$init",value:function(){var e;for(this.setSize(),e=0;e<this.contentItems.length;e++)this.childElementContainer.append(this.contentItems[e].element);this.isInitialised=!0,this.emitBubblingEvent("itemCreated"),this.emitBubblingEvent(this.type+"Created")}},{key:"emitBubblingEvent",value:function(e){var t=new o.a(e,this);this.emit(e,t)}},{key:"_createContentItems",value:function(e){var t,n;if(!(e.content instanceof Array))throw new a.a("content must be an Array",e);for(n=0;n<e.content.length;n++)t=this.layoutManager.createContentItem(e.content[n],this),this.contentItems.push(t)}},{key:"_extendItemNode",value:function(e){for(var t in u.a)void 0===e[t]&&(e[t]=u.a[t]);return e}},{key:"_propagateEvent",value:function(e,t){t instanceof o.a&&!1===t.isPropagationStopped&&!0===this.isInitialised&&(!1===this.isRoot&&this.parent?this.parent.emit.apply(this.parent,Array.prototype.slice.call(arguments,0)):this._scheduleEventPropagationToLayoutManager(e,t))}},{key:"_scheduleEventPropagationToLayoutManager",value:function(e,t){-1===Object(d.g)(e,this._throttledEvents)?this.layoutManager.emit(e,t.origin):!0!==this._pendingEventPropagations[e]&&(this._pendingEventPropagations[e]=!0,Object(d.a)(Object(d.c)(this._propagateEventToLayoutManager,this,[e,t])))}},{key:"_propagateEventToLayoutManager",value:function(e,t){this._pendingEventPropagations[e]=!1,this.layoutManager.emit(e,t)}}]),t}();t.a=f},function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)},function(e,t,n){e.exports=!n(10)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,i,o){var s=Math.round,a=o(3),u=o(13),d=o(67),f=o(0),m=function(e){function i(e,t,n,o){var s;return h(this,i),(s=l(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,t,n,o))).isRow=!e,s.isColumn=e,s.element=$('<div class="lm_item lm_'+(e?"column":"row")+'"></div>'),s.childElementContainer=s.element,s._splitterSize=t.config.dimensions.borderWidth,s._splitterGrabSize=t.config.dimensions.borderGrabWidth,s._isColumn=e,s._dimension=e?"height":"width",s._splitter=[],s._splitterPosition=null,s._splitterMinPosition=null,s._splitterMaxPosition=null,s}return c(i,a.a),r(i,[{key:"addChild",value:function(e,t,i){var o,s,r,l;if(e=this.layoutManager._$normalizeContentItem(e,this),void 0===t&&(t=this.contentItems.length),0<this.contentItems.length?(l=this._createSplitter(n(0,t-1)).element,0<t?(this.contentItems[t-1].element.after(l),l.after(e.element),this._isDocked(t-1)&&(this._splitter[t-1].element.hide(),this._splitter[t].element.show())):(this.contentItems[0].element.before(l),l.before(e.element))):this.childElementContainer.append(e.element),a.a.prototype.addChild.call(this,e,t),o=1/this.contentItems.length*100,!0!==i){for(r=0;r<this.contentItems.length;r++)this.contentItems[r]===e?e.config[this._dimension]=o:(s=this.contentItems[r].config[this._dimension]*=(100-o)/100,this.contentItems[r].config[this._dimension]=s);this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged"),this._validateDocking()}else this.emitBubblingEvent("stateChanged")}},{key:"undisplayChild",value:function(e){var t,i=e.config[this._dimension],o=Object(f.g)(e,this.contentItems),s=n(o-1,0);if(-1===o)throw new Error("Can't undisplay child. ContentItem is not child of this Row or Column");this._splitter[s]&&this._splitter[s].element.hide(),s<this._splitter.length&&this._isDocked(s)&&this._splitter[s].element.hide();var r=this._isDocked();for(t=0;t<this.contentItems.length;t++)this.contentItems[t]===e?this.contentItems[t].config[this._dimension]=0:this._isDocked(t)||(this.contentItems[t].config[this._dimension]+=i/(this.contentItems.length-1-r));1===this.contentItems.length&&a.a.prototype.undisplayChild.call(this,e),this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged")}},{key:"removeChild",value:function(e,t){var i,o,s=e.config[this._dimension],r=Object(f.g)(e,this.contentItems),l=n(r-1,0);if(-1===r)throw new Error("Can't remove child. ContentItem is not child of this Row or Column");this._splitter[l]&&(this._splitter[l]._$destroy(),this._splitter.splice(l,1)),l<this._splitter.length&&this._isDocked(l)&&this._splitter[l].element.hide();var c=this._isDocked();for(i=0;i<this.contentItems.length;i++)this.contentItems[i]!==e&&(this._isDocked(i)||(this.contentItems[i].config[this._dimension]+=s/(this.contentItems.length-1-c)));a.a.prototype.removeChild.call(this,e,t),1===this.contentItems.length&&!0===this.config.isClosable?(o=this.contentItems[0],this.contentItems=[],this.parent.replaceChild(this,o,!0),this._validateDocking(this.parent)):(this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged"),this._validateDocking())}},{key:"replaceChild",value:function(e,t){var n=e.config[this._dimension];a.a.prototype.replaceChild.call(this,e,t),t.config[this._dimension]=n,this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged")}},{key:"setSize",value:function(){0<this.contentItems.length&&(this._calculateRelativeSizes(),this._setAbsoluteSizes()),this.emitBubblingEvent("stateChanged"),this.emit("resize")}},{key:"dock",value:function(e,t,i){if(1===this.contentItems.length)throw new Error("Can't dock child when it single");var o=e.config[this._dimension],s=this.layoutManager.config.dimensions.headerHeight,r=Object(f.g)(e,this.contentItems),a=n(r-1,0);if(-1===r)throw new Error("Can't dock child. ContentItem is not child of this Row or Column");var l,c=e._docker&&e._docker.docked;if(void 0===t||t!=c){if(c){for(this._splitter[a].element.show(),l=0;l<this.contentItems.length;l++){var h=e._docker.size;this.contentItems[l]===e?e.config[this._dimension]=h:(itemSize=this.contentItems[l].config[this._dimension]*=(100-h)/100,this.contentItems[l].config[this._dimension]=itemSize)}e._docker={docked:!1}}else{if(2>this.contentItems.length-this._isDocked())throw new Error("Can't dock child when it is last in "+this.config.type);var u={column:{first:"top",last:"bottom"},row:{first:"left",last:"right"}}[this.config.type][r?"last":"first"];e.header.position()!=u&&e.header.position(u),this._splitter[a]&&this._splitter[a].element.hide();var d=this._isDocked();for(l=0;l<this.contentItems.length;l++)this.contentItems[l]===e?this.contentItems[l].config[this._dimension]=0:this._isDocked(l)||(this.contentItems[l].config[this._dimension]+=o/(this.contentItems.length-1-d));e._docker={dimension:this._dimension,size:o,realSize:e.element[this._dimension]()-s,docked:!0},i&&e.childElementContainer[this._dimension](0)}e.element.toggleClass("lm_docked",e._docker.docked),this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged"),this._validateDocking()}}},{key:"_$init",value:function(){if(!0!==this.isInitialised){var e;for(a.a.prototype._$init.call(this),e=0;e<this.contentItems.length-1;e++)this.contentItems[e].element.after(this._createSplitter(e).element);for(e=0;e<this.contentItems.length;e++)this.contentItems[e]._header&&this.contentItems[e]._header.docked&&this.dock(this.contentItems[e],!0,!0)}}},{key:"_setAbsoluteSizes",value:function(){var e,t=this._calculateAbsoluteSizes();for(e=0;e<this.contentItems.length;e++)0<t.additionalPixel-e&&t.itemSizes[e]++,this._isColumn?(this.contentItems[e].element.width(t.totalWidth),this.contentItems[e].element.height(t.itemSizes[e])):(this.contentItems[e].element.width(t.itemSizes[e]),this.contentItems[e].element.height(t.totalHeight))}},{key:"_calculateAbsoluteSizes",value:function(){var e,n,i=(this.contentItems.length-1)*this._splitterSize,o=this.layoutManager.config.dimensions.headerHeight,s=this.element.width(),r=this.element.height(),a=0,l=[];for(this._isColumn?r-=i:s-=i,e=0;e<this.contentItems.length;e++)this._isDocked(e)&&(this._isColumn?r-=o-this._splitterSize:s-=o-this._splitterSize);for(e=0;e<this.contentItems.length;e++)n=this._isColumn?t(r*(this.contentItems[e].config.height/100)):t(s*(this.contentItems[e].config.width/100)),this._isDocked(e)&&(n=o),a+=n,l.push(n);return{itemSizes:l,additionalPixel:t((this._isColumn?r:s)-a),totalWidth:s,totalHeight:r}}},{key:"_calculateRelativeSizes",value:function(){var e,t=0,n=[],i=this._isColumn?"height":"width";for(e=0;e<this.contentItems.length;e++)void 0===this.contentItems[e].config[i]?n.push(this.contentItems[e]):t+=this.contentItems[e].config[i];if(100!==s(t))if(100>s(t)&&0<n.length){for(e=0;e<n.length;e++)n[e].config[i]=(100-t)/n.length;this._respectMinItemWidth()}else{if(100<s(t))for(e=0;e<n.length;e++)n[e].config[i]=50,t+=50;for(e=0;e<this.contentItems.length;e++)this.contentItems[e].config[i]=this.contentItems[e].config[i]/t*100;this._respectMinItemWidth()}else this._respectMinItemWidth()}},{key:"_respectMinItemWidth",value:function(){var e,t,n,i=this.layoutManager.config.dimensions&&this.layoutManager.config.dimensions.minItemWidth||0,o=null,r=[],a=0,l=0,c=0,h=0,u=[];if(!(this._isColumn||!i||1>=this.contentItems.length)){o=this._calculateAbsoluteSizes();for(var d=0;d<this.contentItems.length;d++)this.contentItems[d],(h=o.itemSizes[d])<i?(l+=i-h,n={width:i}):(a+=h-i,n={width:h},r.push(n)),u.push(n);if(!(0==l||l>a)){for(e=l/a,c=l,d=0;d<r.length;d++)n=r[d],c-=t=s((n.width-i)*e),n.width-=t;for(0!==c&&(u[u.length-1].width-=c),d=0;d<this.contentItems.length;d++)this.contentItems[d].config.width=u[d].width/o.totalWidth*100}}}},{key:"_createSplitter",value:function(e){var t;return(t=new d.a(this._isColumn,this._splitterSize,this._splitterGrabSize)).on("drag",Object(f.c)(this._onSplitterDrag,this,[t]),this),t.on("dragStop",Object(f.c)(this._onSplitterDragStop,this,[t]),this),t.on("dragStart",Object(f.c)(this._onSplitterDragStart,this,[t]),this),this._splitter.splice(e,0,t),t}},{key:"_getItemsForSplitter",value:function(e){var t=Object(f.g)(e,this._splitter);return{before:this.contentItems[t],after:this.contentItems[t+1]}}},{key:"_isDocked",value:function(e){if(void 0===e){for(var t=0,n=0;n<this.contentItems.length;++n)this._isDocked(n)&&t++;return t}return e<this.contentItems.length?this.contentItems[e]._docker&&this.contentItems[e]._docker.docked:void 0}},{key:"_validateDocking",value:function(e){for(var t=1<(e=e||this).contentItems.length-e._isDocked(),n=0;n<e.contentItems.length;++n)e.contentItems[n]instanceof u.a&&(e.contentItems[n].header._setDockable(e._isDocked(n)||t),e.contentItems[n].header._$setClosable(t))}},{key:"_getMinimumDimensions",value:function(e){for(var t=0,i=0,o=0;o<e.length;++o)t=n(e[o].minWidth||0,t),i=n(e[o].minHeight||0,i);return{horizontal:t,vertical:i}}},{key:"_onSplitterDragStart",value:function(e){var t=this._getItemsForSplitter(e),n=this.layoutManager.config.dimensions[this._isColumn?"minItemHeight":"minItemWidth"],i=this._getMinimumDimensions(t.before.config.content),o=this._isColumn?i.vertical:i.horizontal,s=this._getMinimumDimensions(t.after.config.content),r=this._isColumn?s.vertical:s.horizontal;this._splitterPosition=0,this._splitterMinPosition=-1*(t.before.element[this._dimension]()-(o||n)),this._splitterMaxPosition=t.after.element[this._dimension]()-(r||n)}},{key:"_onSplitterDrag",value:function(e,t,n){var i=this._isColumn?n:t;i>this._splitterMinPosition&&i<this._splitterMaxPosition&&(this._splitterPosition=i,e.element.css(this._isColumn?"top":"left",i))}},{key:"_onSplitterDragStop",value:function(e){var t=this._getItemsForSplitter(e),n=t.before.element[this._dimension](),i=t.after.element[this._dimension](),o=(this._splitterPosition+n)/(n+i),s=t.before.config[this._dimension]+t.after.config[this._dimension];t.before.config[this._dimension]=o*s,t.after.config[this._dimension]=(1-o)*s,e.element.css({top:0,left:0}),Object(f.a)(Object(f.c)(this.callDownwards,this,["setSize"]))}}]),i}();i.a=m},function(e,t,n){var i=n(1),o=n(0),s=function(e){function t(e,n){var i;return h(this,t),(i=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)))._timeout=null,i._eElement=$(e),i._oDocument=$(document),i._eBody=$(document.body),i._nButtonCode=n||0,i._nDelay=200,i._nDistance=10,i._nX=0,i._nY=0,i._nOriginalX=0,i._nOriginalY=0,i._bDragging=!1,i._fMove=Object(o.c)(i.onMouseMove,i),i._fUp=Object(o.c)(i.onMouseUp,i),i._fDown=Object(o.c)(i.onMouseDown,i),i._eElement.on("mousedown touchstart",i._fDown),i}return c(t,i.b),r(t,[{key:"destroy",value:function(){this._eElement.unbind("mousedown touchstart",this._fDown),this._oDocument.unbind("mouseup touchend",this._fUp),this._eElement=null,this._oDocument=null,this._eBody=null}},{key:"onMouseDown",value:function(e){if(e.preventDefault(),0==e.button||"touchstart"===e.type){var t=this._getCoordinates(e);this._nOriginalX=t.x,this._nOriginalY=t.y,this._oDocument.on("mousemove touchmove",this._fMove),this._oDocument.one("mouseup touchend",this._fUp),this._timeout=setTimeout(Object(o.c)(this._startDrag,this),this._nDelay)}}},{key:"onMouseMove",value:function(e){var t=Math.abs;if(null!=this._timeout){e.preventDefault();var n=this._getCoordinates(e);this._nX=n.x-this._nOriginalX,this._nY=n.y-this._nOriginalY,!1===this._bDragging&&(t(this._nX)>this._nDistance||t(this._nY)>this._nDistance)&&(clearTimeout(this._timeout),this._startDrag()),this._bDragging&&this.emit("drag",this._nX,this._nY,e)}}},{key:"onMouseUp",value:function(e){null!=this._timeout&&(clearTimeout(this._timeout),this._eBody.removeClass("lm_dragging"),this._eElement.removeClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events",""),this._oDocument.unbind("mousemove touchmove",this._fMove),this._oDocument.unbind("mouseup touchend",this._fUp),!0===this._bDragging&&(this._bDragging=!1,this.emit("dragStop",e,this._nOriginalX+this._nX)))}},{key:"_startDrag",value:function(){this._bDragging=!0,this._eBody.addClass("lm_dragging"),this._eElement.addClass("lm_dragging"),this._oDocument.find("iframe").css("pointer-events","none"),this.emit("dragStart",this._nOriginalX,this._nOriginalY)}},{key:"_getCoordinates",value:function(e){return{x:(e=Object(o.e)(e)).pageX,y:e.pageY}}}]),t}();t.a=s},function(e,t,n){var i=n(9);e.exports=function(e){if(!i(e))throw TypeError(e+" is not an object!");return e}},function(e){e.exports=function(e){return"object"==(void 0===e?"undefined":a(e))?null!==e:"function"==typeof e}},function(e){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var i=n(0);t.a=function(){function e(){if(h(this,e),this._keys=["settings","hasHeaders","constrainDragToContainer","selectionEnabled","dimensions","borderWidth","minItemHeight","minItemWidth","headerHeight","dragProxyWidth","dragProxyHeight","labels","close","maximise","minimise","popout","content","componentName","componentState","id","width","type","height","isClosable","title","popoutWholeStack","openPopouts","parentId","activeItemIndex","reorderEnabled","borderGrabWidth"],36<this._keys.length)throw new Error("Too many keys in config minifier map");this._values=[!0,!1,"row","column","stack","component","close","maximise","minimise","open in new window"]}return r(e,[{key:"minifyConfig",value:function(e){var t={};return this._nextLevel(e,t,"_min"),t}},{key:"unminifyConfig",value:function(e){var t={};return this._nextLevel(e,t,"_max"),t}},{key:"_nextLevel",value:function(e,t,n){var i,o;for(i in e)e instanceof Array&&(i=parseInt(i,10)),e.hasOwnProperty(i)&&(o=this[n](i,this._keys),"object"==a(e[i])?(t[o]=e[i]instanceof Array?[]:{},this._nextLevel(e[i],t[o],n)):t[o]=this[n](e[i],this._values))}},{key:"_min",value:function(e,t){if("string"==typeof e&&1===e.length)return"___"+e;var n=Object(i.g)(e,t);return-1===n?e:n.toString(36)}},{key:"_max",value:function(e,t){return"string"==typeof e&&1===e.length?t[parseInt(e,36)]:"string"==typeof e&&"___"===e.substr(0,3)?e[3]:e}}]),e}()},function(e,t,n){var i=n(3),o=n(6),s=function(e){function t(e,n,i){var o;return h(this,t),(o=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,null))).isRoot=!0,o.type="root",o.element=$('<div class="lm_goldenlayout lm_item lm_root"></div>'),o.childElementContainer=o.element,o._containerElement=i,o._containerElement.append(o.element),o}return c(t,i.a),r(t,[{key:"addChild",value:function(e){if(0<this.contentItems.length)throw new Error("Root node can only have a single child");e=this.layoutManager._$normalizeContentItem(e,this),this.childElementContainer.append(e.element),i.a.prototype.addChild.call(this,e),this.callDownwards("setSize"),this.emitBubblingEvent("stateChanged")}},{key:"setSize",value:function(e,t){e=void 0===e?this._containerElement.width():e,t=void 0===t?this._containerElement.height():t,this.element.width(e),this.element.height(t),this.contentItems[0]&&(this.contentItems[0].element.width(e),this.contentItems[0].element.height(t))}},{key:"_$highlightDropZone",value:function(){this.layoutManager.tabDropPlaceholder.remove(),i.a.prototype._$highlightDropZone.apply(this,arguments)}},{key:"_$onDrop",value:function(e,t){var n;if(e.isComponent&&((n=this.layoutManager.createContentItem({type:"stack",header:e.config.header||{}},this))._$init(),n.addChild(e),e=n),this.contentItems.length){("row"===e.config.type||"column"===e.config.type)&&((n=this.layoutManager.createContentItem({type:"stack"},this)).addChild(e),e=n);var i="x"==t.side[0]?"row":"column",s="x"==t.side[0]?"width":"height",r="2"==t.side[1],a=this.contentItems[0];if(a instanceof o.a&&a.type==i){var l=a.contentItems[r?0:a.contentItems.length-1];a.addChild(e,r?0:void 0,!0),l.config[s]*=.5,e.config[s]=l.config[s],a.callDownwards("setSize")}else{var c=this.layoutManager.createContentItem({type:i},this);this.replaceChild(a,c),c.addChild(e,r?0:void 0,!0),c.addChild(a,r?void 0:0,!0),a.config[s]=50,e.config[s]=50,c.callDownwards("setSize")}}else this.addChild(e)}}]),t}();t.a=s},function(t,i,o){var s=o(3),a=o(6),u=o(28),d=o(0),f=function(t){function i(e,t,n){var o;h(this,i),(o=l(this,(i.__proto__||Object.getPrototypeOf(i)).call(this,e,t,n))).element=$('<div class="lm_item lm_stack"></div>'),o._activeContentItem=null;var s=e.config;return o._header={show:!0===s.settings.hasHeaders&&!1!==t.hasHeaders,popout:s.settings.showPopoutIcon&&s.labels.popout,maximise:s.settings.showMaximiseIcon&&s.labels.maximise,close:s.settings.showCloseIcon&&s.labels.close,minimise:s.labels.minimise},s.header&&Object(d.b)(o._header,s.header),t.header&&Object(d.b)(o._header,t.header),t.content&&t.content[0]&&t.content[0].header&&Object(d.b)(o._header,t.content[0].header),o._dropZones={},o._dropSegment=null,o._contentAreaDimensions=null,o._dropIndex=null,o.isStack=!0,o.childElementContainer=$('<div class="lm_items"></div>'),o.header=new u.a(e,o),o.element.on("mouseleave mouseenter",Object(d.c)(function(e){this._docker&&this._docker.docked&&this.childElementContainer[this._docker.dimension]("mouseenter"==e.type?this._docker.realSize:0)},o)),o.element.append(o.header.element),o.element.append(o.childElementContainer),o._setupHeaderPosition(),o._$validateClosability(),o}return c(i,s.a),r(i,[{key:"dock",value:function(e){this._header.dock&&this.parent instanceof a.a&&this.parent.dock(this,e)}},{key:"setSize",value:function(){if("none"!==this.element.css("display")){var e=this._docker&&this._docker.docked,t={width:this.element.width(),height:this.element.height()};this._header.show&&(t[this._sided?"width":"height"]-=this.layoutManager.config.dimensions.headerHeight),e&&(t[this._docker.dimension]=this._docker.realSize),e&&"height"!=this._docker.dimension||this.childElementContainer.width(t.width),e&&"width"!=this._docker.dimension||this.childElementContainer.height(t.height);for(var n=0;n<this.contentItems.length;n++)this.contentItems[n].element.width(t.width),this.contentItems[n].element.height(t.height);this.emit("resize"),this.emitBubblingEvent("stateChanged")}}},{key:"_$init",value:function(){var e,t;if(!0!==this.isInitialised){for(s.a.prototype._$init.call(this),e=0;e<this.contentItems.length;e++)this.header.createTab(this.contentItems[e]),this.contentItems[e]._$hide();if(0<this.contentItems.length){if(!(t=this.contentItems[this.config.activeItemIndex||0]))throw new Error("Configured activeItemIndex out of bounds");this.setActiveContentItem(t)}}}},{key:"setActiveContentItem",value:function(e){if(-1===Object(d.g)(e,this.contentItems))throw new Error("contentItem is not a child of this stack");null!==this._activeContentItem&&this._activeContentItem._$hide(),this._activeContentItem=e,this.header.setActiveContentItem(e),e._$show(),this.emit("activeContentItemChanged",e),this.layoutManager.emit("activeContentItemChanged",e),this.emitBubblingEvent("stateChanged")}},{key:"getActiveContentItem",value:function(){return this.header.activeContentItem}},{key:"addChild",value:function(e,t){t>this.contentItems.length&&(t-=1),e=this.layoutManager._$normalizeContentItem(e,this),s.a.prototype.addChild.call(this,e,t),this.childElementContainer.append(e.element),this.header.createTab(e,t),this.setActiveContentItem(e),this.callDownwards("setSize"),this._$validateClosability(),this.parent instanceof a.a&&this.parent._validateDocking(),this.emitBubblingEvent("stateChanged")}},{key:"removeChild",value:function(e,t){var i=Object(d.g)(e,this.contentItems);s.a.prototype.removeChild.call(this,e,t),this.header.removeTab(e),this.header.activeContentItem===e&&(0<this.contentItems.length?this.setActiveContentItem(this.contentItems[n(i-1,0)]):this._activeContentItem=null),this._$validateClosability(),this.parent instanceof a.a&&this.parent._validateDocking(),this.emitBubblingEvent("stateChanged")}},{key:"undisplayChild",value:function(e){if(1<this.contentItems.length){var t=Object(d.g)(e,this.contentItems);e._$hide&&e._$hide(),this.setActiveContentItem(this.contentItems[0===t?t+1:t-1])}else this.header.hideTab(e),e._$hide&&e._$hide(),s.a.prototype.undisplayChild.call(this,e),this.parent instanceof a.a&&this.parent._validateDocking();this.emitBubblingEvent("stateChanged")}},{key:"_$validateClosability",value:function(){var e,t,n;for(e=this.header._isClosable(),n=0,t=this.contentItems.length;n<t&&e;n++)e=this.contentItems[n].config.isClosable;this.header._$setClosable(e)}},{key:"_$destroy",value:function(){s.a.prototype._$destroy.call(this),this.header._$destroy(),this.element.off("mouseenter mouseleave")}},{key:"_$onDrop",value:function(e){if("header"===this._dropSegment)return this._resetHeaderDropZone(),void this.addChild(e,this._dropIndex);if("body"!==this._dropSegment){var t,n,i,o="top"===this._dropSegment||"bottom"===this._dropSegment,s="left"===this._dropSegment||"right"===this._dropSegment,r="top"===this._dropSegment||"left"===this._dropSegment,a=o&&this.parent.isColumn||s&&this.parent.isRow,l=o?"column":"row",c=o?"height":"width";e.isComponent&&((n=this.layoutManager.createContentItem({type:"stack",header:e.config.header||{}},this))._$init(),n.addChild(e),e=n),("row"===e.config.type||"column"===e.config.type)&&((n=this.layoutManager.createContentItem({type:"stack"},this)).addChild(e),e=n),a?(t=Object(d.g)(this,this.parent.contentItems),this.parent.addChild(e,r?t:t+1,!0),this.config[c]*=.5,e.config[c]=this.config[c],this.parent.callDownwards("setSize")):(l=o?"column":"row",i=this.layoutManager.createContentItem({type:l},this),this.parent.replaceChild(this,i),i.addChild(e,r?0:void 0,!0),i.addChild(this,r?void 0:0,!0),this.config[c]=50,e.config[c]=50,i.callDownwards("setSize")),this.parent._validateDocking()}else this.addChild(e)}},{key:"_$highlightDropZone",value:function(e,t){var n,i;for(n in this._contentAreaDimensions)if((i=this._contentAreaDimensions[n].hoverArea).x1<e&&i.x2>e&&i.y1<t&&i.y2>t)return void("header"===n?(this._dropSegment="header",this._highlightHeaderDropZone(this._sided?t:e)):(this._resetHeaderDropZone(),this._highlightBodyDropZone(n)))}},{key:"_$getArea",value:function(){if("none"===this.element.css("display"))return null;var e=s.a.prototype._$getArea,t=e.call(this,this.header.element),n=e.call(this,this.childElementContainer),i=n.x2-n.x1,o=n.y2-n.y1;return this._contentAreaDimensions={header:{hoverArea:{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2},highlightArea:{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}}},this._activeContentItem&&!1===this._activeContentItem.isComponent?t:0===this.contentItems.length?(this._contentAreaDimensions.body={hoverArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2}},e.call(this,this.element)):(this._contentAreaDimensions.left={hoverArea:{x1:n.x1,y1:n.y1,x2:n.x1+.25*i,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x1+.5*i,y2:n.y2}},this._contentAreaDimensions.top={hoverArea:{x1:n.x1+.25*i,y1:n.y1,x2:n.x1+.75*i,y2:n.y1+.5*o},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y1+.5*o}},this._contentAreaDimensions.right={hoverArea:{x1:n.x1+.75*i,y1:n.y1,x2:n.x2,y2:n.y2},highlightArea:{x1:n.x1+.5*i,y1:n.y1,x2:n.x2,y2:n.y2}},this._contentAreaDimensions.bottom={hoverArea:{x1:n.x1+.25*i,y1:n.y1+.5*o,x2:n.x1+.75*i,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1+.5*o,x2:n.x2,y2:n.y2}},e.call(this,this.element))}},{key:"_highlightHeaderDropZone",value:function(t){var n,i,o,s,r,a,l,c,h=this.header.tabs.length,u=!1;if(0===h)return l=this.header.element.offset(),void this.layoutManager.dropTargetIndicator.highlightArea({x1:l.left,x2:l.left+100,y1:l.top+this.header.element.height()-20,y2:l.top+this.header.element.height()});for(n=0;n<h;n++)if(r=(i=this.header.tabs[n].element).offset(),this._sided?(s=r.top,o=r.left,c=i.height()):(s=r.left,o=r.top,c=i.width()),t>s&&t<s+c){u=!0;break}if(!(0==u&&t<s)){if(t<s+c/2?(this._dropIndex=n,i.before(this.layoutManager.tabDropPlaceholder)):(this._dropIndex=e(n+1,h),i.after(this.layoutManager.tabDropPlaceholder)),this._sided){var d=this.layoutManager.tabDropPlaceholder.offset().top;return void this.layoutManager.dropTargetIndicator.highlightArea({x1:o,x2:o+i.innerHeight(),y1:d,y2:d+this.layoutManager.tabDropPlaceholder.width()})}a=this.layoutManager.tabDropPlaceholder.offset().left,this.layoutManager.dropTargetIndicator.highlightArea({x1:a,x2:a+this.layoutManager.tabDropPlaceholder.width(),y1:o,y2:o+i.innerHeight()})}}},{key:"_resetHeaderDropZone",value:function(){this.layoutManager.tabDropPlaceholder.remove()}},{key:"toggleMaximise",value:function(e){this.isMaximised||this.dock(!1),s.a.prototype.toggleMaximise.call(this,e)}},{key:"_setupHeaderPosition",value:function(){var e=0<=["right","left","bottom"].indexOf(this._header.show)&&this._header.show;if(this.header.element.toggle(!!this._header.show),this._side=e,this._sided=0<=["right","left"].indexOf(this._side),this.element.removeClass("lm_left lm_right lm_bottom"),this._side&&this.element.addClass("lm_"+this._side),this.element.find(".lm_header").length&&this.childElementContainer){var t=0<=["right","bottom"].indexOf(this._side)?"before":"after";this.header.element[t](this.childElementContainer),this.callDownwards("setSize")}}},{key:"_highlightBodyDropZone",value:function(e){var t=this._contentAreaDimensions[e].highlightArea;this.layoutManager.dropTargetIndicator.highlightArea(t),this._dropSegment=e}}]),i}();i.a=f},function(e){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var i=n(44),o=n(20);e.exports=Object.keys||function(e){return i(e,o)}},function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},function(e,t,n){var i=n(45),o=n(14);e.exports=function(e){return i(o(e))}},function(e){var n=Math.ceil;e.exports=function(e){return isNaN(e=+e)?0:(0<e?t:n)(e)}},function(e,t,n){var i=n(50)("keys"),o=n(52);e.exports=function(e){return i[e]||(i[e]=o(e))}},function(e){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,n){var i=n(4),o=n(2),s=n(54),r=n(56),a=n(16),l="prototype",c=function e(t,n,c){var h,u,d,f=t&e.F,m=t&e.G,p=t&e.S,g=t&e.P,y=t&e.B,v=t&e.W,_=m?o:o[n]||(o[n]={}),b=_[l],w=m?i:p?i[n]:(i[n]||{})[l];for(h in m&&(c=n),c)(u=!f&&w&&void 0!==w[h])&&a(_,h)||(d=u?w[h]:c[h],_[h]=m&&"function"!=typeof w[h]?c[h]:y&&u?s(d,i):v&&w[h]==d?function(e){var t=function(t,n,i){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,i)}return e.apply(this,arguments)};return t[l]=e[l],t}(d):g&&"function"==typeof d?s(Function.call,d):d,g&&((_.virtual||(_.virtual={}))[h]=d,t&e.R&&b&&!b[h]&&r(b,h,d)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var i=n(8),o=n(57),s=n(58),r=Object.defineProperty;t.f=n(5)?Object.defineProperty:function(e,t,n){if(i(e),t=s(t,!0),i(n),o)try{return r(e,t,n)}catch(t){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var i=n(9),o=n(4).document,s=i(o)&&i(o.createElement);e.exports=function(e){return s?o.createElement(e):{}}},function(e,t){t.a=function(){function e(t,n){h(this,e),this._reactComponent=null,this._originalComponentWillUpdate=null,this._container=t,this._initialState=n,this._reactClass=this._getReactClass(),this._container.on("open",this._render,this),this._container.on("destroy",this._destroy,this)}return r(e,[{key:"_render",value:function(){this._reactComponent=ReactDOM.render(this._getReactComponent(),this._container.getElement()[0]),this._originalComponentWillUpdate=this._reactComponent.componentWillUpdate||function(){},this._reactComponent.componentWillUpdate=this._onUpdate.bind(this),this._container.getState()&&this._reactComponent.setState(this._container.getState())}},{key:"_destroy",value:function(){ReactDOM.unmountComponentAtNode(this._container.getElement()[0]),this._container.off("open",this._render,this),this._container.off("destroy",this._destroy,this)}},{key:"_onUpdate",value:function(e,t){this._container.setState(t),this._originalComponentWillUpdate.call(this._reactComponent,e,t)}},{key:"_getReactClass",value:function(){var e,t=this._container._config.component;if(!t)throw new Error("No react component name. type: react-component needs a field `component`");if(!(e=this._container.layoutManager.getComponent(t)))throw new Error('React component "'+t+'" not found. Please register all components with GoldenLayout using `registerComponent(name, component)`');return e}},{key:"_getReactComponent",value:function(){var e={glEventHub:this._container.layoutManager.eventHub,glContainer:this._container},t=$.extend(e,this._container._config.props);return React.createElement(this._reactClass,t)}}]),e}()},function(e,t,n){var i=n(1),o=n(0),s=function(e){function t(e){var n;return h(this,t),(n=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)))._layoutManager=e,n._dontPropagateToParent=null,n._childEventSource=null,n.on(i.a,Object(o.c)(n._onEventFromThis,n)),n._boundOnEventFromChild=Object(o.c)(n._onEventFromChild,n),$(window).on("gl_child_event",n._boundOnEventFromChild),n}return c(t,i.b),r(t,[{key:"_onEventFromThis",value:function(){var e=Array.prototype.slice.call(arguments);this._layoutManager.isSubWindow&&e[0]!==this._dontPropagateToParent&&this._propagateToParent(e),this._propagateToChildren(e),this._dontPropagateToParent=null,this._childEventSource=null}},{key:"_$onEventFromParent",value:function(e){this._dontPropagateToParent=e[0],this.emit.apply(this,e)}},{key:"_onEventFromChild",value:function(e){this._childEventSource=e.originalEvent.__gl,this.emit.apply(this,e.originalEvent.__glArgs)}},{key:"_propagateToParent",value:function(e){var t,n="gl_child_event";document.createEvent?(t=window.opener.document.createEvent("HTMLEvents")).initEvent(n,!0,!0):(t=window.opener.document.createEventObject()).eventType=n,t.eventName=n,t.__glArgs=e,t.__gl=this._layoutManager,document.createEvent?window.opener.dispatchEvent(t):window.opener.fireEvent("on"+t.eventType,t)}},{key:"_propagateToChildren",value:function(e){var t,n;for(n=0;n<this._layoutManager.openPopouts.length;n++)(t=this._layoutManager.openPopouts[n].getGlInstance())&&t!==this._childEventSource&&t.eventHub._$onEventFromParent(e)}},{key:"destroy",value:function(){$(window).off("gl_child_event",this._boundOnEventFromChild)}}]),t}();t.a=s},function(e,t){t.a=function(){function e(t,n){h(this,e),this.name=t,this.origin=n,this.isPropagationStopped=!1}return r(e,[{key:"stopPropagation",value:function(){this.isPropagationStopped=!0}}]),e}()},function(e,t){var n=function(e){function t(e,n){var i;return h(this,t),(i=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this))).name="Configuration Error",i.message=e,i.node=n,i}return c(t,Error),t}();t.a=n},function(e,t,n){var i=n(1),o=n(29),s=n(31),a=n(0),u=function(e){function t(e,n){var i;return h(this,t),(i=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this))).layoutManager=e,i.element=$('<div class="lm_header"><ul class="lm_tabs"></ul><ul class="lm_controls"></ul><ul class="lm_tabdropdown_list"></ul></div>'),!0===i.layoutManager.config.settings.selectionEnabled&&(i.element.addClass("lm_selectable"),i.element.on("click touchstart",Object(a.c)(i._onHeaderClick,i))),i.tabsContainer=i.element.find(".lm_tabs"),i.tabDropdownContainer=i.element.find(".lm_tabdropdown_list"),i.tabDropdownContainer.hide(),i.controlsContainer=i.element.find(".lm_controls"),i.parent=n,i.parent.on("resize",i._updateTabSizes,i),i.tabs=[],i.tabsMarkedForRemoval=[],i.activeContentItem=null,i.closeButton=null,i.dockButton=null,i.tabDropdownButton=null,i.hideAdditionalTabsDropdown=Object(a.c)(i._hideAdditionalTabsDropdown,i),$(document).mouseup(i.hideAdditionalTabsDropdown),i._lastVisibleTabIndex=-1,i._tabControlOffset=i.layoutManager.config.settings.tabControlOffset,i._createControls(),i}return c(t,i.b),r(t,[{key:"createTab",value:function(e,t){var n,i;for(i=0;i<this.tabs.length;i++)if(this.tabs[i].contentItem===e)return;return n=new o.a(this,e),0===this.tabs.length?(this.tabs.push(n),void this.tabsContainer.append(n.element)):(void 0===t&&(t=this.tabs.length),0<t?this.tabs[t-1].element.after(n.element):this.tabs[0].element.before(n.element),this.tabs.splice(t,0,n),void this._updateTabSizes())}},{key:"removeTab",value:function(e){for(var t=0;t<this.tabs.length;t++)if(this.tabs[t].contentItem===e)return this.tabs[t]._$destroy(),void this.tabs.splice(t,1);for(t=0;t<this.tabsMarkedForRemoval.length;t++)if(this.tabsMarkedForRemoval[t].contentItem===e)return this.tabsMarkedForRemoval[t]._$destroy(),void this.tabsMarkedForRemoval.splice(t,1);throw new Error("contentItem is not controlled by this header")}},{key:"hideTab",value:function(e){for(var t=0;t<this.tabs.length;t++)if(this.tabs[t].contentItem===e)return this.tabs[t].element.hide(),this.tabsMarkedForRemoval.push(this.tabs[t]),void this.tabs.splice(t,1);throw new Error("contentItem is not controlled by this header")}},{key:"setActiveContentItem",value:function(e){var t,n,i,o;for(t=0;t<this.tabs.length;t++)i=this.tabs[t].contentItem===e,this.tabs[t].setActive(i),!0===i&&(this.activeContentItem=e,this.parent.config.activeItemIndex=t);if(this.layoutManager.config.settings.reorderOnTabMenuClick&&-1!==this._lastVisibleTabIndex&&this.parent.config.activeItemIndex>this._lastVisibleTabIndex){for(o=this.tabs[this.parent.config.activeItemIndex],n=this.parent.config.activeItemIndex;0<n;n--)this.tabs[n]=this.tabs[n-1];this.tabs[0]=o,this.parent.config.activeItemIndex=0}this._updateTabSizes(),this.parent.emitBubblingEvent("stateChanged")}},{key:"position",value:function(e){var t=this.parent._header.show;if(this.parent._docker&&this.parent._docker.docked)throw new Error("Can't change header position in docked stack");return t&&!this.parent._side&&(t="top"),void 0!==e&&this.parent._header.show!=e&&(this.parent._header.show=e,this.parent._setupHeaderPosition()),t}},{key:"_$setClosable",value:function(e){return this._canDestroy=e||1<this.tabs.length,this.closeButton&&this._isClosable()&&(this.closeButton.element[e?"show":"hide"](),!0)}},{key:"_setDockable",value:function(e){return this.dockButton&&this.parent._header&&this.parent._header.dock&&(this.dockButton.element.toggle(!!e),!0)}},{key:"_$destroy",value:function(){this.emit("destroy",this);for(var e=0;e<this.tabs.length;e++)this.tabs[e]._$destroy();$(document).off("mouseup",this.hideAdditionalTabsDropdown),this.element.remove()}},{key:"_getHeaderSetting",value:function(e){if(e in this.parent._header)return this.parent._header[e]}},{key:"_createControls",value:function(){var e,t,n,i,o,r,l,c,h;if(h=Object(a.c)(this._showAdditionalTabsDropdown,this),c=this.layoutManager.config.labels.tabDropdown,this.tabDropdownButton=new s.a(this,c,"lm_tabdropdown",h),this.tabDropdownButton.element.hide(),this.parent._header&&this.parent._header.dock){var u=Object(a.c)(this.parent.dock,this.parent);n=this._getHeaderSetting("dock"),this.dockButton=new s.a(this,n,"lm_dock",u)}this._getHeaderSetting("popout")&&(t=Object(a.c)(this._onPopoutClick,this),n=this._getHeaderSetting("popout"),new s.a(this,n,"lm_popout",t)),this._getHeaderSetting("maximise")&&(r=Object(a.c)(this.parent.toggleMaximise,this.parent),i=this._getHeaderSetting("maximise"),o=this._getHeaderSetting("minimise"),l=new s.a(this,i,"lm_maximise",r),this.parent.on("maximised",function(){l.element.attr("title",o)}),this.parent.on("minimised",function(){l.element.attr("title",i)})),this._isClosable()&&(e=Object(a.c)(this.parent.remove,this.parent),n=this._getHeaderSetting("close"),this.closeButton=new s.a(this,n,"lm_close",e))}},{key:"_showAdditionalTabsDropdown",value:function(){this.tabDropdownContainer.show()}},{key:"_hideAdditionalTabsDropdown",value:function(){this.tabDropdownContainer.hide()}},{key:"_isClosable",value:function(){return this.parent.config.isClosable&&this.layoutManager.config.settings.showCloseIcon}},{key:"_onPopoutClick",value:function(){!0===this.layoutManager.config.settings.popoutWholeStack?this.parent.popout():this.activeContentItem.popout()}},{key:"_onHeaderClick",value:function(e){e.target===this.element[0]&&this.parent.select()}},{key:"_updateTabSizes",value:function(e){if(0!==this.tabs.length){this.tabDropdownButton.element.toggle(!0===e);var t=function(e){return e?"width":"height"};this.element.css(t(!this.parent._sided),""),this.element[t(this.parent._sided)](this.layoutManager.config.dimensions.headerHeight);var n,i,o,s,r=this.element.outerWidth()-this.controlsContainer.outerWidth()-this._tabControlOffset,a=0,l=0,c=0,h=this.layoutManager.config.settings.tabOverlapAllowance,u=!1,d=this.activeContentItem?this.tabs.indexOf(this.activeContentItem.tab):0,f=this.tabs[d];for(this.parent._sided&&(r=this.element.outerHeight()-this.controlsContainer.outerHeight()-this._tabControlOffset),this._lastVisibleTabIndex=-1,i=0;i<this.tabs.length;i++)if(n=this.tabs[i].element,this.tabsContainer.append(n),a+=n.outerWidth()+parseInt(n.css("margin-right"),10),(l=d<=i?a:a+f.element.outerWidth()+parseInt(f.element.css("margin-right"),10))>r){if(u)i===d&&(n.css({"z-index":"auto","margin-left":""}),this.tabsContainer.append(n));else if((c=0<d&&d<=i?(l-r)/(i-1):(l-r)/i)<h){for(o=0;o<=i;o++)s=o!==d&&0!==o?"-"+c+"px":"",this.tabs[o].element.css({"z-index":i-o,"margin-left":s});this._lastVisibleTabIndex=i,this.tabsContainer.append(n)}else u=!0;if(u&&i!==d){if(!e)return void this._updateTabSizes(!0);n.css({"z-index":"auto","margin-left":""}),this.tabDropdownContainer.append(n)}}else this._lastVisibleTabIndex=i,n.css({"z-index":"auto","margin-left":""}),this.tabsContainer.append(n)}}}]),t}();t.a=u},function(e,t,n){var i=n(7),o=n(30),s=n(0);t.a=function(){function e(t,n){h(this,e),this.header=t,this.contentItem=n,this.element=$('<li class="lm_tab"><i class="lm_left"></i><span class="lm_title"></span><div class="lm_close_tab"></div><i class="lm_right"></i></li>'),this.titleElement=this.element.find(".lm_title"),this.closeElement=this.element.find(".lm_close_tab"),this.closeElement[n.config.isClosable?"show":"hide"](),this.isActive=!1,this.setTitle(n.config.title),this.contentItem.on("titleChanged",this.setTitle,this),this._layoutManager=this.contentItem.layoutManager,!0===this._layoutManager.config.settings.reorderEnabled&&!0===n.config.reorderEnabled&&(this._dragListener=new i.a(this.element),this._dragListener.on("dragStart",this._onDragStart,this),this.contentItem.on("destroy",this._dragListener.destroy,this._dragListener)),this._onTabClickFn=Object(s.c)(this._onTabClick,this),this._onCloseClickFn=Object(s.c)(this._onCloseClick,this),this.element.on("mousedown touchstart",this._onTabClickFn),this.contentItem.config.isClosable?(this.closeElement.on("click touchstart",this._onCloseClickFn),this.closeElement.on("mousedown",this._onCloseMousedown)):this.closeElement.remove(),this.contentItem.tab=this,this.contentItem.emit("tab",this),this.contentItem.layoutManager.emit("tabCreated",this),this.contentItem.isComponent&&(this.contentItem.container.tab=this,this.contentItem.container.emit("tab",this))}return r(e,[{key:"setTitle",value:function(e){this.element.attr("title",Object(s.k)(e)),this.titleElement.html(e)}},{key:"setActive",value:function(e){e===this.isActive||(this.isActive=e,e?this.element.addClass("lm_active"):this.element.removeClass("lm_active"))}},{key:"_$destroy",value:function(){this.element.off("mousedown touchstart",this._onTabClickFn),this.closeElement.off("click touchstart",this._onCloseClickFn),this._dragListener&&(this.contentItem.off("destroy",this._dragListener.destroy,this._dragListener),this._dragListener.off("dragStart",this._onDragStart),this._dragListener=null),this.element.remove()}},{key:"_onDragStart",value:function(e,t){return this.header._canDestroy?(!0===this.contentItem.parent.isMaximised&&this.contentItem.parent.toggleMaximise(),void new o.a(e,t,this._dragListener,this._layoutManager,this.contentItem,this.header.parent)):null}},{key:"_onTabClick",value:function(e){if(0===e.button||"touchstart"===e.type){var t=this.header.parent.getActiveContentItem();this.contentItem!==t&&this.header.parent.setActiveContentItem(this.contentItem)}else 1===e.button&&this.contentItem.config.isClosable&&this._onCloseClick(e)}},{key:"_onCloseClick",value:function(e){e.stopPropagation(),this.header._canDestroy&&this.header.parent.removeChild(this.contentItem)}},{key:"_onCloseMousedown",value:function(e){e.stopPropagation()}}]),e}()},function(e,t,n){var i=n(1),o=n(0),s=function(e){function t(e,n,i,s,r,a){var c;h(this,t),(c=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this)))._dragListener=i,c._layoutManager=s,c._contentItem=r,c._originalParent=a,c._area=null,c._lastValidArea=null,c._dragListener.on("drag",c._onDrag,c),c._dragListener.on("dragStop",c._onDrop,c),c.element=$('<div class="lm_dragProxy"><div class="lm_header"><ul class="lm_tabs"><li class="lm_tab lm_active"><i class="lm_left"></i><span class="lm_title"></span><i class="lm_right"></i></li></ul></div><div class="lm_content"></div></div>'),a&&a._side&&(c._sided=a._sided,c.element.addClass("lm_"+a._side),0<=["right","bottom"].indexOf(a._side)&&c.element.find(".lm_content").after(c.element.find(".lm_header"))),c.element.css({left:e,top:n}),c.element.find(".lm_tab").attr("title",Object(o.k)(c._contentItem.config.title)),c.element.find(".lm_title").html(c._contentItem.config.title),c.childElementContainer=c.element.find(".lm_content"),c.childElementContainer.append(r.element),c._undisplayTree(),c._layoutManager._$calculateItemAreas(),c._setDimensions(),$(document.body).append(c.element);var u=c._layoutManager.container.offset();return c._minX=u.left,c._minY=u.top,c._maxX=c._layoutManager.container.width()+c._minX,c._maxY=c._layoutManager.container.height()+c._minY,c._width=c.element.width(),c._height=c.element.height(),c._setDropPosition(e,n),c}return c(t,i.b),r(t,[{key:"_onDrag",value:function(e,t,n){var i=(n=Object(o.e)(n)).pageX,s=n.pageY;(i>this._minX&&i<this._maxX&&s>this._minY&&s<this._maxY||!0!==this._layoutManager.config.settings.constrainDragToContainer)&&this._setDropPosition(i,s)}},{key:"_setDropPosition",value:function(e,t){this.element.css({left:e,top:t}),this._area=this._layoutManager._$getArea(e,t),null!==this._area&&(this._lastValidArea=this._area,this._area.contentItem._$highlightDropZone(e,t,this._area))}},{key:"_onDrop",value:function(){this._updateTree(),this._layoutManager.dropTargetIndicator.hide(),null===this._area?null===this._lastValidArea?this._originalParent?this._originalParent.addChild(this._contentItem):this._contentItem._$destroy():this._lastValidArea.contentItem._$onDrop(this._contentItem,this._lastValidArea):this._area.contentItem._$onDrop(this._contentItem,this._area),this.element.remove(),this._layoutManager.emit("itemDropped",this._contentItem)}},{key:"_undisplayTree",value:function(){this._contentItem.parent&&this._contentItem.parent.undisplayChild(this._contentItem)}},{key:"_updateTree",value:function(){this._contentItem.parent&&this._contentItem.parent.removeChild(this._contentItem,!0),this._contentItem._$setParent(this)}},{key:"_setDimensions",value:function(){var e=this._layoutManager.config.dimensions,t=e.dragProxyWidth,n=e.dragProxyHeight;this.element.width(t),this.element.height(n),t-=this._sided?e.headerHeight:0,n-=this._sided?0:e.headerHeight,this.childElementContainer.width(t),this.childElementContainer.height(n),this._contentItem.element.width(t),this._contentItem.element.height(n),this._contentItem.callDownwards("_$show"),this._contentItem.callDownwards("setSize")}}]),t}();t.a=s},function(e,t){t.a=function(){function e(t,n,i,o){h(this,e),this._header=t,this.element=$('<li class="'+i+'" title="'+n+'"></li>'),this._header.on("destroy",this._$destroy,this),this._action=o,this.element.on("click touchstart",this._action),this._header.controlsContainer.append(this.element)}return r(e,[{key:"_$destroy",value:function(){this.element.off(),this.element.remove()}}]),e}()},function(e,t,n){var i=n(3),o=n(33),s=function(e){function t(e,n,i){h(this,t);var s=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n,i)),r=e.getComponent(s.config.componentName),a=$.extend(!0,{},s.config.componentState||{});return a.componentName=s.config.componentName,s.componentName=s.config.componentName,""===s.config.title&&(s.config.title=s.config.componentName),s.isComponent=!0,s.container=new o.a(s.config,s,e),s.instance=new r(s.container,a),s.element=s.container._element,s}return c(t,i.a),r(t,[{key:"close",value:function(){this.parent.removeChild(this)}},{key:"setSize",value:function(){"none"!==this.element.css("display")&&this.container._$setSize(this.element.width(),this.element.height())}},{key:"_$init",value:function(){i.a.prototype._$init.call(this),this.container.emit("open")}},{key:"_$hide",value:function(){this.container.hide(),i.a.prototype._$hide.call(this)}},{key:"_$show",value:function(){this.container.show(),i.a.prototype._$show.call(this)}},{key:"_$shown",value:function(){this.container.shown(),i.a.prototype._$shown.call(this)}},{key:"_$destroy",value:function(){this.container.emit("destroy",this),i.a.prototype._$destroy.call(this)}},{key:"_$getArea",value:function(){return null}}]),t}();t.a=s},function(e,t,n){var i=n(1),o=function(e){function t(e,n,i){var o;return h(this,t),(o=l(this,(t.__proto__||Object.getPrototypeOf(t)).call(this))).width=null,o.height=null,o.title=e.componentName,o.parent=n,o.layoutManager=i,o.isHidden=!1,o._config=e,o._element=$('<div class="lm_item_container"><div class="lm_content"></div></div>'),o._contentElement=o._element.find(".lm_content"),o}return c(t,i.b),r(t,[{key:"getElement",value:function(){return this._contentElement}},{key:"hide",value:function(){this.emit("hide"),this.isHidden=!0,this._element.hide()}},{key:"show",value:function(){this.emit("show"),this.isHidden=!1,this._element.show(),(0!=this.height||0!=this.width)&&this.emit("shown")}},{key:"setSize",value:function(e,t){for(var n,i,o,s,r=this.parent,a=this;!r.isColumn&&!r.isRow;)if(a=r,(r=r.parent).isRoot)return!1;for(n=("height"===(i=r.isColumn?"height":"width")?t:e)/(this[i]*(1/(a.config[i]/100)))*100,o=(a.config[i]-n)/(r.contentItems.length-1),s=0;s<r.contentItems.length;s++)r.contentItems[s]===a?r.contentItems[s].config[i]=n:r.contentItems[s].config[i]+=o;return r.callDownwards("setSize"),!0}},{key:"close",value:function(){this._config.isClosable&&(this.emit("close"),this.parent.close())}},{key:"getState",value:function(){return this._config.componentState}},{key:"extendState",value:function(e){this.setState($.extend(!0,this.getState(),e))}},{key:"setState",value:function(e){this._config.componentState=e,this.parent.emitBubblingEvent("stateChanged")}},{key:"setTitle",value:function(e){this.parent.setTitle(e)}},{key:"_$setSize",value:function(e,t){(e!==this.width||t!==this.height)&&(this.width=e,this.height=t,$.zepto?this._contentElement.width(e):this._contentElement.outerWidth(e),$.zepto?this._contentElement.height(t):this._contentElement.outerHeight(t),this.emit("resize"))}}]),t}();t.a=o},function(e,n,i){var o=i(68),s=i.n(o),a=i(1),u=i(11),d=i(0),f=function(e){function n(e,t,i,o,s){var r;return h(this,n),(r=l(this,(n.__proto__||Object.getPrototypeOf(n)).call(this))).isInitialised=!1,r._config=e,r._dimensions=t,r._parentId=i,r._indexInParent=o,r._layoutManager=s,r._popoutWindow=null,r._id=null,r._createWindow(),r}return c(n,a.b),r(n,[{key:"toConfig",value:function(){if(!1===this.isInitialised)throw new Error("Can't create config, layout not yet initialised");return{dimensions:{width:this.getGlInstance().width,height:this.getGlInstance().height,left:this._popoutWindow.screenX||this._popoutWindow.screenLeft,top:this._popoutWindow.screenY||this._popoutWindow.screenTop},content:this.getGlInstance().toConfig().content,parentId:this._parentId,indexInParent:this._indexInParent}}},{key:"getGlInstance",value:function(){return this._popoutWindow.__glInstance}},{key:"getWindow",value:function(){return this._popoutWindow}},{key:"close",value:function(){if(this.getGlInstance())this.getGlInstance()._$closeWindow();else try{this.getWindow().close()}catch(e){}}},{key:"popIn",value:function(){var e,t;this._indexInParent;this._parentId&&(e=$.extend(!0,{},this.getGlInstance().toConfig()).content[0],!(t=this._layoutManager.root.getItemsById(this._parentId)[0])&&(t=0<this._layoutManager.root.contentItems.length?this._layoutManager.root.contentItems[0]:this._layoutManager.root)),t.addChild(e,this._indexInParent),this.close()}},{key:"_createWindow",value:function(){var e,n=this._createUrl(),i=t(1e6*Math.random()).toString(36),o=this._serializeWindowOptions({width:this._dimensions.width,height:this._dimensions.height,innerWidth:this._dimensions.width,innerHeight:this._dimensions.height,menubar:"no",toolbar:"no",location:"no",personalbar:"no",resizable:"yes",scrollbars:"no",status:"no"});if(this._popoutWindow=window.open(n,i,o),this._popoutWindow)$(this._popoutWindow).on("load",Object(d.c)(this._positionWindow,this)).on("unload beforeunload",Object(d.c)(this._onClose,this)),e=setInterval(Object(d.c)(function(){this._popoutWindow.__glInstance&&this._popoutWindow.__glInstance.isInitialised&&(this._onInitialised(),clearInterval(e))},this),10);else if(!0===this._layoutManager.config.settings.blockedPopoutsThrowError){var s=new Error("Popout blocked");throw s.type="popoutBlocked",s}}},{key:"_serializeWindowOptions",value:function(e){var t,n=[];for(t in e)n.push(t+"="+e[t]);return n.join(",")}},{key:"_createUrl",value:function(){var e,t={content:this._config},n="gl-window-config-"+Object(d.f)();t=(new u.a).minifyConfig(t);try{localStorage.setItem(n,s()(t))}catch(t){throw new Error("Error while writing to localStorage "+t.toString())}return 1===(e=document.location.href.split("?")).length?e[0]+"?gl-window="+n:document.location.href+"&gl-window="+n}},{key:"_positionWindow",value:function(){this._popoutWindow.moveTo(this._dimensions.left,this._dimensions.top),this._popoutWindow.focus()}},{key:"_onInitialised",value:function(){this.isInitialised=!0,this.getGlInstance().on("popIn",this.popIn,this),this.emit("initialised")}},{key:"_onClose",value:function(){setTimeout(Object(d.c)(this.emit,this,["closed"]),50)}}]),n}();n.a=f},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=n(36),o=(n.n(i),n(37)),s=(n.n(o),n(38)),r=(n.n(s),n(39));n.d(t,"default",function(){return r.a});var a=n(33);n.d(t,"ItemContainer",function(){return a.a});var l=n(34);n.d(t,"BrowserPopout",function(){return l.a});var c=n(28);n.d(t,"Header",function(){return c.a});var h=n(31);n.d(t,"HeaderButton",function(){return h.a});var u=n(29);n.d(t,"Tab",function(){return u.a});var d=n(32);n.d(t,"Component",function(){return d.a});var f=n(12);n.d(t,"Root",function(){return f.a});var m=n(6);n.d(t,"RowOrColumn",function(){return m.a});var p=n(13);n.d(t,"Stack",function(){return p.a});var g=n(26);n.d(t,"BubblingEvent",function(){return g.a});var y=n(11);n.d(t,"ConfigMinifier",function(){return y.a});var v=n(7);n.d(t,"DragListener",function(){return v.a});var _=n(1);n.d(t,"EventEmitter",function(){return _.b});var b=n(25);n.d(t,"EventHub",function(){return b.a});var w=n(24);n.d(t,"ReactComponentHandler",function(){return w.a}),{}.ES6&&(n(74),n(77))},function(){},function(){},function(){},function(e,i,o){var s=o(1),u=o(24),d=o(11),f=o(25),m=o(12),p=o(6),g=o(13),y=o(32),v=o(3),_=o(34),b=o(70),w=o(71),x=o(72),k=o(27),I=o(73),C=o(0),S=function(e){function i(e,t){var n;if(h(this,i),!$){var o="jQuery is missing as dependency for GoldenLayout. ";throw o+='Please either expose $ on GoldenLayout\'s scope (e.g. window) or add "jquery" to ',o+="your paths when using RequireJS/AMD",new Error(o)}return(n=l(this,(i.__proto__||Object.getPrototypeOf(i)).call(this))).isInitialised=!1,n._isFullPage=!1,n._resizeTimeoutId=null,n._components={"lm-react-component":u.a},n._itemAreas=[],n._resizeFunction=Object(C.c)(n._onResize,n),n._unloadFunction=Object(C.c)(n._onUnload,n),n._maximisedItem=null,n._maximisePlaceholder=$('<div class="lm_maximise_place"></div>'),n._creationTimeoutPassed=!1,n._subWindowsCreated=!1,n._dragSources=[],n._updatingColumnsResponsive=!1,n._firstLoad=!0,n.width=null,n.height=null,n.root=null,n.openPopouts=[],n.selectedItem=null,n.isSubWindow=!1,n.eventHub=new f.a(n),n.config=n._createConfig(e),n.container=t,n.dropTargetIndicator=null,n.transitionIndicator=null,n.tabDropPlaceholder=$('<div class="lm_drop_tab_placeholder"></div>'),!0===n.isSubWindow&&$("body").css("visibility","hidden"),n._typeToItem={column:Object(C.c)(p.a,n,[!0]),row:Object(C.c)(p.a,n,[!1]),stack:g.a,component:y.a},n}return c(i,s.b),r(i,[{key:"minifyConfig",value:function(e){return(new d.a).minifyConfig(e)}},{key:"unminifyConfig",value:function(e){return(new d.a).unminifyConfig(e)}},{key:"registerComponent",value:function(e,t){if("function"!=typeof t)throw new Error("Please register a constructor function");if(void 0!==this._components[e])throw new Error("Component "+e+" is already registered");this._components[e]=t}},{key:"toConfig",value:function(e){var t,n,i;if(!1===this.isInitialised)throw new Error("Can't create config, layout not yet initialised");if(e&&!(e instanceof v.a))throw new Error("Root must be a ContentItem");for((t={settings:Object(C.b)({},this.config.settings),dimensions:Object(C.b)({},this.config.dimensions),labels:Object(C.b)({},this.config.labels)}).content=[],(n=function(e,t){var i,o;for(i in t.config)"content"!==i&&(e[i]=t.config[i]);if(t.contentItems.length)for(e.content=[],o=0;o<t.contentItems.length;o++)e.content[o]={},n(e.content[o],t.contentItems[o])})(t,e?{contentItems:[e]}:this.root),this._$reconcilePopoutWindows(),t.openPopouts=[],i=0;i<this.openPopouts.length;i++)t.openPopouts.push(this.openPopouts[i].toConfig());return t.maximisedItemId=this._maximisedItem?"__glMaximised":null,t}},{key:"getComponent",value:function(e){if(void 0===this._components[e])throw new k.a('Unknown component "'+e+'"');return this._components[e]}},{key:"init",value:function(){return!1===this._subWindowsCreated&&(this._createSubWindows(),this._subWindowsCreated=!0),"loading"===document.readyState||null===document.body?void $(document).ready(Object(C.c)(this.init,this)):!0===this.isSubWindow&&!1===this._creationTimeoutPassed?(setTimeout(Object(C.c)(this.init,this),7),void(this._creationTimeoutPassed=!0)):(!0===this.isSubWindow&&this._adjustToWindowMode(),this._setContainer(),this.dropTargetIndicator=new w.a(this.container),this.transitionIndicator=new x.a,this.updateSize(),this._create(this.config),this._bindEvents(),this.isInitialised=!0,this._adjustColumnsResponsive(),void this.emit("initialised"))}},{key:"updateSize",value:function(e,t){2===arguments.length?(this.width=e,this.height=t):(this.width=this.container.width(),this.height=this.container.height()),!0===this.isInitialised&&(this.root.callDownwards("setSize",[this.width,this.height]),this._maximisedItem&&(this._maximisedItem.element.width(this.container.width()),this._maximisedItem.element.height(this.container.height()),this._maximisedItem.callDownwards("setSize")),this._adjustColumnsResponsive())}},{key:"destroy",value:function(){!1===this.isInitialised||(this._onUnload(),$(window).off("resize",this._resizeFunction),$(window).off("unload beforeunload",this._unloadFunction),this.root.callDownwards("_$destroy",[],!0),this.root.contentItems=[],this.tabDropPlaceholder.remove(),this.dropTargetIndicator.destroy(),this.transitionIndicator.destroy(),this.eventHub.destroy(),this._dragSources.forEach(function(e){e._dragListener.destroy(),e._element=null,e._itemConfig=null,e._dragListener=null}),this._dragSources=[])}},{key:"createContentItem",value:function(e,t){var n;if("string"!=typeof e.type)throw new k.a("Missing parameter 'type'",e);if("react-component"===e.type&&(e.type="component",e.componentName="lm-react-component"),!this._typeToItem[e.type])throw n="Unknown type '"+e.type+"'. Valid types are "+Object(C.j)(this._typeToItem).join(","),new k.a(n);return"component"!==e.type||t instanceof g.a||!t||!0===this.isSubWindow&&t instanceof m.a||(e={type:"stack",width:e.width,height:e.height,content:[e]}),new this._typeToItem[e.type](this,e,t)}},{key:"createPopout",value:function(e,t,n,i){var o,s,r,a,l,c,h=e,u=e instanceof v.a,d=this;if(n=n||null,u){for(h=this.toConfig(e).content,n=Object(C.f)(),a=e.parent,l=e;1===a.contentItems.length&&!a.isRoot;)a=a.parent,l=l.parent;a.addId(n),isNaN(i)&&(i=Object(C.g)(l,a.contentItems))}else h instanceof Array||(h=[h]);return!t&&u&&(o=window.screenX||window.screenLeft,s=window.screenY||window.screenTop,t={left:o+(r=e.element.offset()).left,top:s+r.top,width:e.element.width(),height:e.element.height()}),t||u||(t={left:window.screenX||window.screenLeft+20,top:window.screenY||window.screenTop+20,width:500,height:309}),u&&e.remove(),(c=new _.a(h,t,n,i,this)).on("initialised",function(){d.emit("windowOpened",c)}),c.on("closed",function(){d._$reconcilePopoutWindows()}),this.openPopouts.push(c),c}},{key:"createDragSource",value:function(e,t){this.config.settings.constrainDragToContainer=!1;var n=new b.a($(e),t,this);return this._dragSources.push(n),n}},{key:"selectItem",value:function(e,t){if(!0!==this.config.settings.selectionEnabled)throw new Error("Please set selectionEnabled to true to use this feature");e===this.selectedItem||(null!==this.selectedItem&&this.selectedItem.deselect(),e&&!0!==t&&e.select(),this.selectedItem=e,this.emit("selectionChanged",e))}},{key:"_$maximiseItem",value:function(e){null!==this._maximisedItem&&this._$minimiseItem(this._maximisedItem),this._maximisedItem=e,this._maximisedItem.addId("__glMaximised"),e.element.addClass("lm_maximised"),e.element.after(this._maximisePlaceholder),this.root.element.prepend(e.element),e.element.width(this.container.width()),e.element.height(this.container.height()),e.callDownwards("setSize"),this._maximisedItem.emit("maximised"),this.emit("stateChanged")}},{key:"_$minimiseItem",value:function(e){e.element.removeClass("lm_maximised"),e.removeId("__glMaximised"),this._maximisePlaceholder.after(e.element),this._maximisePlaceholder.remove(),e.parent.callDownwards("setSize"),this._maximisedItem=null,e.emit("minimised"),this.emit("stateChanged")}},{key:"_$closeWindow",value:function(){window.setTimeout(function(){window.close()},1)}},{key:"_$getArea",value:function(e,t){var n,i,o=1/0,s=null;for(n=0;n<this._itemAreas.length;n++)e>(i=this._itemAreas[n]).x1&&e<i.x2&&t>i.y1&&t<i.y2&&o>i.surface&&(o=i.surface,s=i);return s}},{key:"_$createRootItemAreas",value:function(){var e={y2:0,x2:0,y1:"y2",x1:"x2"};for(var t in e){var n=this.root._$getArea();n.side=t,n[t]=e[t]?n[e[t]]-50:50,n.surface=(n.x2-n.x1)*(n.y2-n.y1),this._itemAreas.push(n)}}},{key:"_$calculateItemAreas",value:function(){var e,t,n=this._getAllContentItems();if(this._itemAreas=[],1!==n.length){for(this._$createRootItemAreas(),e=0;e<n.length;e++)if(n[e].isStack){if(null===(t=n[e]._$getArea()))continue;if(t instanceof Array)this._itemAreas=this._itemAreas.concat(t);else{this._itemAreas.push(t);var i={};Object(C.b)(i,t),Object(C.b)(i,t.contentItem._contentAreaDimensions.header.highlightArea),i.surface=(i.x2-i.x1)*(i.y2-i.y1),this._itemAreas.push(i)}}}else this._itemAreas.push(this.root._$getArea())}},{key:"_$normalizeContentItem",value:function(e,t){if(!e)throw new Error("No content item defined");if(Object(C.h)(e)&&(e=e()),e instanceof v.a)return e;if($.isPlainObject(e)&&e.type){var n=this.createContentItem(e,t);return n.callDownwards("_$init"),n}throw new Error("Invalid contentItem")}},{key:"_$reconcilePopoutWindows",value:function(){var e,t=[];for(e=0;e<this.openPopouts.length;e++)!1===this.openPopouts[e].getWindow().closed?t.push(this.openPopouts[e]):this.emit("windowClosed",this.openPopouts[e]);this.openPopouts.length!==t.length&&(this.emit("stateChanged"),this.openPopouts=t)}},{key:"_getAllContentItems",value:function(){var e=[];return function t(n){if(e.push(n),n.contentItems instanceof Array)for(var i=0;i<n.contentItems.length;i++)t(n.contentItems[i])}(this.root),e}},{key:"_bindEvents",value:function(){this._isFullPage&&$(window).resize(this._resizeFunction),$(window).on("unload beforeunload",this._unloadFunction)}},{key:"_onResize",value:function(){clearTimeout(this._resizeTimeoutId),this._resizeTimeoutId=setTimeout(Object(C.c)(this.updateSize,this),100)}},{key:"_createConfig",value:function(e){var t=Object(C.d)("gl-window");t&&(this.isSubWindow=!0,e=localStorage.getItem(t),e=JSON.parse(e),e=(new d.a).unminifyConfig(e),localStorage.removeItem(t));return function e(t){for(var n in t)"props"!=n&&"object"==a(t[n])?e(t[n]):"type"==n&&"react-component"===t[n]&&(t.type="component",t.componentName="lm-react-component")}(e=$.extend(!0,{},I.a,e)),!1===e.settings.hasHeaders&&(e.dimensions.headerHeight=0),e}},{key:"_adjustToWindowMode",value:function(){var e=$('<div class="lm_popin" title="'+this.config.labels.popin+'"><div class="lm_icon"></div><div class="lm_bg"></div></div>');e.click(Object(C.c)(function(){this.emit("popIn")},this)),document.title=Object(C.k)(this.config.content[0].title),$("head").append($("body link, body style, template, .gl_keep")),this.container=$("body").html("").css("visibility","visible").append(e),document.body.offsetHeight,window.__glInstance=this}},{key:"_createSubWindows",value:function(){var e,t;for(e=0;e<this.config.openPopouts.length;e++)t=this.config.openPopouts[e],this.createPopout(t.content,t.dimensions,t.parentId,t.indexInParent)}},{key:"_setContainer",value:function(){var e=$(this.container||"body");if(0===e.length)throw new Error("GoldenLayout container not found");if(1<e.length)throw new Error("GoldenLayout more than one container element specified");e[0]===document.body&&(this._isFullPage=!0,$("html, body").css({height:"100%",margin:0,padding:0,overflow:"hidden"})),this.container=e}},{key:"_create",value:function(e){var t;if(!(e.content instanceof Array))throw t=void 0===e.content?"Missing setting 'content' on top level of configuration":"Configuration parameter 'content' must be an array",new k.a(t,e);if(1<e.content.length)throw t="Top level content can't contain more then one element.",new k.a(t,e);this.root=new m.a(this,{content:e.content},this.container),this.root.callDownwards("_$init"),"__glMaximised"===e.maximisedItemId&&this.root.getItemsById(e.maximisedItemId)[0].toggleMaximise()}},{key:"_onUnload",value:function(){if(!0===this.config.settings.closePopoutsOnUnload)for(var e=0;e<this.openPopouts.length;e++)this.openPopouts[e].close()}},{key:"_adjustColumnsResponsive",value:function(){if(this._useResponsiveLayout()&&!this._updatingColumnsResponsive&&this.config.dimensions&&this.config.dimensions.minItemWidth&&0!==this.root.contentItems.length&&this.root.contentItems[0].isRow){this._firstLoad=!1;var e=this.root.contentItems[0].contentItems.length;if(!(1>=e)){var i=this.config.dimensions.minItemWidth;if(!(e*i<=this.width)){this._updatingColumnsResponsive=!0;for(var o,s=n(t(this.width/i),1),r=this.root.contentItems[0],a=this._findAllStackContainers()[0],l=0;l<e-s;l++)o=r.contentItems[r.contentItems.length-1],this._addChildContentItemsToContainer(a,o);this._updatingColumnsResponsive=!1}}}else this._firstLoad=!1}},{key:"_useResponsiveLayout",value:function(){return this.config.settings&&("always"==this.config.settings.responsiveMode||"onload"==this.config.settings.responsiveMode&&this._firstLoad)}},{key:"_addChildContentItemsToContainer",value:function(e,t){"stack"===t.type?t.contentItems.forEach(function(n){e.addChild(n),t.removeChild(n,!0)}):t.contentItems.forEach(Object(C.c)(function(t){this._addChildContentItemsToContainer(e,t)},this))}},{key:"_findAllStackContainers",value:function(){var e=[];return this._findAllStackContainersRecursive(e,this.root),e}},{key:"_findAllStackContainersRecursive",value:function(e,t){t.contentItems.forEach(Object(C.c)(function(t){"stack"==t.type?e.push(t):!t.isComponent&&this._findAllStackContainersRecursive(e,t)},this))}}]),i}();i.a=S},function(e,t,n){e.exports={default:n(41),__esModule:!0}},function(e,t,n){n(42),e.exports=n(2).Object.keys},function(e,t,n){var i=n(43),o=n(15);n(53)("keys",function(){return function(e){return o(i(e))}})},function(e,t,n){var i=n(14);e.exports=function(e){return Object(i(e))}},function(e,t,n){var i=n(16),o=n(17),s=n(47)(!1),r=n(19)("IE_PROTO");e.exports=function(e,t){var n,a=o(e),l=0,c=[];for(n in a)n!=r&&i(a,n)&&c.push(n);for(;t.length>l;)i(a,n=t[l++])&&(~s(c,n)||c.push(n));return c}},function(e,t,n){var i=n(46);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==i(e)?e.split(""):Object(e)}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,t,n){var i=n(17),o=n(48),s=n(49);e.exports=function(e){return function(t,n,r){var a,l=i(t),c=o(l.length),h=s(r,c);if(e&&n!=n){for(;c>h;)if((a=l[h++])!=a)return!0}else for(;c>h;h++)if((e||h in l)&&l[h]===n)return e||h||0;return!e&&-1}}},function(t,n,i){var o=i(18);t.exports=function(t){return 0<t?e(o(t),9007199254740991):0}},function(t,i,o){var s=o(18);t.exports=function(t,i){return 0>(t=s(t))?n(t+i,0):e(t,i)}},function(e,t,n){var i=n(2),o=n(4),s="__core-js_shared__",r=o[s]||(o[s]={});(e.exports=function(e,t){return r[e]||(r[e]=void 0===t?{}:t)})("versions",[]).push({version:i.version,mode:n(51)?"pure":"global",copyright:"© 2018 Denis Pushkarev (zloirock.ru)"})},function(e){e.exports=!0},function(e){var t=0,n=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++t+n).toString(36))}},function(e,t,n){var i=n(21),o=n(2),s=n(10);e.exports=function(e,t){var n=(o.Object||{})[e]||Object[e],r={};r[e]=t(n),i(i.S+i.F*s(function(){n(1)}),"Object",r)}},function(e,t,n){var i=n(55);e.exports=function(e,t,n){return i(e),void 0===t?e:1===n?function(n){return e.call(t,n)}:2===n?function(n,i){return e.call(t,n,i)}:3===n?function(n,i,o){return e.call(t,n,i,o)}:function(){return e.apply(t,arguments)}}},function(e){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var i=n(22),o=n(59);e.exports=n(5)?function(e,t,n){return i.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){e.exports=!n(5)&&!n(10)(function(){return 7!=Object.defineProperty(n(23)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){var i=n(9);e.exports=function(e,t){if(!i(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!i(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!i(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!i(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports={default:n(61),__esModule:!0}},function(e,t,n){n(62);var i=n(2).Object;e.exports=function(e,t){return i.create(e,t)}},function(e,t,n){var i=n(21);i(i.S,"Object",{create:n(63)})},function(e,t,n){var i=n(8),o=n(64),s=n(20),r=n(19)("IE_PROTO"),a=function(){},l="prototype",c=function(){var e,t=n(23)("iframe"),i=s.length;for(t.style.display="none",n(65).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),c=e.F;i--;)delete c[l][s[i]];return c()};e.exports=Object.create||function(e,t){var n;return null===e?n=c():(a[l]=i(e),n=new a,a[l]=null,n[r]=e),void 0===t?n:o(n,t)}},function(e,t,n){var i=n(22),o=n(8),s=n(15);e.exports=n(5)?Object.defineProperties:function(e,t){o(e);for(var n,r=s(t),a=r.length,l=0;a>l;)i.f(e,n=r[l++],t[n]);return e}},function(e,t,n){var i=n(4).document;e.exports=i&&i.documentElement},function(e,t){t.a={isClosable:!0,reorderEnabled:!0,title:""}},function(e,t,n){var i=n(7);t.a=function(){function e(t,n,o){h(this,e),this._isVertical=t,this._size=n,this._grabSize=o<n?n:o,this.element=this._createElement(),this._dragListener=new i.a(this.element)}return r(e,[{key:"on",value:function(e,t,n){this._dragListener.on(e,t,n)}},{key:"_$destroy",value:function(){this.element.remove()}},{key:"_createElement",value:function(){var e=$('<div class="lm_drag_handle"></div>'),t=$('<div class="lm_splitter"></div>');t.append(e);var n=this._grabSize-this._size,i=n/2;return this._isVertical?(e.css("top",-i),e.css("height",this._size+n),t.addClass("lm_vertical"),t.height(this._size)):(e.css("left",-i),e.css("width",this._size+n),t.addClass("lm_horizontal"),t.width(this._size)),t}}]),e}()},function(e,t,n){e.exports={default:n(69),__esModule:!0}},function(e,t,n){var i=n(2),o=i.JSON||(i.JSON={stringify:JSON.stringify});e.exports=function(){return o.stringify.apply(o,arguments)}},function(e,t,n){var i=n(7),o=n(30),s=n(0);t.a=function(){function e(t,n,i){h(this,e),this._element=t,this._itemConfig=n,this._layoutManager=i,this._dragListener=null,this._createDragListener()}return r(e,[{key:"_createDragListener",value:function(){null!==this._dragListener&&this._dragListener.destroy(),this._dragListener=new i.a(this._element),this._dragListener.on("dragStart",this._onDragStart,this),this._dragListener.on("dragStop",this._createDragListener,this)}},{key:"_onDragStart",value:function(e,t){var n=this._itemConfig;Object(s.h)(n)&&(n=n());var i=this._layoutManager._$normalizeContentItem($.extend(!0,{},n)),r=new o.a(e,t,this._dragListener,this._layoutManager,i,null);this._layoutManager.transitionIndicator.transitionElements(this._element,r.element)}}]),e}()},function(e,t){t.a=function(){function e(){h(this,e),this.element=$('<div class="lm_dropTargetIndicator"><div class="lm_inner"></div></div>'),$(document.body).append(this.element)}return r(e,[{key:"destroy",value:function(){this.element.remove()}},{key:"highlight",value:function(e,t,n,i){this.highlightArea({x1:e,y1:t,x2:n,y2:i})}},{key:"highlightArea",value:function(e){this.element.css({left:e.x1,top:e.y1,width:e.x2-e.x1,height:e.y2-e.y1}).show()}},{key:"hide",value:function(){this.element.hide()}}]),e}()},function(e,t,n){var i=n(0);t.a=function(){function e(){h(this,e),this._element=$('<div class="lm_transition_indicator"></div>'),$(document.body).append(this._element),this._toElement=null,this._fromDimensions=null,this._totalAnimationDuration=200,this._animationStartTime=null}return r(e,[{key:"destroy",value:function(){this._element.remove()}},{key:"transitionElements",value:function(){}},{key:"_nextAnimationFrame",value:function(){var e,t=this._measure(this._toElement),n=(Object(i.i)()-this._animationStartTime)/this._totalAnimationDuration,o={};if(1<=n)this._element.hide();else{for(e in t.opacity=0,this._fromDimensions)o[e]=this._fromDimensions[e]+(t[e]-this._fromDimensions[e])*n;this._element.css(o),Object(i.a)(Object(i.c)(this._nextAnimationFrame,this))}}},{key:"_measure",value:function(e){var t=e.offset();return{left:t.left,top:t.top,width:e.outerWidth(),height:e.outerHeight()}}}]),e}()},function(e,t){t.a={openPopouts:[],settings:{hasHeaders:!0,constrainDragToContainer:!0,reorderEnabled:!0,selectionEnabled:!1,popoutWholeStack:!1,blockedPopoutsThrowError:!0,closePopoutsOnUnload:!0,showPopoutIcon:!0,showMaximiseIcon:!0,showCloseIcon:!0,responsiveMode:"onload",tabOverlapAllowance:0,reorderOnTabMenuClick:!0,tabControlOffset:10},dimensions:{borderWidth:5,borderGrabWidth:15,minItemHeight:10,minItemWidth:10,headerHeight:20,dragProxyWidth:300,dragProxyHeight:200},labels:{close:"close",maximise:"maximise",minimise:"minimise",popout:"open in new window",popin:"pop in",tabDropdown:"additional tabs"}}},function(e,t,n){n(75)(n(76))},function(e){e.exports=function(e){function t(e){"undefined"!=typeof console&&(console.error||console.log)("[Script Loader]",e)}try{"undefined"!=typeof execScript&&"undefined"!=typeof attachEvent&&"undefined"==typeof addEventListener?execScript(e):"undefined"==typeof eval?t("EvalError: No eval function available"):eval.call(null,e)}catch(e){t(e)}}},function(e){e.exports="/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\n(function(global, factory) {\n if (typeof define === 'function' && define.amd)\n define(function() { return factory(global) })\n else\n factory(global)\n}(this, function(window) {\n var Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('<div>').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n $.fn.serializeArray = function() {\n var name, type, result = [],\n add = function(value) {\n if (value.forEach) return value.forEach(add)\n result.push({ name: name, value: value })\n }\n if (this[0]) $.each(this[0].elements, function(_, field){\n type = field.type, name = field.name\n if (name && field.nodeName.toLowerCase() != 'fieldset' &&\n !field.disabled && type != 'submit' && type != 'reset' && type != 'button' && type != 'file' &&\n ((type != 'radio' && type != 'checkbox') || field.checked))\n add($(field).val())\n })\n return result\n }\n\n $.fn.serialize = function(){\n var result = []\n this.serializeArray().forEach(function(elm){\n result.push(encodeURIComponent(elm.name) + '=' + encodeURIComponent(elm.value))\n })\n return result.join('&')\n }\n\n $.fn.submit = function(callback) {\n if (0 in arguments) this.bind('submit', callback)\n else if (this.length) {\n var event = $.Event('submit')\n this.eq(0).trigger(event)\n if (!event.isDefaultPrevented()) this.get(0).submit()\n }\n return this\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n return Zepto\n}))\n"},function(){!function(e){e.expr={":":{}},e.support={},e.fn.clone=function(){var t=e();return this.each(function(){t.push(this.cloneNode(!0))}),t},["Left","Top"].forEach(function(t,n){function i(e){return function(e){return e&&"object"==(void 0===e?"undefined":a(e))&&"setInterval"in e}(e)?e:!(9!==e.nodeType)&&(e.defaultView||e.parentWindow)}var o="scroll"+t;e.fn[o]=function(t){var s,r;return void 0===t?(s=this[0])?(r=i(s))?"pageXOffset"in r?r[n?"pageYOffset":"pageXOffset"]:r.document.documentElement[o]||r.document.body[o]:s[o]:null:void this.each(function(){if(r=i(this)){var s=n?e(r).scrollLeft():t,a=n?t:e(r).scrollTop();r.scrollTo(s,a)}else this[o]=t})}}),["width","height"].forEach(function(t){var n=t.replace(/./,function(e){return e[0].toUpperCase()});e.fn["inner"+n]=function(e){var n=this;if(n){var i=n[t]();return{width:["left","right"],height:["top","bottom"]}[t].forEach(function(t){i+=parseInt(n.css("padding-"+t),10),e&&(i+=parseInt(n.css("margin-"+t),10))}),i}return null},e.fn["outer"+n]=function(e){var n=this;if(n){var i=n[t]();return{width:["left","right"],height:["top","bottom"]}[t].forEach(function(t){e&&(i+=parseInt(n.css("margin-"+t),10))}),i}return null}}),e.proxy=function(t,n){if("string"==typeof n){var i=t[n];n=t,t=i}if(e.isFunction(t)){var o=Array.prototype.slice.call(arguments,2),s=function(){return t.apply(n,o.concat(Array.prototype.slice.call(arguments)))};return s.guid=t.guid=t.guid||s.guid||e.guid++,s}};var t=String.prototype.trim;e.trim=function(e,n){return!n&&t?t.call(e):(n=defaultToWhiteSpace(n),e.replace(new RegExp("^["+n+"]+|["+n+"]+$","g"),""))};var n=/^(?:body|html)$/i;e.fn.position=function(){if(!this[0])return null;var t=this[0],i=this.offsetParent(),o=this.offset(),s=n.test(i[0].nodeName)?{top:0,left:0}:i.offset();return o.top-=parseFloat(e(t).css("margin-top"))||0,o.left-=parseFloat(e(t).css("margin-left"))||0,s.top+=parseFloat(e(i[0]).css("border-top-width"))||0,s.left+=parseFloat(e(i[0]).css("border-left-width"))||0,{top:o.top-s.top,left:o.left-s.left}},e.fn.offsetParent=function(){var t=e();return this.each(function(){for(var i=this.offsetParent||document.body;i&&!n.test(i.nodeName)&&"static"===e(i).css("position");)i=i.offsetParent;t.push(i)}),t}}(Zepto)}])},"object"==a(t)&&"object"==a(e)?e.exports=s():(i=[],void 0===(o="function"==typeof(n=s)?n.apply(t,i):n)||(e.exports=o))}).call(this,n(1)(e))},function(e,t,n){"use strict";var i,o=n(2);var s=new((i=o)&&i.__esModule?i:{default:i}).default({settings:{showPopoutIcon:!1,showCloseIcon:!1},dimensions:{minItemHeight:40},content:[{type:"row",content:[{type:"column",width:40,content:[{type:"component",componentName:"template",title:"Game",componentState:{id:"client_wrapper"}},{type:"component",title:"Miscellaneous",height:5,componentName:"template",componentState:{id:"misc"}}]},{type:"column",content:[{type:"stack",height:60,content:[{type:"component",title:"Server chat",componentName:"template",componentState:{id:"ooc"}},{type:"component",title:"Log",componentName:"template",componentState:{id:"log"}}]},{type:"row",content:[{type:"component",title:"Music",componentName:"template",componentState:{id:"music"}},{type:"stack",content:[{type:"component",title:"Settings",componentName:"template",componentState:{id:"client_settings"}},{type:"component",title:"About",componentName:"template",componentState:{id:"about"}}]}]}]}]}]});s.registerComponent("template",function(e,t){var n=document.querySelector("#"+t.id);e.getElement().html(n.content)}),s.init()}]); +//# sourceMappingURL=ui.b.js.map
\ No newline at end of file diff --git a/webAO/ui.b.js.map b/webAO/ui.b.js.map new file mode 100644 index 0000000..521a66f --- /dev/null +++ b/webAO/ui.b.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///(webpack)/buildin/module.js","webpack:///./webAO/golden/js/goldenlayout.js","webpack:///./webAO/ui.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","r","value","n","__esModule","object","property","prototype","hasOwnProperty","p","s","webpackPolyfill","deprecate","paths","children","t","self","e","Math","min","floor","max","$","zepto","touches","targetTouches","originalEvent","j","a","push","window","location","hash","match","RegExp","search","substr","split","length","b","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","setTimeout","g","Array","Error","indexOf","Function","bind","apply","concat","slice","arguments","this","Date","now","getTime","f","random","toString","replace","k","trim","Int8Array","_typeof","_class","_classCallCheck","_mSubscriptions","on","h","fn","ctx","emit","unshift","unbind","splice","off","trigger","version","__e","_o$b","_this","_possibleConstructorReturn","__proto__","getPrototypeOf","config","_extendItemNode","type","contentItems","parent","isInitialised","isMaximised","isRoot","isRow","isColumn","isStack","isComponent","layoutManager","_pendingEventPropagations","_throttledEvents","_propagateEvent","content","_createContentItems","_inherits","_createClass","key","callDownwards","_$destroy","isClosable","removeChild","undisplayChild","_$init","_$normalizeContentItem","element","parentNode","replaceChild","header","tabs","contentItem","createPopout","emitBubblingEvent","preventDefault","_$minimiseItem","_$maximiseItem","selectedItem","selectItem","addClass","removeClass","title","id","hasId","getItemsByFilter","_$getItemsByProperty","instance","dropTargetIndicator","highlightArea","addChild","_callOnActiveComponents","hide","updateSize","show","getItemsByType","getActiveContentItem","container","remove","offset","width","height","x1","left","y1","top","x2","y2","surface","setSize","childElementContainer","append","createContentItem","isPropagationStopped","_scheduleEventPropagationToLayoutManager","origin","_propagateEventToLayoutManager","__g","round","_s$a","_this2","_splitterSize","dimensions","borderWidth","_splitterGrabSize","borderGrabWidth","_isColumn","_dimension","_splitter","_splitterPosition","_splitterMinPosition","_splitterMaxPosition","_createSplitter","after","_isDocked","before","_validateDocking","_calculateRelativeSizes","_setAbsoluteSizes","headerHeight","_docker","docked","size","itemSize","column","first","last","row","position","_","dimension","realSize","toggleClass","_header","dock","_calculateAbsoluteSizes","additionalPixel","itemSizes","totalWidth","totalHeight","_respectMinItemWidth","minItemWidth","_onSplitterDrag","_onSplitterDragStop","_onSplitterDragStart","_setDockable","_$setClosable","minWidth","minHeight","horizontal","vertical","_getItemsForSplitter","_getMinimumDimensions","css","_o$b2","_this3","_timeout","_eElement","_oDocument","document","_eBody","body","_nButtonCode","_nDelay","_nDistance","_nX","_nY","_nOriginalX","_nOriginalY","_bDragging","_fMove","onMouseMove","_fUp","onMouseUp","_fDown","onMouseDown","button","_getCoordinates","x","y","one","_startDrag","abs","clearTimeout","find","pageX","pageY","TypeError","_class2","_keys","_values","_nextLevel","parseInt","_o$a","_this4","_containerElement","tabDropPlaceholder","_$highlightDropZone","side","_a$a","_this5","_activeContentItem","settings","hasHeaders","popout","showPopoutIcon","labels","maximise","showMaximiseIcon","close","showCloseIcon","minimise","_dropZones","_dropSegment","_contentAreaDimensions","_dropIndex","_setupHeaderPosition","_$validateClosability","_sided","createTab","_$hide","activeItemIndex","setActiveContentItem","_$show","activeContentItem","removeTab","hideTab","_isClosable","_resetHeaderDropZone","hoverArea","_highlightHeaderDropZone","_highlightBodyDropZone","_$getArea","right","bottom","innerHeight","toggleMaximise","toggle","_side","keys","ceil","isNaN","F","G","u","S","P","B","W","v","virtual","R","U","createElement","_class3","_reactComponent","_originalComponentWillUpdate","_container","_initialState","_reactClass","_getReactClass","_render","_destroy","ReactDOM","render","_getReactComponent","getElement","componentWillUpdate","_onUpdate","getState","setState","unmountComponentAtNode","_config","component","getComponent","glEventHub","eventHub","glContainer","extend","props","React","_o$b3","_this6","_layoutManager","_dontPropagateToParent","_childEventSource","_onEventFromThis","_boundOnEventFromChild","_onEventFromChild","isSubWindow","_propagateToParent","_propagateToChildren","__gl","__glArgs","createEvent","opener","initEvent","createEventObject","eventType","eventName","dispatchEvent","fireEvent","openPopouts","getGlInstance","_$onEventFromParent","_class4","_Error","_this7","message","node","_o$b4","_this8","selectionEnabled","_onHeaderClick","tabsContainer","tabDropdownContainer","controlsContainer","_updateTabSizes","tabsMarkedForRemoval","closeButton","dockButton","tabDropdownButton","hideAdditionalTabsDropdown","_hideAdditionalTabsDropdown","mouseup","_lastVisibleTabIndex","_tabControlOffset","tabControlOffset","_createControls","setActive","reorderOnTabMenuClick","_canDestroy","_showAdditionalTabsDropdown","tabDropdown","_getHeaderSetting","_onPopoutClick","attr","popoutWholeStack","target","select","outerWidth","tabOverlapAllowance","tab","outerHeight","z-index","margin-left","_class5","titleElement","closeElement","isActive","setTitle","reorderEnabled","_dragListener","_onDragStart","destroy","_onTabClickFn","_onTabClick","_onCloseClickFn","_onCloseClick","_onCloseMousedown","html","stopPropagation","_o$b5","_this9","_contentItem","_originalParent","_area","_lastValidArea","_onDrag","_onDrop","_undisplayTree","_$calculateItemAreas","_setDimensions","_minX","_minY","_maxX","_maxY","_width","_height","_setDropPosition","constrainDragToContainer","_updateTree","_$onDrop","_$setParent","dragProxyWidth","dragProxyHeight","_class6","_action","_o$a2","_this10","componentName","componentState","_element","_$setSize","shown","_$shown","_o$b6","_this11","isHidden","_contentElement","_s$b","_this12","_dimensions","_parentId","_indexInParent","_popoutWindow","_id","_createWindow","screenX","screenLeft","screenY","screenTop","toConfig","parentId","indexInParent","__glInstance","_$closeWindow","getWindow","root","getItemsById","_createUrl","_serializeWindowOptions","innerWidth","menubar","toolbar","personalbar","resizable","scrollbars","status","open","_positionWindow","_onClose","setInterval","_onInitialised","clearInterval","blockedPopoutsThrowError","join","minifyConfig","localStorage","setItem","href","moveTo","focus","popIn","D","w","ES6","_a$b","_this13","_isFullPage","_resizeTimeoutId","_components","lm-react-component","_itemAreas","_resizeFunction","_onResize","_unloadFunction","_onUnload","_maximisedItem","_maximisePlaceholder","_creationTimeoutPassed","_subWindowsCreated","_dragSources","_updatingColumnsResponsive","_firstLoad","_createConfig","transitionIndicator","_typeToItem","stack","unminifyConfig","_$reconcilePopoutWindows","maximisedItemId","_createSubWindows","readyState","ready","init","_adjustToWindowMode","_setContainer","_create","_bindEvents","_adjustColumnsResponsive","forEach","_itemConfig","addId","deselect","prepend","removeId","Infinity","_getAllContentItems","_$createRootItemAreas","isPlainObject","closed","resize","getItem","JSON","parse","removeItem","popin","click","offsetHeight","margin","padding","overflow","closePopoutsOnUnload","_useResponsiveLayout","_findAllStackContainers","_addChildContentItemsToContainer","responsiveMode","_findAllStackContainersRecursive","default","propertyIsEnumerable","mode","copyright","valueOf","writable","create","style","display","appendChild","src","contentWindow","write","defineProperties","documentElement","_class7","_isVertical","_size","_grabSize","_createElement","stringify","_class8","_createDragListener","transitionElements","_class9","_class10","_toElement","_fromDimensions","_totalAnimationDuration","_animationStartTime","_measure","opacity","_nextAnimationFrame","minItemHeight","console","error","log","execScript","attachEvent","addEventListener","eval","expr",":","support","clone","each","cloneNode","nodeType","defaultView","parentWindow","scrollLeft","scrollTop","scrollTo","toUpperCase","proxy","isFunction","guid","String","defaultToWhiteSpace","offsetParent","test","nodeName","parseFloat","Zepto","__WEBPACK_AMD_DEFINE_ARRAY__","undefined","__WEBPACK_AMD_DEFINE_RESULT__","__WEBPACK_AMD_DEFINE_FACTORY__","_goldenlayout","golden","GoldenLayout","registerComponent","template","querySelector"],"mappings":"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","file":"ui.b.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 3);\n","module.exports = function(module) {\r\n\tif (!module.webpackPolyfill) {\r\n\t\tmodule.deprecate = function() {};\r\n\t\tmodule.paths = [];\r\n\t\t// module.parent = undefined by default\r\n\t\tif (!module.children) module.children = [];\r\n\t\tObject.defineProperty(module, \"loaded\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.l;\r\n\t\t\t}\r\n\t\t});\r\n\t\tObject.defineProperty(module, \"id\", {\r\n\t\t\tenumerable: true,\r\n\t\t\tget: function() {\r\n\t\t\t\treturn module.i;\r\n\t\t\t}\r\n\t\t});\r\n\t\tmodule.webpackPolyfill = 1;\r\n\t}\r\n\treturn module;\r\n};\r\n","(function(e,t){'object'==typeof exports&&'object'==typeof module?module.exports=t():'function'==typeof define&&define.amd?define('GoldenLayout',[],t):'object'==typeof exports?exports.GoldenLayout=t():e.GoldenLayout=t()})('undefined'==typeof self?this:self,function(){var e=Math.min,t=Math.floor,n=Math.max;return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,o){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:o})},t.n=function(e){var n=e&&e.__esModule?function(){return e['default']}:function(){return e};return t.d(n,'a',n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p='',t(t.s=35)}([function(e,t,n){'use strict';function o(e){var t=location.hash.match(new RegExp(e+'=([^&]*)'));return t?t[1]:null}t.e=function(e){return $.zepto?e.touches?e.targetTouches[0]:e:e.originalEvent&&e.originalEvent.touches?e.originalEvent.touches[0]:e},t.j=function(e){var t,n;if('function'==typeof a.a)return a()(e);for(n in t=[],e)t.push(n);return t},t.d=function(e){if(window.location.hash)return o(e);if(!window.location.search)return null;var t,n,i=window.location.search.substr(1).split('&'),a={};for(n=0;n<i.length;n++)t=i[n].split('='),a[t[0]]=t[1];return a[e]||null},t.b=function(e,t){for(var n in t)e[n]=t[n];return e},t.a=function(e){return(window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)})(function(){e()})},t.g=function(e,t){if(!(t instanceof Array))throw new Error('Haystack is not an Array');if(t.indexOf)return t.indexOf(e);for(var n=0;n<t.length;n++)if(t[n]===e)return n;return-1},n.d(t,'h',function(){return l}),t.c=function(e,t,n){if(void 0!==Function.prototype.bind)return Function.prototype.bind.apply(e,[t].concat(n||[]));var o=function(){var i=(n||[]).concat(Array.prototype.slice.call(arguments,0));return this instanceof o?void e.apply(this,i):e.apply(t,i)};return o.prototype=e.prototype,o},t.i=function(){return'function'==typeof Date.now?Date.now():new Date().getTime()},t.f=function(){return(1e15*Math.random()).toString(36).replace('.','')},t.k=function(e){return $.trim(e.replace(/(<([^>]+)>)/ig,''))};var i=n(40),a=n.n(i),s=n(60),r=n.n(s),l='function'!=typeof /./&&'object'!=typeof Int8Array?function(e){return'function'==typeof e||!1}:function(e){return'[object Function]'===toString.call(e)}},function(e,t,n){'use strict';var o=n(0);const a='__all';t.a=a;t.b=class{constructor(){this._mSubscriptions={},this._mSubscriptions[a]=[],this.on=function(e,t,n){if(!Object(o.h)(t))throw new Error('Tried to listen to event '+e+' with non-function callback '+t);this._mSubscriptions[e]||(this._mSubscriptions[e]=[]),this._mSubscriptions[e].push({fn:t,ctx:n})},this.emit=function(e){var t,n,o;o=Array.prototype.slice.call(arguments,1);var i=this._mSubscriptions[e];if(i)for(i=i.slice(),t=0;t<i.length;t++)n=i[t].ctx||{},i[t].fn.apply(n,o);o.unshift(e);var s=this._mSubscriptions[a].slice();for(t=0;t<s.length;t++)n=s[t].ctx||{},s[t].fn.apply(n,o)},this.unbind=function(e,t,n){if(!this._mSubscriptions[e])throw new Error('No subscribtions to unsubscribe for event '+e);var o,i=!1;for(o=0;o<this._mSubscriptions[e].length;o++)t&&this._mSubscriptions[e][o].fn!==t||n&&n!==this._mSubscriptions[e][o].ctx||(this._mSubscriptions[e].splice(o,1),i=!0);if(!1==i)throw new Error('Nothing to unbind for '+e)},this.off=this.unbind,this.trigger=this.emit}}},function(e){var t=e.exports={version:'2.5.6'};'number'==typeof __e&&(__e=t)},function(e,t,n){'use strict';var o=n(1),i=n(26),a=n(12),s=n(27),r=n(66),l=n(0);class c extends o.b{constructor(e,t,n){super(),this.config=this._extendItemNode(t),this.type=t.type,this.contentItems=[],this.parent=n,this.isInitialised=!1,this.isMaximised=!1,this.isRoot=!1,this.isRow=!1,this.isColumn=!1,this.isStack=!1,this.isComponent=!1,this.layoutManager=e,this._pendingEventPropagations={},this._throttledEvents=['stateChanged'],this.on(o.a,this._propagateEvent,this),t.content&&this._createContentItems(t)}setSize(){throw new Error('Abstract Method')}callDownwards(e,t,n,o){var a;for(!0!==n&&!0!==o&&this[e].apply(this,t||[]),a=0;a<this.contentItems.length;a++)this.contentItems[a].callDownwards(e,t,n);!0===n&&!0!==o&&this[e].apply(this,t||[])}removeChild(e,t){var n=Object(l.g)(e,this.contentItems);if(-1===n)throw new Error('Can\\'t remove child item. Unknown content item');!0!==t&&this.contentItems[n]._$destroy(),this.contentItems.splice(n,1),this.config.content.splice(n,1),0<this.contentItems.length?this.callDownwards('setSize'):!(this instanceof a.a)&&!0===this.config.isClosable&&this.parent.removeChild(this)}undisplayChild(e){var t=Object(l.g)(e,this.contentItems);if(-1===t)throw new Error('Can\\'t remove child item. Unknown content item');this instanceof a.a||!0!==this.config.isClosable||this.parent.undisplayChild(this)}addChild(e,t){t===void 0&&(t=this.contentItems.length),this.contentItems.splice(t,0,e),this.config.content===void 0&&(this.config.content=[]),this.config.content.splice(t,0,e.config),e.parent=this,!0===e.parent.isInitialised&&!1===e.isInitialised&&e._$init()}replaceChild(e,t,n){t=this.layoutManager._$normalizeContentItem(t);var o=Object(l.g)(e,this.contentItems),i=e.element[0].parentNode;if(-1===o)throw new Error('Can\\'t replace child. oldChild is not child of this');i.replaceChild(t.element[0],e.element[0]),!0===n&&(e.parent=null,e._$destroy()),this.contentItems[o]=t,t.parent=this,this.isStack&&(this.header.tabs[o].contentItem=t),!0===t.parent.isInitialised&&!1===t.isInitialised&&t._$init(),this.callDownwards('setSize')}remove(){this.parent.removeChild(this)}popout(){var e=this.layoutManager.createPopout(this);return this.emitBubblingEvent('stateChanged'),e}toggleMaximise(t){t&&t.preventDefault(),!0===this.isMaximised?this.layoutManager._$minimiseItem(this):this.layoutManager._$maximiseItem(this),this.isMaximised=!this.isMaximised,this.emitBubblingEvent('stateChanged')}select(){this.layoutManager.selectedItem!==this&&(this.layoutManager.selectItem(this,!0),this.element.addClass('lm_selected'))}deselect(){this.layoutManager.selectedItem===this&&(this.layoutManager.selectedItem=null,this.element.removeClass('lm_selected'))}setTitle(e){this.config.title=e,this.emit('titleChanged',e),this.emit('stateChanged')}hasId(e){if(!this.config.id)return!1;return'string'==typeof this.config.id?this.config.id===e:this.config.id instanceof Array?-1!==Object(l.g)(e,this.config.id):void 0}addId(e){this.hasId(e)||(this.config.id?'string'==typeof this.config.id?this.config.id=[this.config.id,e]:this.config.id instanceof Array&&this.config.id.push(e):this.config.id=e)}removeId(e){if(!this.hasId(e))throw new Error('Id not found');if('string'==typeof this.config.id)delete this.config.id;else if(this.config.id instanceof Array){var t=Object(l.g)(e,this.config.id);this.config.id.splice(t,1)}}getItemsByFilter(e){var t=[],n=function(o){for(var a=0;a<o.contentItems.length;a++)!0===e(o.contentItems[a])&&t.push(o.contentItems[a]),n(o.contentItems[a])};return n(this),t}getItemsById(e){return this.getItemsByFilter(function(t){return t.config.id instanceof Array?-1!==Object(l.g)(e,t.config.id):t.config.id===e})}getItemsByType(e){return this._$getItemsByProperty('type',e)}getComponentsByName(e){var t,n=this._$getItemsByProperty('componentName',e),o=[];for(t=0;t<n.length;t++)o.push(n[t].instance);return o}_$getItemsByProperty(e,t){return this.getItemsByFilter(function(n){return n[e]===t})}_$setParent(e){this.parent=e}_$highlightDropZone(e,t,n){this.layoutManager.dropTargetIndicator.highlightArea(n)}_$onDrop(e){this.addChild(e)}_$hide(){this._callOnActiveComponents('hide'),this.element.hide(),this.layoutManager.updateSize()}_$show(){this._callOnActiveComponents('show'),this.element.show(),this.layoutManager.updateSize()}_callOnActiveComponents(e){var t,n,o=this.getItemsByType('stack');for(n=0;n<o.length;n++)t=o[n].getActiveContentItem(),t&&t.isComponent&&t.container[e]()}_$destroy(){this.emitBubblingEvent('beforeItemDestroyed'),this.callDownwards('_$destroy',[],!0,!0),this.element.remove(),this.emitBubblingEvent('itemDestroyed')}_$getArea(e){e=e||this.element;var t=e.offset(),n=e.width(),o=e.height();return{x1:t.left,y1:t.top,x2:t.left+n,y2:t.top+o,surface:n*o,contentItem:this}}_$init(){var e;for(this.setSize(),e=0;e<this.contentItems.length;e++)this.childElementContainer.append(this.contentItems[e].element);this.isInitialised=!0,this.emitBubblingEvent('itemCreated'),this.emitBubblingEvent(this.type+'Created')}emitBubblingEvent(e){var t=new i.a(e,this);this.emit(e,t)}_createContentItems(e){var t,n;if(!(e.content instanceof Array))throw new s.a('content must be an Array',e);for(n=0;n<e.content.length;n++)t=this.layoutManager.createContentItem(e.content[n],this),this.contentItems.push(t)}_extendItemNode(e){for(var t in r.a)void 0===e[t]&&(e[t]=r.a[t]);return e}_propagateEvent(e,t){t instanceof i.a&&!1===t.isPropagationStopped&&!0===this.isInitialised&&(!1===this.isRoot&&this.parent?this.parent.emit.apply(this.parent,Array.prototype.slice.call(arguments,0)):this._scheduleEventPropagationToLayoutManager(e,t))}_scheduleEventPropagationToLayoutManager(e,t){-1===Object(l.g)(e,this._throttledEvents)?this.layoutManager.emit(e,t.origin):!0!==this._pendingEventPropagations[e]&&(this._pendingEventPropagations[e]=!0,Object(l.a)(Object(l.c)(this._propagateEventToLayoutManager,this,[e,t])))}_propagateEventToLayoutManager(e,t){this._pendingEventPropagations[e]=!1,this.layoutManager.emit(e,t)}}t.a=c},function(e){var t=e.exports='undefined'!=typeof window&&window.Math==Math?window:'undefined'!=typeof self&&self.Math==Math?self:Function('return this')();'number'==typeof __g&&(__g=t)},function(e,t,n){e.exports=!n(10)(function(){return 7!=Object.defineProperty({},'a',{get:function(){return 7}}).a})},function(e,o,i){'use strict';var a=Math.round,s=i(3),r=i(13),l=i(67),c=i(0);class p extends s.a{constructor(e,t,n,o){super(t,n,o),this.isRow=!e,this.isColumn=e,this.element=$('<div class=\"lm_item lm_'+(e?'column':'row')+'\"></div>'),this.childElementContainer=this.element,this._splitterSize=t.config.dimensions.borderWidth,this._splitterGrabSize=t.config.dimensions.borderGrabWidth,this._isColumn=e,this._dimension=e?'height':'width',this._splitter=[],this._splitterPosition=null,this._splitterMinPosition=null,this._splitterMaxPosition=null}addChild(e,t,o){var a,r,l,i;if(e=this.layoutManager._$normalizeContentItem(e,this),void 0===t&&(t=this.contentItems.length),0<this.contentItems.length?(i=this._createSplitter(n(0,t-1)).element,0<t?(this.contentItems[t-1].element.after(i),i.after(e.element),this._isDocked(t-1)&&(this._splitter[t-1].element.hide(),this._splitter[t].element.show())):(this.contentItems[0].element.before(i),i.before(e.element))):this.childElementContainer.append(e.element),s.a.prototype.addChild.call(this,e,t),a=100*(1/this.contentItems.length),!0===o)return void this.emitBubblingEvent('stateChanged');for(l=0;l<this.contentItems.length;l++)this.contentItems[l]===e?e.config[this._dimension]=a:(r=this.contentItems[l].config[this._dimension]*=(100-a)/100,this.contentItems[l].config[this._dimension]=r);this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged'),this._validateDocking()}undisplayChild(e){var t,o=e.config[this._dimension],i=Object(c.g)(e,this.contentItems),a=n(i-1,0);if(-1===i)throw new Error('Can\\'t undisplay child. ContentItem is not child of this Row or Column');this._splitter[a]&&this._splitter[a].element.hide(),a<this._splitter.length&&this._isDocked(a)&&this._splitter[a].element.hide();var r=this._isDocked();for(t=0;t<this.contentItems.length;t++)this.contentItems[t]===e?this.contentItems[t].config[this._dimension]=0:this._isDocked(t)||(this.contentItems[t].config[this._dimension]+=o/(this.contentItems.length-1-r));1===this.contentItems.length&&s.a.prototype.undisplayChild.call(this,e),this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged')}removeChild(e,t){var o,i,a=e.config[this._dimension],r=Object(c.g)(e,this.contentItems),l=n(r-1,0);if(-1===r)throw new Error('Can\\'t remove child. ContentItem is not child of this Row or Column');this._splitter[l]&&(this._splitter[l]._$destroy(),this._splitter.splice(l,1)),l<this._splitter.length&&this._isDocked(l)&&this._splitter[l].element.hide();var p=this._isDocked();for(o=0;o<this.contentItems.length;o++)this.contentItems[o]!==e&&(this._isDocked(o)||(this.contentItems[o].config[this._dimension]+=a/(this.contentItems.length-1-p)));s.a.prototype.removeChild.call(this,e,t),1===this.contentItems.length&&!0===this.config.isClosable?(i=this.contentItems[0],this.contentItems=[],this.parent.replaceChild(this,i,!0),this._validateDocking(this.parent)):(this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged'),this._validateDocking())}replaceChild(e,t){var n=e.config[this._dimension];s.a.prototype.replaceChild.call(this,e,t),t.config[this._dimension]=n,this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged')}setSize(){0<this.contentItems.length&&(this._calculateRelativeSizes(),this._setAbsoluteSizes()),this.emitBubblingEvent('stateChanged'),this.emit('resize')}dock(e,t,o){if(1===this.contentItems.length)throw new Error('Can\\'t dock child when it single');var a=e.config[this._dimension],s=this.layoutManager.config.dimensions.headerHeight,r=Object(c.g)(e,this.contentItems),l=n(r-1,0);if(-1===r)throw new Error('Can\\'t dock child. ContentItem is not child of this Row or Column');var p,i=e._docker&&e._docker.docked;if('undefined'==typeof t||t!=i){if(i){for(this._splitter[l].element.show(),p=0;p<this.contentItems.length;p++){var d=e._docker.size;this.contentItems[p]===e?e.config[this._dimension]=d:(itemSize=this.contentItems[p].config[this._dimension]*=(100-d)/100,this.contentItems[p].config[this._dimension]=itemSize)}e._docker={docked:!1}}else{if(2>this.contentItems.length-this._isDocked())throw new Error('Can\\'t dock child when it is last in '+this.config.type);var m={column:{first:'top',last:'bottom'},row:{first:'left',last:'right'}}[this.config.type][r?'last':'first'];e.header.position()!=m&&e.header.position(m),this._splitter[l]&&this._splitter[l].element.hide();var _=this._isDocked();for(p=0;p<this.contentItems.length;p++)this.contentItems[p]===e?this.contentItems[p].config[this._dimension]=0:this._isDocked(p)||(this.contentItems[p].config[this._dimension]+=a/(this.contentItems.length-1-_));e._docker={dimension:this._dimension,size:a,realSize:e.element[this._dimension]()-s,docked:!0},o&&e.childElementContainer[this._dimension](0)}e.element.toggleClass('lm_docked',e._docker.docked),this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged'),this._validateDocking()}}_$init(){if(!0!==this.isInitialised){var e;for(s.a.prototype._$init.call(this),e=0;e<this.contentItems.length-1;e++)this.contentItems[e].element.after(this._createSplitter(e).element);for(e=0;e<this.contentItems.length;e++)this.contentItems[e]._header&&this.contentItems[e]._header.docked&&this.dock(this.contentItems[e],!0,!0)}}_setAbsoluteSizes(){var e,t=this._calculateAbsoluteSizes();for(e=0;e<this.contentItems.length;e++)0<t.additionalPixel-e&&t.itemSizes[e]++,this._isColumn?(this.contentItems[e].element.width(t.totalWidth),this.contentItems[e].element.height(t.itemSizes[e])):(this.contentItems[e].element.width(t.itemSizes[e]),this.contentItems[e].element.height(t.totalHeight))}_calculateAbsoluteSizes(){var e,n,o,i=(this.contentItems.length-1)*this._splitterSize,a=this.layoutManager.config.dimensions.headerHeight,s=this.element.width(),r=this.element.height(),l=0,c=[];for(this._isColumn?r-=i:s-=i,e=0;e<this.contentItems.length;e++)this._isDocked(e)&&(this._isColumn?r-=a-this._splitterSize:s-=a-this._splitterSize);for(e=0;e<this.contentItems.length;e++)o=this._isColumn?t(r*(this.contentItems[e].config.height/100)):t(s*(this.contentItems[e].config.width/100)),this._isDocked(e)&&(o=a),l+=o,c.push(o);return n=t((this._isColumn?r:s)-l),{itemSizes:c,additionalPixel:n,totalWidth:s,totalHeight:r}}_calculateRelativeSizes(){var e,t=0,n=[],o=this._isColumn?'height':'width';for(e=0;e<this.contentItems.length;e++)void 0===this.contentItems[e].config[o]?n.push(this.contentItems[e]):t+=this.contentItems[e].config[o];if(100===a(t))return void this._respectMinItemWidth();if(100>a(t)&&0<n.length){for(e=0;e<n.length;e++)n[e].config[o]=(100-t)/n.length;return void this._respectMinItemWidth()}if(100<a(t))for(e=0;e<n.length;e++)n[e].config[o]=50,t+=50;for(e=0;e<this.contentItems.length;e++)this.contentItems[e].config[o]=100*(this.contentItems[e].config[o]/t);this._respectMinItemWidth()}_respectMinItemWidth(){var e,t,n,o=this.layoutManager.config.dimensions?this.layoutManager.config.dimensions.minItemWidth||0:0,s=null,r=[],l=0,c=0,p=0,d=0,m=null,_=[];if(!(this._isColumn||!o||1>=this.contentItems.length)){s=this._calculateAbsoluteSizes();for(var g=0;g<this.contentItems.length;g++)m=this.contentItems[g],d=s.itemSizes[g],d<o?(c+=o-d,n={width:o}):(l+=d-o,n={width:d},r.push(n)),_.push(n);if(!(0==c||c>l)){for(e=c/l,p=c,g=0;g<r.length;g++)n=r[g],t=a((n.width-o)*e),p-=t,n.width-=t;for(0!==p&&(_[_.length-1].width-=p),g=0;g<this.contentItems.length;g++)this.contentItems[g].config.width=100*(_[g].width/s.totalWidth)}}}_createSplitter(e){var t;return t=new l.a(this._isColumn,this._splitterSize,this._splitterGrabSize),t.on('drag',Object(c.c)(this._onSplitterDrag,this,[t]),this),t.on('dragStop',Object(c.c)(this._onSplitterDragStop,this,[t]),this),t.on('dragStart',Object(c.c)(this._onSplitterDragStart,this,[t]),this),this._splitter.splice(e,0,t),t}_getItemsForSplitter(e){var t=Object(c.g)(e,this._splitter);return{before:this.contentItems[t],after:this.contentItems[t+1]}}_isDocked(e){if('undefined'==typeof e){for(var t=0,n=0;n<this.contentItems.length;++n)this._isDocked(n)&&t++;return t}return e<this.contentItems.length?this.contentItems[e]._docker&&this.contentItems[e]._docker.docked:void 0}_validateDocking(e){e=e||this;for(var t=1<e.contentItems.length-e._isDocked(),n=0;n<e.contentItems.length;++n)e.contentItems[n]instanceof r.a&&(e.contentItems[n].header._setDockable(e._isDocked(n)||t),e.contentItems[n].header._$setClosable(t))}_getMinimumDimensions(e){for(var t=0,o=0,a=0;a<e.length;++a)t=n(e[a].minWidth||0,t),o=n(e[a].minHeight||0,o);return{horizontal:t,vertical:o}}_onSplitterDragStart(e){var t=this._getItemsForSplitter(e),n=this.layoutManager.config.dimensions[this._isColumn?'minItemHeight':'minItemWidth'],o=this._getMinimumDimensions(t.before.config.content),i=this._isColumn?o.vertical:o.horizontal,a=this._getMinimumDimensions(t.after.config.content),s=this._isColumn?a.vertical:a.horizontal;this._splitterPosition=0,this._splitterMinPosition=-1*(t.before.element[this._dimension]()-(i||n)),this._splitterMaxPosition=t.after.element[this._dimension]()-(s||n)}_onSplitterDrag(e,t,n){var o=this._isColumn?n:t;o>this._splitterMinPosition&&o<this._splitterMaxPosition&&(this._splitterPosition=o,e.element.css(this._isColumn?'top':'left',o))}_onSplitterDragStop(e){var t=this._getItemsForSplitter(e),n=t.before.element[this._dimension](),o=t.after.element[this._dimension](),i=(this._splitterPosition+n)/(n+o),a=t.before.config[this._dimension]+t.after.config[this._dimension];t.before.config[this._dimension]=i*a,t.after.config[this._dimension]=(1-i)*a,e.element.css({top:0,left:0}),Object(c.a)(Object(c.c)(this.callDownwards,this,['setSize']))}}o.a=p},function(e,t,n){'use strict';var o=n(1),i=n(0);class a extends o.b{constructor(e,t){super(),this._timeout=null,this._eElement=$(e),this._oDocument=$(document),this._eBody=$(document.body),this._nButtonCode=t||0,this._nDelay=200,this._nDistance=10,this._nX=0,this._nY=0,this._nOriginalX=0,this._nOriginalY=0,this._bDragging=!1,this._fMove=Object(i.c)(this.onMouseMove,this),this._fUp=Object(i.c)(this.onMouseUp,this),this._fDown=Object(i.c)(this.onMouseDown,this),this._eElement.on('mousedown touchstart',this._fDown)}destroy(){this._eElement.unbind('mousedown touchstart',this._fDown),this._oDocument.unbind('mouseup touchend',this._fUp),this._eElement=null,this._oDocument=null,this._eBody=null}onMouseDown(e){if(e.preventDefault(),0==e.button||'touchstart'===e.type){var t=this._getCoordinates(e);this._nOriginalX=t.x,this._nOriginalY=t.y,this._oDocument.on('mousemove touchmove',this._fMove),this._oDocument.one('mouseup touchend',this._fUp),this._timeout=setTimeout(Object(i.c)(this._startDrag,this),this._nDelay)}}onMouseMove(e){var t=Math.abs;if(null!=this._timeout){e.preventDefault();var n=this._getCoordinates(e);this._nX=n.x-this._nOriginalX,this._nY=n.y-this._nOriginalY,!1===this._bDragging&&(t(this._nX)>this._nDistance||t(this._nY)>this._nDistance)&&(clearTimeout(this._timeout),this._startDrag()),this._bDragging&&this.emit('drag',this._nX,this._nY,e)}}onMouseUp(e){null!=this._timeout&&(clearTimeout(this._timeout),this._eBody.removeClass('lm_dragging'),this._eElement.removeClass('lm_dragging'),this._oDocument.find('iframe').css('pointer-events',''),this._oDocument.unbind('mousemove touchmove',this._fMove),this._oDocument.unbind('mouseup touchend',this._fUp),!0===this._bDragging&&(this._bDragging=!1,this.emit('dragStop',e,this._nOriginalX+this._nX)))}_startDrag(){this._bDragging=!0,this._eBody.addClass('lm_dragging'),this._eElement.addClass('lm_dragging'),this._oDocument.find('iframe').css('pointer-events','none'),this.emit('dragStart',this._nOriginalX,this._nOriginalY)}_getCoordinates(e){return e=Object(i.e)(e),{x:e.pageX,y:e.pageY}}}t.a=a},function(e,t,n){var o=n(9);e.exports=function(e){if(!o(e))throw TypeError(e+' is not an object!');return e}},function(e){e.exports=function(e){return'object'==typeof e?null!==e:'function'==typeof e}},function(e){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t,n){'use strict';var o=n(0);t.a=class{constructor(){if(this._keys=['settings','hasHeaders','constrainDragToContainer','selectionEnabled','dimensions','borderWidth','minItemHeight','minItemWidth','headerHeight','dragProxyWidth','dragProxyHeight','labels','close','maximise','minimise','popout','content','componentName','componentState','id','width','type','height','isClosable','title','popoutWholeStack','openPopouts','parentId','activeItemIndex','reorderEnabled','borderGrabWidth'],36<this._keys.length)throw new Error('Too many keys in config minifier map');this._values=[!0,!1,'row','column','stack','component','close','maximise','minimise','open in new window']}minifyConfig(e){var t={};return this._nextLevel(e,t,'_min'),t}unminifyConfig(e){var t={};return this._nextLevel(e,t,'_max'),t}_nextLevel(e,t,n){var o,i;for(o in e)e instanceof Array&&(o=parseInt(o,10)),e.hasOwnProperty(o)&&(i=this[n](o,this._keys),'object'==typeof e[o]?(t[i]=e[o]instanceof Array?[]:{},this._nextLevel(e[o],t[i],n)):t[i]=this[n](e[o],this._values))}_min(e,t){if('string'==typeof e&&1===e.length)return'___'+e;var n=Object(o.g)(e,t);return-1===n?e:n.toString(36)}_max(e,t){return'string'==typeof e&&1===e.length?t[parseInt(e,36)]:'string'==typeof e&&'___'===e.substr(0,3)?e[3]:e}}},function(e,t,n){'use strict';var o=n(3),i=n(6);class a extends o.a{constructor(e,t,n){super(e,t,null),this.isRoot=!0,this.type='root',this.element=$('<div class=\"lm_goldenlayout lm_item lm_root\"></div>'),this.childElementContainer=this.element,this._containerElement=n,this._containerElement.append(this.element)}addChild(e){if(0<this.contentItems.length)throw new Error('Root node can only have a single child');e=this.layoutManager._$normalizeContentItem(e,this),this.childElementContainer.append(e.element),o.a.prototype.addChild.call(this,e),this.callDownwards('setSize'),this.emitBubblingEvent('stateChanged')}setSize(e,t){e='undefined'==typeof e?this._containerElement.width():e,t='undefined'==typeof t?this._containerElement.height():t,this.element.width(e),this.element.height(t),this.contentItems[0]&&(this.contentItems[0].element.width(e),this.contentItems[0].element.height(t))}_$highlightDropZone(){this.layoutManager.tabDropPlaceholder.remove(),o.a.prototype._$highlightDropZone.apply(this,arguments)}_$onDrop(e,t){var n;if(e.isComponent&&(n=this.layoutManager.createContentItem({type:'stack',header:e.config.header||{}},this),n._$init(),n.addChild(e),e=n),!this.contentItems.length)this.addChild(e);else{('row'===e.config.type||'column'===e.config.type)&&(n=this.layoutManager.createContentItem({type:'stack'},this),n.addChild(e),e=n);var o='x'==t.side[0]?'row':'column',a='x'==t.side[0]?'width':'height',s='2'==t.side[1],r=this.contentItems[0];if(!(r instanceof i.a)||r.type!=o){var l=this.layoutManager.createContentItem({type:o},this);this.replaceChild(r,l),l.addChild(e,s?0:void 0,!0),l.addChild(r,s?void 0:0,!0),r.config[a]=50,e.config[a]=50,l.callDownwards('setSize')}else{var c=r.contentItems[s?0:r.contentItems.length-1];r.addChild(e,s?0:void 0,!0),c.config[a]*=0.5,e.config[a]=c.config[a],r.callDownwards('setSize')}}}}t.a=a},function(t,o,i){'use strict';var a=i(3),s=i(6),r=i(28),l=i(0);class c extends a.a{constructor(e,t,n){super(e,t,n),this.element=$('<div class=\"lm_item lm_stack\"></div>'),this._activeContentItem=null;var o=e.config;this._header={show:!0===o.settings.hasHeaders&&!1!==t.hasHeaders,popout:o.settings.showPopoutIcon&&o.labels.popout,maximise:o.settings.showMaximiseIcon&&o.labels.maximise,close:o.settings.showCloseIcon&&o.labels.close,minimise:o.labels.minimise},o.header&&Object(l.b)(this._header,o.header),t.header&&Object(l.b)(this._header,t.header),t.content&&t.content[0]&&t.content[0].header&&Object(l.b)(this._header,t.content[0].header),this._dropZones={},this._dropSegment=null,this._contentAreaDimensions=null,this._dropIndex=null,this.isStack=!0,this.childElementContainer=$('<div class=\"lm_items\"></div>'),this.header=new r.a(e,this),this.element.on('mouseleave mouseenter',Object(l.c)(function(e){this._docker&&this._docker.docked&&this.childElementContainer[this._docker.dimension]('mouseenter'==e.type?this._docker.realSize:0)},this)),this.element.append(this.header.element),this.element.append(this.childElementContainer),this._setupHeaderPosition(),this._$validateClosability()}dock(e){this._header.dock&&this.parent instanceof s.a&&this.parent.dock(this,e)}setSize(){if('none'!==this.element.css('display')){var e=this._docker&&this._docker.docked,t={width:this.element.width(),height:this.element.height()};this._header.show&&(t[this._sided?'width':'height']-=this.layoutManager.config.dimensions.headerHeight),e&&(t[this._docker.dimension]=this._docker.realSize),e&&'height'!=this._docker.dimension||this.childElementContainer.width(t.width),e&&'width'!=this._docker.dimension||this.childElementContainer.height(t.height);for(var n=0;n<this.contentItems.length;n++)this.contentItems[n].element.width(t.width),this.contentItems[n].element.height(t.height);this.emit('resize'),this.emitBubblingEvent('stateChanged')}}_$init(){var e,t;if(!0!==this.isInitialised){for(a.a.prototype._$init.call(this),e=0;e<this.contentItems.length;e++)this.header.createTab(this.contentItems[e]),this.contentItems[e]._$hide();if(0<this.contentItems.length){if(t=this.contentItems[this.config.activeItemIndex||0],!t)throw new Error('Configured activeItemIndex out of bounds');this.setActiveContentItem(t)}}}setActiveContentItem(e){if(-1===Object(l.g)(e,this.contentItems))throw new Error('contentItem is not a child of this stack');null!==this._activeContentItem&&this._activeContentItem._$hide(),this._activeContentItem=e,this.header.setActiveContentItem(e),e._$show(),this.emit('activeContentItemChanged',e),this.layoutManager.emit('activeContentItemChanged',e),this.emitBubblingEvent('stateChanged')}getActiveContentItem(){return this.header.activeContentItem}addChild(e,t){t>this.contentItems.length&&(t-=1),e=this.layoutManager._$normalizeContentItem(e,this),a.a.prototype.addChild.call(this,e,t),this.childElementContainer.append(e.element),this.header.createTab(e,t),this.setActiveContentItem(e),this.callDownwards('setSize'),this._$validateClosability(),this.parent instanceof s.a&&this.parent._validateDocking(),this.emitBubblingEvent('stateChanged')}removeChild(e,t){var o=Object(l.g)(e,this.contentItems);a.a.prototype.removeChild.call(this,e,t),this.header.removeTab(e),this.header.activeContentItem===e&&(0<this.contentItems.length?this.setActiveContentItem(this.contentItems[n(o-1,0)]):this._activeContentItem=null),this._$validateClosability(),this.parent instanceof s.a&&this.parent._validateDocking(),this.emitBubblingEvent('stateChanged')}undisplayChild(e){if(1<this.contentItems.length){var t=Object(l.g)(e,this.contentItems);e._$hide&&e._$hide(),this.setActiveContentItem(this.contentItems[0===t?t+1:t-1])}else this.header.hideTab(e),e._$hide&&e._$hide(),a.a.prototype.undisplayChild.call(this,e),this.parent instanceof s.a&&this.parent._validateDocking();this.emitBubblingEvent('stateChanged')}_$validateClosability(){var e,t,n;for(e=this.header._isClosable(),n=0,t=this.contentItems.length;n<t&&!!e;n++)e=this.contentItems[n].config.isClosable;this.header._$setClosable(e)}_$destroy(){a.a.prototype._$destroy.call(this),this.header._$destroy(),this.element.off('mouseenter mouseleave')}_$onDrop(e){if('header'===this._dropSegment)return this._resetHeaderDropZone(),void this.addChild(e,this._dropIndex);if('body'===this._dropSegment)return void this.addChild(e);var t,n,o,i='top'===this._dropSegment||'bottom'===this._dropSegment,a='left'===this._dropSegment||'right'===this._dropSegment,s='top'===this._dropSegment||'left'===this._dropSegment,r=i&&this.parent.isColumn||a&&this.parent.isRow,c=i?'column':'row',p=i?'height':'width';e.isComponent&&(n=this.layoutManager.createContentItem({type:'stack',header:e.config.header||{}},this),n._$init(),n.addChild(e),e=n),('row'===e.config.type||'column'===e.config.type)&&(n=this.layoutManager.createContentItem({type:'stack'},this),n.addChild(e),e=n),r?(t=Object(l.g)(this,this.parent.contentItems),this.parent.addChild(e,s?t:t+1,!0),this.config[p]*=0.5,e.config[p]=this.config[p],this.parent.callDownwards('setSize')):(c=i?'column':'row',o=this.layoutManager.createContentItem({type:c},this),this.parent.replaceChild(this,o),o.addChild(e,s?0:void 0,!0),o.addChild(this,s?void 0:0,!0),this.config[p]=50,e.config[p]=50,o.callDownwards('setSize')),this.parent._validateDocking()}_$highlightDropZone(e,t){var n,o;for(n in this._contentAreaDimensions)if(o=this._contentAreaDimensions[n].hoverArea,o.x1<e&&o.x2>e&&o.y1<t&&o.y2>t)return void('header'===n?(this._dropSegment='header',this._highlightHeaderDropZone(this._sided?t:e)):(this._resetHeaderDropZone(),this._highlightBodyDropZone(n)))}_$getArea(){if('none'===this.element.css('display'))return null;var e=a.a.prototype._$getArea,t=e.call(this,this.header.element),n=e.call(this,this.childElementContainer),o=n.x2-n.x1,i=n.y2-n.y1;return(this._contentAreaDimensions={header:{hoverArea:{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2},highlightArea:{x1:t.x1,y1:t.y1,x2:t.x2,y2:t.y2}}},this._activeContentItem&&!1===this._activeContentItem.isComponent)?t:0===this.contentItems.length?(this._contentAreaDimensions.body={hoverArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y2}},e.call(this,this.element)):(this._contentAreaDimensions.left={hoverArea:{x1:n.x1,y1:n.y1,x2:n.x1+0.25*o,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x1+0.5*o,y2:n.y2}},this._contentAreaDimensions.top={hoverArea:{x1:n.x1+0.25*o,y1:n.y1,x2:n.x1+0.75*o,y2:n.y1+0.5*i},highlightArea:{x1:n.x1,y1:n.y1,x2:n.x2,y2:n.y1+0.5*i}},this._contentAreaDimensions.right={hoverArea:{x1:n.x1+0.75*o,y1:n.y1,x2:n.x2,y2:n.y2},highlightArea:{x1:n.x1+0.5*o,y1:n.y1,x2:n.x2,y2:n.y2}},this._contentAreaDimensions.bottom={hoverArea:{x1:n.x1+0.25*o,y1:n.y1+0.5*i,x2:n.x1+0.75*o,y2:n.y2},highlightArea:{x1:n.x1,y1:n.y1+0.5*i,x2:n.x2,y2:n.y2}},e.call(this,this.element))}_highlightHeaderDropZone(t){var n,o,i,a,s,r,l,c,p,d=this.header.tabs.length,m=!1;if(0===d)return l=this.header.element.offset(),void this.layoutManager.dropTargetIndicator.highlightArea({x1:l.left,x2:l.left+100,y1:l.top+this.header.element.height()-20,y2:l.top+this.header.element.height()});for(n=0;n<d;n++)if(o=this.header.tabs[n].element,s=o.offset(),this._sided?(a=s.top,i=s.left,c=o.height()):(a=s.left,i=s.top,c=o.width()),t>a&&t<a+c){m=!0;break}if(!(!1==m&&t<a)){if(p=a+c/2,t<p?(this._dropIndex=n,o.before(this.layoutManager.tabDropPlaceholder)):(this._dropIndex=e(n+1,d),o.after(this.layoutManager.tabDropPlaceholder)),this._sided){var _=this.layoutManager.tabDropPlaceholder.offset().top;return void this.layoutManager.dropTargetIndicator.highlightArea({x1:i,x2:i+o.innerHeight(),y1:_,y2:_+this.layoutManager.tabDropPlaceholder.width()})}r=this.layoutManager.tabDropPlaceholder.offset().left,this.layoutManager.dropTargetIndicator.highlightArea({x1:r,x2:r+this.layoutManager.tabDropPlaceholder.width(),y1:i,y2:i+o.innerHeight()})}}_resetHeaderDropZone(){this.layoutManager.tabDropPlaceholder.remove()}toggleMaximise(t){this.isMaximised||this.dock(!1),a.a.prototype.toggleMaximise.call(this,t)}_setupHeaderPosition(){var e=0<=['right','left','bottom'].indexOf(this._header.show)&&this._header.show;if(this.header.element.toggle(!!this._header.show),this._side=e,this._sided=0<=['right','left'].indexOf(this._side),this.element.removeClass('lm_left lm_right lm_bottom'),this._side&&this.element.addClass('lm_'+this._side),this.element.find('.lm_header').length&&this.childElementContainer){var t=0<=['right','bottom'].indexOf(this._side)?'before':'after';this.header.element[t](this.childElementContainer),this.callDownwards('setSize')}}_highlightBodyDropZone(e){var t=this._contentAreaDimensions[e].highlightArea;this.layoutManager.dropTargetIndicator.highlightArea(t),this._dropSegment=e}}o.a=c},function(e){e.exports=function(e){if(e==void 0)throw TypeError('Can\\'t call method on '+e);return e}},function(e,t,n){var o=n(44),i=n(20);e.exports=Object.keys||function(e){return o(e,i)}},function(e){var t={}.hasOwnProperty;e.exports=function(e,n){return t.call(e,n)}},function(e,t,n){var o=n(45),i=n(14);e.exports=function(e){return o(i(e))}},function(e){var n=Math.ceil;e.exports=function(e){return isNaN(e=+e)?0:(0<e?t:n)(e)}},function(e,t,n){var o=n(50)('keys'),i=n(52);e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e){e.exports=['constructor','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','toLocaleString','toString','valueOf']},function(e,t,n){var o=n(4),i=n(2),a=n(54),s=n(56),r=n(16),l='prototype',c=function(e,t,n){var p,d,m,_=e&c.F,g=e&c.G,u=e&c.S,f=e&c.P,h=e&c.B,y=e&c.W,v=g?i:i[t]||(i[t]={}),b=v[l],k=g?o:u?o[t]:(o[t]||{})[l];for(p in g&&(n=t),n)d=!_&&k&&void 0!==k[p],d&&r(v,p)||(m=d?k[p]:n[p],v[p]=g&&'function'!=typeof k[p]?n[p]:h&&d?a(m,o):y&&k[p]==m?function(e){var t=function(t,n,o){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n);}return new e(t,n,o)}return e.apply(this,arguments)};return t[l]=e[l],t}(m):f&&'function'==typeof m?a(Function.call,m):m,f&&((v.virtual||(v.virtual={}))[p]=m,e&c.R&&b&&!b[p]&&s(b,p,m)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var o=n(8),i=n(57),a=n(58),s=Object.defineProperty;t.f=n(5)?Object.defineProperty:function(e,t,n){if(o(e),t=a(t,!0),o(n),i)try{return s(e,t,n)}catch(t){}if('get'in n||'set'in n)throw TypeError('Accessors not supported!');return'value'in n&&(e[t]=n.value),e}},function(e,t,n){var o=n(9),i=n(4).document,a=o(i)&&o(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t){'use strict';t.a=class{constructor(e,t){this._reactComponent=null,this._originalComponentWillUpdate=null,this._container=e,this._initialState=t,this._reactClass=this._getReactClass(),this._container.on('open',this._render,this),this._container.on('destroy',this._destroy,this)}_render(){this._reactComponent=ReactDOM.render(this._getReactComponent(),this._container.getElement()[0]),this._originalComponentWillUpdate=this._reactComponent.componentWillUpdate||function(){},this._reactComponent.componentWillUpdate=this._onUpdate.bind(this),this._container.getState()&&this._reactComponent.setState(this._container.getState())}_destroy(){ReactDOM.unmountComponentAtNode(this._container.getElement()[0]),this._container.off('open',this._render,this),this._container.off('destroy',this._destroy,this)}_onUpdate(e,t){this._container.setState(t),this._originalComponentWillUpdate.call(this._reactComponent,e,t)}_getReactClass(){var e,t=this._container._config.component;if(!t)throw new Error('No react component name. type: react-component needs a field `component`');if(e=this._container.layoutManager.getComponent(t),!e)throw new Error('React component \"'+t+'\" not found. Please register all components with GoldenLayout using `registerComponent(name, component)`');return e}_getReactComponent(){var e={glEventHub:this._container.layoutManager.eventHub,glContainer:this._container},t=$.extend(e,this._container._config.props);return React.createElement(this._reactClass,t)}}},function(e,t,n){'use strict';var o=n(1),i=n(0);class a extends o.b{constructor(e){super(),this._layoutManager=e,this._dontPropagateToParent=null,this._childEventSource=null,this.on(o.a,Object(i.c)(this._onEventFromThis,this)),this._boundOnEventFromChild=Object(i.c)(this._onEventFromChild,this),$(window).on('gl_child_event',this._boundOnEventFromChild)}_onEventFromThis(){var e=Array.prototype.slice.call(arguments);this._layoutManager.isSubWindow&&e[0]!==this._dontPropagateToParent&&this._propagateToParent(e),this._propagateToChildren(e),this._dontPropagateToParent=null,this._childEventSource=null}_$onEventFromParent(e){this._dontPropagateToParent=e[0],this.emit.apply(this,e)}_onEventFromChild(e){this._childEventSource=e.originalEvent.__gl,this.emit.apply(this,e.originalEvent.__glArgs)}_propagateToParent(e){var t,n='gl_child_event';document.createEvent?(t=window.opener.document.createEvent('HTMLEvents'),t.initEvent(n,!0,!0)):(t=window.opener.document.createEventObject(),t.eventType=n),t.eventName=n,t.__glArgs=e,t.__gl=this._layoutManager,document.createEvent?window.opener.dispatchEvent(t):window.opener.fireEvent('on'+t.eventType,t)}_propagateToChildren(e){var t,n;for(n=0;n<this._layoutManager.openPopouts.length;n++)t=this._layoutManager.openPopouts[n].getGlInstance(),t&&t!==this._childEventSource&&t.eventHub._$onEventFromParent(e)}destroy(){$(window).off('gl_child_event',this._boundOnEventFromChild)}}t.a=a},function(e,t){'use strict';t.a=class{constructor(e,t){this.name=e,this.origin=t,this.isPropagationStopped=!1}stopPropagation(){this.isPropagationStopped=!0}}},function(e,t){'use strict';class n extends Error{constructor(e,t){super(),this.name='Configuration Error',this.message=e,this.node=t}}t.a=n},function(e,t,n){'use strict';var o=n(1),a=n(29),i=n(31),s=n(0);class r extends o.b{constructor(e,t){super(),this.layoutManager=e,this.element=$('<div class=\"lm_header\"><ul class=\"lm_tabs\"></ul><ul class=\"lm_controls\"></ul><ul class=\"lm_tabdropdown_list\"></ul></div>'),!0===this.layoutManager.config.settings.selectionEnabled&&(this.element.addClass('lm_selectable'),this.element.on('click touchstart',Object(s.c)(this._onHeaderClick,this))),this.tabsContainer=this.element.find('.lm_tabs'),this.tabDropdownContainer=this.element.find('.lm_tabdropdown_list'),this.tabDropdownContainer.hide(),this.controlsContainer=this.element.find('.lm_controls'),this.parent=t,this.parent.on('resize',this._updateTabSizes,this),this.tabs=[],this.tabsMarkedForRemoval=[],this.activeContentItem=null,this.closeButton=null,this.dockButton=null,this.tabDropdownButton=null,this.hideAdditionalTabsDropdown=Object(s.c)(this._hideAdditionalTabsDropdown,this),$(document).mouseup(this.hideAdditionalTabsDropdown),this._lastVisibleTabIndex=-1,this._tabControlOffset=this.layoutManager.config.settings.tabControlOffset,this._createControls()}createTab(e,t){var n,o;for(o=0;o<this.tabs.length;o++)if(this.tabs[o].contentItem===e)return;return n=new a.a(this,e),0===this.tabs.length?(this.tabs.push(n),void this.tabsContainer.append(n.element)):void(void 0===t&&(t=this.tabs.length),0<t?this.tabs[t-1].element.after(n.element):this.tabs[0].element.before(n.element),this.tabs.splice(t,0,n),this._updateTabSizes())}removeTab(e){for(var t=0;t<this.tabs.length;t++)if(this.tabs[t].contentItem===e)return this.tabs[t]._$destroy(),void this.tabs.splice(t,1);for(t=0;t<this.tabsMarkedForRemoval.length;t++)if(this.tabsMarkedForRemoval[t].contentItem===e)return this.tabsMarkedForRemoval[t]._$destroy(),void this.tabsMarkedForRemoval.splice(t,1);throw new Error('contentItem is not controlled by this header')}hideTab(e){for(var t=0;t<this.tabs.length;t++)if(this.tabs[t].contentItem===e)return this.tabs[t].element.hide(),this.tabsMarkedForRemoval.push(this.tabs[t]),void this.tabs.splice(t,1);throw new Error('contentItem is not controlled by this header')}setActiveContentItem(e){var t,n,o,i;for(t=0;t<this.tabs.length;t++)o=this.tabs[t].contentItem===e,this.tabs[t].setActive(o),!0===o&&(this.activeContentItem=e,this.parent.config.activeItemIndex=t);if(this.layoutManager.config.settings.reorderOnTabMenuClick&&-1!==this._lastVisibleTabIndex&&this.parent.config.activeItemIndex>this._lastVisibleTabIndex){for(i=this.tabs[this.parent.config.activeItemIndex],n=this.parent.config.activeItemIndex;0<n;n--)this.tabs[n]=this.tabs[n-1];this.tabs[0]=i,this.parent.config.activeItemIndex=0}this._updateTabSizes(),this.parent.emitBubblingEvent('stateChanged')}position(e){var t=this.parent._header.show;if(this.parent._docker&&this.parent._docker.docked)throw new Error('Can\\'t change header position in docked stack');return t&&!this.parent._side&&(t='top'),void 0!==e&&this.parent._header.show!=e&&(this.parent._header.show=e,this.parent._setupHeaderPosition()),t}_$setClosable(e){return this._canDestroy=e||1<this.tabs.length,this.closeButton&&this._isClosable()&&(this.closeButton.element[e?'show':'hide'](),!0)}_setDockable(e){return this.dockButton&&this.parent._header&&this.parent._header.dock&&(this.dockButton.element.toggle(!!e),!0)}_$destroy(){this.emit('destroy',this);for(var e=0;e<this.tabs.length;e++)this.tabs[e]._$destroy();$(document).off('mouseup',this.hideAdditionalTabsDropdown),this.element.remove()}_getHeaderSetting(e){if(e in this.parent._header)return this.parent._header[e]}_createControls(){var e,t,n,o,a,r,l,c,p;if(p=Object(s.c)(this._showAdditionalTabsDropdown,this),c=this.layoutManager.config.labels.tabDropdown,this.tabDropdownButton=new i.a(this,c,'lm_tabdropdown',p),this.tabDropdownButton.element.hide(),this.parent._header&&this.parent._header.dock){var d=Object(s.c)(this.parent.dock,this.parent);n=this._getHeaderSetting('dock'),this.dockButton=new i.a(this,n,'lm_dock',d)}this._getHeaderSetting('popout')&&(t=Object(s.c)(this._onPopoutClick,this),n=this._getHeaderSetting('popout'),new i.a(this,n,'lm_popout',t)),this._getHeaderSetting('maximise')&&(r=Object(s.c)(this.parent.toggleMaximise,this.parent),o=this._getHeaderSetting('maximise'),a=this._getHeaderSetting('minimise'),l=new i.a(this,o,'lm_maximise',r),this.parent.on('maximised',function(){l.element.attr('title',a)}),this.parent.on('minimised',function(){l.element.attr('title',o)})),this._isClosable()&&(e=Object(s.c)(this.parent.remove,this.parent),n=this._getHeaderSetting('close'),this.closeButton=new i.a(this,n,'lm_close',e))}_showAdditionalTabsDropdown(){this.tabDropdownContainer.show()}_hideAdditionalTabsDropdown(){this.tabDropdownContainer.hide()}_isClosable(){return this.parent.config.isClosable&&this.layoutManager.config.settings.showCloseIcon}_onPopoutClick(){!0===this.layoutManager.config.settings.popoutWholeStack?this.parent.popout():this.activeContentItem.popout()}_onHeaderClick(e){e.target===this.element[0]&&this.parent.select()}_updateTabSizes(e){if(0!==this.tabs.length){this.tabDropdownButton.element.toggle(!0===e);var t=function(e){return e?'width':'height'};this.element.css(t(!this.parent._sided),''),this.element[t(this.parent._sided)](this.layoutManager.config.dimensions.headerHeight);var n,o,i,a,s,r=this.element.outerWidth()-this.controlsContainer.outerWidth()-this._tabControlOffset,l=0,c=0,p=0,d=this.layoutManager.config.settings.tabOverlapAllowance,m=!1,_=this.activeContentItem?this.tabs.indexOf(this.activeContentItem.tab):0,g=this.tabs[_];for(this.parent._sided&&(r=this.element.outerHeight()-this.controlsContainer.outerHeight()-this._tabControlOffset),this._lastVisibleTabIndex=-1,o=0;o<this.tabs.length;o++)if(n=this.tabs[o].element,this.tabsContainer.append(n),s=n.outerWidth()+parseInt(n.css('margin-right'),10),l+=s,c=_<=o?l:l+g.element.outerWidth()+parseInt(g.element.css('margin-right'),10),c>r){if(!!m)o===_&&(n.css({\"z-index\":'auto',\"margin-left\":''}),this.tabsContainer.append(n));else if(p=0<_&&_<=o?(c-r)/(o-1):(c-r)/o,p<d){for(i=0;i<=o;i++)a=i!==_&&0!==i?'-'+p+'px':'',this.tabs[i].element.css({\"z-index\":o-i,\"margin-left\":a});this._lastVisibleTabIndex=o,this.tabsContainer.append(n)}else m=!0;if(m&&o!==_)if(e)n.css({\"z-index\":'auto',\"margin-left\":''}),this.tabDropdownContainer.append(n);else return void this._updateTabSizes(!0)}else this._lastVisibleTabIndex=o,n.css({\"z-index\":'auto',\"margin-left\":''}),this.tabsContainer.append(n)}}}t.a=r},function(e,t,n){'use strict';var o=n(7),i=n(30),a=n(0);t.a=class{constructor(e,t){this.header=e,this.contentItem=t,this.element=$('<li class=\"lm_tab\"><i class=\"lm_left\"></i><span class=\"lm_title\"></span><div class=\"lm_close_tab\"></div><i class=\"lm_right\"></i></li>'),this.titleElement=this.element.find('.lm_title'),this.closeElement=this.element.find('.lm_close_tab'),this.closeElement[t.config.isClosable?'show':'hide'](),this.isActive=!1,this.setTitle(t.config.title),this.contentItem.on('titleChanged',this.setTitle,this),this._layoutManager=this.contentItem.layoutManager,!0===this._layoutManager.config.settings.reorderEnabled&&!0===t.config.reorderEnabled&&(this._dragListener=new o.a(this.element),this._dragListener.on('dragStart',this._onDragStart,this),this.contentItem.on('destroy',this._dragListener.destroy,this._dragListener)),this._onTabClickFn=Object(a.c)(this._onTabClick,this),this._onCloseClickFn=Object(a.c)(this._onCloseClick,this),this.element.on('mousedown touchstart',this._onTabClickFn),this.contentItem.config.isClosable?(this.closeElement.on('click touchstart',this._onCloseClickFn),this.closeElement.on('mousedown',this._onCloseMousedown)):this.closeElement.remove(),this.contentItem.tab=this,this.contentItem.emit('tab',this),this.contentItem.layoutManager.emit('tabCreated',this),this.contentItem.isComponent&&(this.contentItem.container.tab=this,this.contentItem.container.emit('tab',this))}setTitle(e){this.element.attr('title',Object(a.k)(e)),this.titleElement.html(e)}setActive(e){e===this.isActive||(this.isActive=e,e?this.element.addClass('lm_active'):this.element.removeClass('lm_active'))}_$destroy(){this.element.off('mousedown touchstart',this._onTabClickFn),this.closeElement.off('click touchstart',this._onCloseClickFn),this._dragListener&&(this.contentItem.off('destroy',this._dragListener.destroy,this._dragListener),this._dragListener.off('dragStart',this._onDragStart),this._dragListener=null),this.element.remove()}_onDragStart(e,t){return this.header._canDestroy?void(!0===this.contentItem.parent.isMaximised&&this.contentItem.parent.toggleMaximise(),new i.a(e,t,this._dragListener,this._layoutManager,this.contentItem,this.header.parent)):null}_onTabClick(e){if(0===e.button||'touchstart'===e.type){var t=this.header.parent.getActiveContentItem();this.contentItem!==t&&this.header.parent.setActiveContentItem(this.contentItem)}else 1===e.button&&this.contentItem.config.isClosable&&this._onCloseClick(e)}_onCloseClick(e){e.stopPropagation();this.header._canDestroy&&this.header.parent.removeChild(this.contentItem)}_onCloseMousedown(e){e.stopPropagation()}}},function(e,t,n){'use strict';var o=n(1),i=n(0);class a extends o.b{constructor(e,t,n,o,a,s){super(),this._dragListener=n,this._layoutManager=o,this._contentItem=a,this._originalParent=s,this._area=null,this._lastValidArea=null,this._dragListener.on('drag',this._onDrag,this),this._dragListener.on('dragStop',this._onDrop,this),this.element=$('<div class=\"lm_dragProxy\"><div class=\"lm_header\"><ul class=\"lm_tabs\"><li class=\"lm_tab lm_active\"><i class=\"lm_left\"></i><span class=\"lm_title\"></span><i class=\"lm_right\"></i></li></ul></div><div class=\"lm_content\"></div></div>'),s&&s._side&&(this._sided=s._sided,this.element.addClass('lm_'+s._side),0<=['right','bottom'].indexOf(s._side)&&this.element.find('.lm_content').after(this.element.find('.lm_header'))),this.element.css({left:e,top:t}),this.element.find('.lm_tab').attr('title',Object(i.k)(this._contentItem.config.title)),this.element.find('.lm_title').html(this._contentItem.config.title),this.childElementContainer=this.element.find('.lm_content'),this.childElementContainer.append(a.element),this._undisplayTree(),this._layoutManager._$calculateItemAreas(),this._setDimensions(),$(document.body).append(this.element);var r=this._layoutManager.container.offset();this._minX=r.left,this._minY=r.top,this._maxX=this._layoutManager.container.width()+this._minX,this._maxY=this._layoutManager.container.height()+this._minY,this._width=this.element.width(),this._height=this.element.height(),this._setDropPosition(e,t)}_onDrag(e,t,n){n=Object(i.e)(n);var o=n.pageX,a=n.pageY,s=o>this._minX&&o<this._maxX&&a>this._minY&&a<this._maxY;(s||!0!==this._layoutManager.config.settings.constrainDragToContainer)&&this._setDropPosition(o,a)}_setDropPosition(e,t){this.element.css({left:e,top:t}),this._area=this._layoutManager._$getArea(e,t),null!==this._area&&(this._lastValidArea=this._area,this._area.contentItem._$highlightDropZone(e,t,this._area))}_onDrop(){this._updateTree(),this._layoutManager.dropTargetIndicator.hide(),null===this._area?null===this._lastValidArea?this._originalParent?this._originalParent.addChild(this._contentItem):this._contentItem._$destroy():this._lastValidArea.contentItem._$onDrop(this._contentItem,this._lastValidArea):this._area.contentItem._$onDrop(this._contentItem,this._area),this.element.remove(),this._layoutManager.emit('itemDropped',this._contentItem)}_undisplayTree(){this._contentItem.parent&&this._contentItem.parent.undisplayChild(this._contentItem)}_updateTree(){this._contentItem.parent&&this._contentItem.parent.removeChild(this._contentItem,!0),this._contentItem._$setParent(this)}_setDimensions(){var e=this._layoutManager.config.dimensions,t=e.dragProxyWidth,n=e.dragProxyHeight;this.element.width(t),this.element.height(n),t-=this._sided?e.headerHeight:0,n-=this._sided?0:e.headerHeight,this.childElementContainer.width(t),this.childElementContainer.height(n),this._contentItem.element.width(t),this._contentItem.element.height(n),this._contentItem.callDownwards('_$show'),this._contentItem.callDownwards('setSize')}}t.a=a},function(e,t){'use strict';t.a=class{constructor(e,t,n,o){this._header=e,this.element=$('<li class=\"'+n+'\" title=\"'+t+'\"></li>'),this._header.on('destroy',this._$destroy,this),this._action=o,this.element.on('click touchstart',this._action),this._header.controlsContainer.append(this.element)}_$destroy(){this.element.off(),this.element.remove()}}},function(e,t,n){'use strict';var o=n(3),i=n(33);class a extends o.a{constructor(e,t,n){super(e,t,n);var o=e.getComponent(this.config.componentName),a=$.extend(!0,{},this.config.componentState||{});a.componentName=this.config.componentName,this.componentName=this.config.componentName,''===this.config.title&&(this.config.title=this.config.componentName),this.isComponent=!0,this.container=new i.a(this.config,this,e),this.instance=new o(this.container,a),this.element=this.container._element}close(){this.parent.removeChild(this)}setSize(){'none'!==this.element.css('display')&&this.container._$setSize(this.element.width(),this.element.height())}_$init(){o.a.prototype._$init.call(this),this.container.emit('open')}_$hide(){this.container.hide(),o.a.prototype._$hide.call(this)}_$show(){this.container.show(),o.a.prototype._$show.call(this)}_$shown(){this.container.shown(),o.a.prototype._$shown.call(this)}_$destroy(){this.container.emit('destroy',this),o.a.prototype._$destroy.call(this)}_$getArea(){return null}}t.a=a},function(e,t,n){'use strict';var o=n(1);class i extends o.b{constructor(e,t,n){super(),this.width=null,this.height=null,this.title=e.componentName,this.parent=t,this.layoutManager=n,this.isHidden=!1,this._config=e,this._element=$('<div class=\"lm_item_container\"><div class=\"lm_content\"></div></div>'),this._contentElement=this._element.find('.lm_content')}getElement(){return this._contentElement}hide(){this.emit('hide'),this.isHidden=!0,this._element.hide()}show(){this.emit('show'),this.isHidden=!1,this._element.show(),(0!=this.height||0!=this.width)&&this.emit('shown')}setSize(e,t){for(var n,o,a,s,r,l,i=this.parent,c=this;!i.isColumn&&!i.isRow;)if(c=i,i=i.parent,i.isRoot)return!1;for(a=i.isColumn?'height':'width',s='height'===a?t:e,n=this[a]*(1/(c.config[a]/100)),o=100*(s/n),r=(c.config[a]-o)/(i.contentItems.length-1),l=0;l<i.contentItems.length;l++)i.contentItems[l]===c?i.contentItems[l].config[a]=o:i.contentItems[l].config[a]+=r;return i.callDownwards('setSize'),!0}close(){this._config.isClosable&&(this.emit('close'),this.parent.close())}getState(){return this._config.componentState}extendState(e){this.setState($.extend(!0,this.getState(),e))}setState(e){this._config.componentState=e,this.parent.emitBubblingEvent('stateChanged')}setTitle(e){this.parent.setTitle(e)}_$setSize(e,t){(e!==this.width||t!==this.height)&&(this.width=e,this.height=t,$.zepto?this._contentElement.width(e):this._contentElement.outerWidth(e),$.zepto?this._contentElement.height(t):this._contentElement.outerHeight(t),this.emit('resize'))}}t.a=i},function(e,n,o){'use strict';var i=o(68),a=o.n(i),s=o(1),r=o(11),l=o(0);class c extends s.b{constructor(e,t,n,o,i){super(),this.isInitialised=!1,this._config=e,this._dimensions=t,this._parentId=n,this._indexInParent=o,this._layoutManager=i,this._popoutWindow=null,this._id=null,this._createWindow()}toConfig(){if(!1===this.isInitialised)throw new Error('Can\\'t create config, layout not yet initialised');return{dimensions:{width:this.getGlInstance().width,height:this.getGlInstance().height,left:this._popoutWindow.screenX||this._popoutWindow.screenLeft,top:this._popoutWindow.screenY||this._popoutWindow.screenTop},content:this.getGlInstance().toConfig().content,parentId:this._parentId,indexInParent:this._indexInParent}}getGlInstance(){return this._popoutWindow.__glInstance}getWindow(){return this._popoutWindow}close(){if(this.getGlInstance())this.getGlInstance()._$closeWindow();else try{this.getWindow().close()}catch(t){}}popIn(){var e,t,n=this._indexInParent;this._parentId&&(e=$.extend(!0,{},this.getGlInstance().toConfig()).content[0],t=this._layoutManager.root.getItemsById(this._parentId)[0],!t&&(t=0<this._layoutManager.root.contentItems.length?this._layoutManager.root.contentItems[0]:this._layoutManager.root,n=0)),t.addChild(e,this._indexInParent),this.close()}_createWindow(){var e,n=this._createUrl(),o=t(1e6*Math.random()).toString(36),i=this._serializeWindowOptions({width:this._dimensions.width,height:this._dimensions.height,innerWidth:this._dimensions.width,innerHeight:this._dimensions.height,menubar:'no',toolbar:'no',location:'no',personalbar:'no',resizable:'yes',scrollbars:'no',status:'no'});if(this._popoutWindow=window.open(n,o,i),!this._popoutWindow)if(!0===this._layoutManager.config.settings.blockedPopoutsThrowError){var a=new Error('Popout blocked');throw a.type='popoutBlocked',a}else return;$(this._popoutWindow).on('load',Object(l.c)(this._positionWindow,this)).on('unload beforeunload',Object(l.c)(this._onClose,this)),e=setInterval(Object(l.c)(function(){this._popoutWindow.__glInstance&&this._popoutWindow.__glInstance.isInitialised&&(this._onInitialised(),clearInterval(e))},this),10)}_serializeWindowOptions(e){var t,n=[];for(t in e)n.push(t+'='+e[t]);return n.join(',')}_createUrl(){var e,t={content:this._config},n='gl-window-config-'+Object(l.f)();t=new r.a().minifyConfig(t);try{localStorage.setItem(n,a()(t))}catch(t){throw new Error('Error while writing to localStorage '+t.toString())}return e=document.location.href.split('?'),1===e.length?e[0]+'?gl-window='+n:document.location.href+'&gl-window='+n}_positionWindow(){this._popoutWindow.moveTo(this._dimensions.left,this._dimensions.top),this._popoutWindow.focus()}_onInitialised(){this.isInitialised=!0,this.getGlInstance().on('popIn',this.popIn,this),this.emit('initialised')}_onClose(){setTimeout(Object(l.c)(this.emit,this,['closed']),50)}}n.a=c},function(e,t,n){'use strict';Object.defineProperty(t,'__esModule',{value:!0});var o=n(36),i=n.n(o),a=n(37),s=n.n(a),r=n(38),l=n.n(r),c=n(39);n.d(t,'default',function(){return c.a});var p=n(33);n.d(t,'ItemContainer',function(){return p.a});var d=n(34);n.d(t,'BrowserPopout',function(){return d.a});var m=n(28);n.d(t,'Header',function(){return m.a});var _=n(31);n.d(t,'HeaderButton',function(){return _.a});var g=n(29);n.d(t,'Tab',function(){return g.a});var u=n(32);n.d(t,'Component',function(){return u.a});var f=n(12);n.d(t,'Root',function(){return f.a});var h=n(6);n.d(t,'RowOrColumn',function(){return h.a});var y=n(13);n.d(t,'Stack',function(){return y.a});var v=n(26);n.d(t,'BubblingEvent',function(){return v.a});var b=n(11);n.d(t,'ConfigMinifier',function(){return b.a});var k=n(7);n.d(t,'DragListener',function(){return k.a});var x=n(1);n.d(t,'EventEmitter',function(){return x.b});var D=n(25);n.d(t,'EventHub',function(){return D.a});var w=n(24);n.d(t,'ReactComponentHandler',function(){return w.a}),{}.ES6&&(n(74),n(77))},function(){},function(){},function(){},function(e,o,i){'use strict';var a=i(1),s=i(24),r=i(11),l=i(25),c=i(12),p=i(6),d=i(13),m=i(32),_=i(3),g=i(34),u=i(70),f=i(71),h=i(72),y=i(27),v=i(73),b=i(0);class k extends a.b{constructor(e,t){if(!$){var n='jQuery is missing as dependency for GoldenLayout. ';throw n+='Please either expose $ on GoldenLayout\\'s scope (e.g. window) or add \"jquery\" to ',n+='your paths when using RequireJS/AMD',new Error(n)}super(),this.isInitialised=!1,this._isFullPage=!1,this._resizeTimeoutId=null,this._components={\"lm-react-component\":s.a},this._itemAreas=[],this._resizeFunction=Object(b.c)(this._onResize,this),this._unloadFunction=Object(b.c)(this._onUnload,this),this._maximisedItem=null,this._maximisePlaceholder=$('<div class=\"lm_maximise_place\"></div>'),this._creationTimeoutPassed=!1,this._subWindowsCreated=!1,this._dragSources=[],this._updatingColumnsResponsive=!1,this._firstLoad=!0,this.width=null,this.height=null,this.root=null,this.openPopouts=[],this.selectedItem=null,this.isSubWindow=!1,this.eventHub=new l.a(this),this.config=this._createConfig(e),this.container=t,this.dropTargetIndicator=null,this.transitionIndicator=null,this.tabDropPlaceholder=$('<div class=\"lm_drop_tab_placeholder\"></div>'),!0===this.isSubWindow&&$('body').css('visibility','hidden'),this._typeToItem={column:Object(b.c)(p.a,this,[!0]),row:Object(b.c)(p.a,this,[!1]),stack:d.a,component:m.a}}minifyConfig(e){return new r.a().minifyConfig(e)}unminifyConfig(e){return new r.a().unminifyConfig(e)}registerComponent(e,t){if('function'!=typeof t)throw new Error('Please register a constructor function');if(void 0!==this._components[e])throw new Error('Component '+e+' is already registered');this._components[e]=t}toConfig(e){var t,n,o;if(!1===this.isInitialised)throw new Error('Can\\'t create config, layout not yet initialised');if(e&&!(e instanceof _.a))throw new Error('Root must be a ContentItem');for(t={settings:Object(b.b)({},this.config.settings),dimensions:Object(b.b)({},this.config.dimensions),labels:Object(b.b)({},this.config.labels)},t.content=[],n=function(e,t){var o,a;for(o in t.config)'content'!==o&&(e[o]=t.config[o]);if(t.contentItems.length)for(e.content=[],a=0;a<t.contentItems.length;a++)e.content[a]={},n(e.content[a],t.contentItems[a])},e?n(t,{contentItems:[e]}):n(t,this.root),this._$reconcilePopoutWindows(),t.openPopouts=[],o=0;o<this.openPopouts.length;o++)t.openPopouts.push(this.openPopouts[o].toConfig());return t.maximisedItemId=this._maximisedItem?'__glMaximised':null,t}getComponent(e){if(this._components[e]===void 0)throw new y.a('Unknown component \"'+e+'\"');return this._components[e]}init(){return!1===this._subWindowsCreated&&(this._createSubWindows(),this._subWindowsCreated=!0),'loading'===document.readyState||null===document.body?void $(document).ready(Object(b.c)(this.init,this)):!0===this.isSubWindow&&!1===this._creationTimeoutPassed?(setTimeout(Object(b.c)(this.init,this),7),void(this._creationTimeoutPassed=!0)):void(!0===this.isSubWindow&&this._adjustToWindowMode(),this._setContainer(),this.dropTargetIndicator=new f.a(this.container),this.transitionIndicator=new h.a,this.updateSize(),this._create(this.config),this._bindEvents(),this.isInitialised=!0,this._adjustColumnsResponsive(),this.emit('initialised'))}updateSize(e,t){2===arguments.length?(this.width=e,this.height=t):(this.width=this.container.width(),this.height=this.container.height()),!0===this.isInitialised&&(this.root.callDownwards('setSize',[this.width,this.height]),this._maximisedItem&&(this._maximisedItem.element.width(this.container.width()),this._maximisedItem.element.height(this.container.height()),this._maximisedItem.callDownwards('setSize')),this._adjustColumnsResponsive())}destroy(){!1===this.isInitialised||(this._onUnload(),$(window).off('resize',this._resizeFunction),$(window).off('unload beforeunload',this._unloadFunction),this.root.callDownwards('_$destroy',[],!0),this.root.contentItems=[],this.tabDropPlaceholder.remove(),this.dropTargetIndicator.destroy(),this.transitionIndicator.destroy(),this.eventHub.destroy(),this._dragSources.forEach(function(e){e._dragListener.destroy(),e._element=null,e._itemConfig=null,e._dragListener=null}),this._dragSources=[])}createContentItem(e,t){var n,o;if('string'!=typeof e.type)throw new y.a('Missing parameter \\'type\\'',e);if('react-component'===e.type&&(e.type='component',e.componentName='lm-react-component'),!this._typeToItem[e.type])throw n='Unknown type \\''+e.type+'\\'. Valid types are '+Object(b.j)(this._typeToItem).join(','),new y.a(n);return'component'!==e.type||t instanceof d.a||!t||!0===this.isSubWindow&&t instanceof c.a||(e={type:'stack',width:e.width,height:e.height,content:[e]}),o=new this._typeToItem[e.type](this,e,t),o}createPopout(e,t,n,o){var i,a,s,r,l,c,p=e,d=e instanceof _.a,m=this;if(n=n||null,d){for(p=this.toConfig(e).content,n=Object(b.f)(),r=e.parent,l=e;1===r.contentItems.length&&!r.isRoot;)r=r.parent,l=l.parent;r.addId(n),isNaN(o)&&(o=Object(b.g)(l,r.contentItems))}else p instanceof Array||(p=[p]);return!t&&d&&(i=window.screenX||window.screenLeft,a=window.screenY||window.screenTop,s=e.element.offset(),t={left:i+s.left,top:a+s.top,width:e.element.width(),height:e.element.height()}),t||d||(t={left:window.screenX||window.screenLeft+20,top:window.screenY||window.screenTop+20,width:500,height:309}),d&&e.remove(),c=new g.a(p,t,n,o,this),c.on('initialised',function(){m.emit('windowOpened',c)}),c.on('closed',function(){m._$reconcilePopoutWindows()}),this.openPopouts.push(c),c}createDragSource(e,t){this.config.settings.constrainDragToContainer=!1;var n=new u.a($(e),t,this);return this._dragSources.push(n),n}selectItem(e,t){if(!0!==this.config.settings.selectionEnabled)throw new Error('Please set selectionEnabled to true to use this feature');e===this.selectedItem||(null!==this.selectedItem&&this.selectedItem.deselect(),e&&!0!==t&&e.select(),this.selectedItem=e,this.emit('selectionChanged',e))}_$maximiseItem(e){null!==this._maximisedItem&&this._$minimiseItem(this._maximisedItem),this._maximisedItem=e,this._maximisedItem.addId('__glMaximised'),e.element.addClass('lm_maximised'),e.element.after(this._maximisePlaceholder),this.root.element.prepend(e.element),e.element.width(this.container.width()),e.element.height(this.container.height()),e.callDownwards('setSize'),this._maximisedItem.emit('maximised'),this.emit('stateChanged')}_$minimiseItem(e){e.element.removeClass('lm_maximised'),e.removeId('__glMaximised'),this._maximisePlaceholder.after(e.element),this._maximisePlaceholder.remove(),e.parent.callDownwards('setSize'),this._maximisedItem=null,e.emit('minimised'),this.emit('stateChanged')}_$closeWindow(){window.setTimeout(function(){window.close()},1)}_$getArea(e,t){var n,o,i=Infinity,a=null;for(n=0;n<this._itemAreas.length;n++)o=this._itemAreas[n],e>o.x1&&e<o.x2&&t>o.y1&&t<o.y2&&i>o.surface&&(i=o.surface,a=o);return a}_$createRootItemAreas(){var e=50,t={y2:0,x2:0,y1:'y2',x1:'x2'};for(var n in t){var o=this.root._$getArea();o.side=n,o[n]=t[n]?o[t[n]]-e:e,o.surface=(o.x2-o.x1)*(o.y2-o.y1),this._itemAreas.push(o)}}_$calculateItemAreas(){var e,t,n=this._getAllContentItems();if(this._itemAreas=[],1===n.length)return void this._itemAreas.push(this.root._$getArea());for(this._$createRootItemAreas(),e=0;e<n.length;e++)if(n[e].isStack)if(t=n[e]._$getArea(),null===t)continue;else if(t instanceof Array)this._itemAreas=this._itemAreas.concat(t);else{this._itemAreas.push(t);var o={};Object(b.b)(o,t),Object(b.b)(o,t.contentItem._contentAreaDimensions.header.highlightArea),o.surface=(o.x2-o.x1)*(o.y2-o.y1),this._itemAreas.push(o)}}_$normalizeContentItem(e,t){if(!e)throw new Error('No content item defined');if(Object(b.h)(e)&&(e=e()),e instanceof _.a)return e;if($.isPlainObject(e)&&e.type){var n=this.createContentItem(e,t);return n.callDownwards('_$init'),n}throw new Error('Invalid contentItem')}_$reconcilePopoutWindows(){var e,t=[];for(e=0;e<this.openPopouts.length;e++)!1===this.openPopouts[e].getWindow().closed?t.push(this.openPopouts[e]):this.emit('windowClosed',this.openPopouts[e]);this.openPopouts.length!==t.length&&(this.emit('stateChanged'),this.openPopouts=t)}_getAllContentItems(){var e=[],t=function(n){if(e.push(n),n.contentItems instanceof Array)for(var o=0;o<n.contentItems.length;o++)t(n.contentItems[o])};return t(this.root),e}_bindEvents(){this._isFullPage&&$(window).resize(this._resizeFunction),$(window).on('unload beforeunload',this._unloadFunction)}_onResize(){clearTimeout(this._resizeTimeoutId),this._resizeTimeoutId=setTimeout(Object(b.c)(this.updateSize,this),100)}_createConfig(e){var t=Object(b.d)('gl-window');t&&(this.isSubWindow=!0,e=localStorage.getItem(t),e=JSON.parse(e),e=new r.a().unminifyConfig(e),localStorage.removeItem(t)),e=$.extend(!0,{},v.a,e);var n=function(e){for(var t in e)'props'!=t&&'object'==typeof e[t]?n(e[t]):'type'==t&&'react-component'===e[t]&&(e.type='component',e.componentName='lm-react-component')};return n(e),!1===e.settings.hasHeaders&&(e.dimensions.headerHeight=0),e}_adjustToWindowMode(){var e=$('<div class=\"lm_popin\" title=\"'+this.config.labels.popin+'\"><div class=\"lm_icon\"></div><div class=\"lm_bg\"></div></div>');e.click(Object(b.c)(function(){this.emit('popIn')},this)),document.title=Object(b.k)(this.config.content[0].title),$('head').append($('body link, body style, template, .gl_keep')),this.container=$('body').html('').css('visibility','visible').append(e);document.body.offsetHeight;window.__glInstance=this}_createSubWindows(){var e,t;for(e=0;e<this.config.openPopouts.length;e++)t=this.config.openPopouts[e],this.createPopout(t.content,t.dimensions,t.parentId,t.indexInParent)}_setContainer(){var e=$(this.container||'body');if(0===e.length)throw new Error('GoldenLayout container not found');if(1<e.length)throw new Error('GoldenLayout more than one container element specified');e[0]===document.body&&(this._isFullPage=!0,$('html, body').css({height:'100%',margin:0,padding:0,overflow:'hidden'})),this.container=e}_create(e){var t;if(!(e.content instanceof Array))throw t=void 0===e.content?'Missing setting \\'content\\' on top level of configuration':'Configuration parameter \\'content\\' must be an array',new y.a(t,e);if(1<e.content.length)throw t='Top level content can\\'t contain more then one element.',new y.a(t,e);this.root=new c.a(this,{content:e.content},this.container),this.root.callDownwards('_$init'),'__glMaximised'===e.maximisedItemId&&this.root.getItemsById(e.maximisedItemId)[0].toggleMaximise()}_onUnload(){if(!0===this.config.settings.closePopoutsOnUnload)for(var e=0;e<this.openPopouts.length;e++)this.openPopouts[e].close()}_adjustColumnsResponsive(){if(!this._useResponsiveLayout()||this._updatingColumnsResponsive||!this.config.dimensions||!this.config.dimensions.minItemWidth||0===this.root.contentItems.length||!this.root.contentItems[0].isRow)return void(this._firstLoad=!1);this._firstLoad=!1;var e=this.root.contentItems[0].contentItems.length;if(!(1>=e)){var o=this.config.dimensions.minItemWidth;if(!(e*o<=this.width)){this._updatingColumnsResponsive=!0;for(var a,s=n(t(this.width/o),1),r=this.root.contentItems[0],l=this._findAllStackContainers()[0],c=0;c<e-s;c++)a=r.contentItems[r.contentItems.length-1],this._addChildContentItemsToContainer(l,a);this._updatingColumnsResponsive=!1}}}_useResponsiveLayout(){return this.config.settings&&('always'==this.config.settings.responsiveMode||'onload'==this.config.settings.responsiveMode&&this._firstLoad)}_addChildContentItemsToContainer(e,t){'stack'===t.type?t.contentItems.forEach(function(n){e.addChild(n),t.removeChild(n,!0)}):t.contentItems.forEach(Object(b.c)(function(t){this._addChildContentItemsToContainer(e,t)},this))}_findAllStackContainers(){var e=[];return this._findAllStackContainersRecursive(e,this.root),e}_findAllStackContainersRecursive(e,t){t.contentItems.forEach(Object(b.c)(function(t){'stack'==t.type?e.push(t):!t.isComponent&&this._findAllStackContainersRecursive(e,t)},this))}}o.a=k},function(e,t,n){e.exports={default:n(41),__esModule:!0}},function(e,t,n){n(42),e.exports=n(2).Object.keys},function(e,t,n){var o=n(43),i=n(15);n(53)('keys',function(){return function(e){return i(o(e))}})},function(e,t,n){var o=n(14);e.exports=function(e){return Object(o(e))}},function(e,t,n){var o=n(16),a=n(17),s=n(47)(!1),i=n(19)('IE_PROTO');e.exports=function(e,t){var n,r=a(e),l=0,c=[];for(n in r)n!=i&&o(r,n)&&c.push(n);for(;t.length>l;)o(r,n=t[l++])&&(~s(c,n)||c.push(n));return c}},function(e,t,n){var o=n(46);e.exports=Object('z').propertyIsEnumerable(0)?Object:function(e){return'String'==o(e)?e.split(''):Object(e)}},function(e){var t={}.toString;e.exports=function(e){return t.call(e).slice(8,-1)}},function(e,t,n){var o=n(17),i=n(48),a=n(49);e.exports=function(e){return function(t,n,s){var r,l=o(t),c=i(l.length),p=a(s,c);if(e&&n!=n){for(;c>p;)if(r=l[p++],r!=r)return!0;}else for(;c>p;p++)if((e||p in l)&&l[p]===n)return e||p||0;return!e&&-1}}},function(t,n,o){var i=o(18);t.exports=function(t){return 0<t?e(i(t),9007199254740991):0}},function(t,o,i){var a=i(18);t.exports=function(t,o){return t=a(t),0>t?n(t+o,0):e(t,o)}},function(e,t,n){var o=n(2),i=n(4),a='__core-js_shared__',s=i[a]||(i[a]={});(e.exports=function(e,t){return s[e]||(s[e]=t===void 0?{}:t)})('versions',[]).push({version:o.version,mode:n(51)?'pure':'global',copyright:'\\xA9 2018 Denis Pushkarev (zloirock.ru)'})},function(e){e.exports=!0},function(e){var t=0,n=Math.random();e.exports=function(e){return'Symbol('.concat(e===void 0?'':e,')_',(++t+n).toString(36))}},function(e,t,n){var o=n(21),i=n(2),a=n(10);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],s={};s[e]=t(n),o(o.S+o.F*a(function(){n(1)}),'Object',s)}},function(e,t,n){var o=n(55);e.exports=function(e,t,n){return(o(e),void 0===t)?e:1===n?function(n){return e.call(t,n)}:2===n?function(n,o){return e.call(t,n,o)}:3===n?function(n,o,i){return e.call(t,n,o,i)}:function(){return e.apply(t,arguments)}}},function(e){e.exports=function(e){if('function'!=typeof e)throw TypeError(e+' is not a function!');return e}},function(e,t,n){var o=n(22),i=n(59);e.exports=n(5)?function(e,t,n){return o.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){e.exports=!n(5)&&!n(10)(function(){return 7!=Object.defineProperty(n(23)('div'),'a',{get:function(){return 7}}).a})},function(e,t,n){var o=n(9);e.exports=function(e,t){if(!o(e))return e;var n,i;if(t&&'function'==typeof(n=e.toString)&&!o(i=n.call(e)))return i;if('function'==typeof(n=e.valueOf)&&!o(i=n.call(e)))return i;if(!t&&'function'==typeof(n=e.toString)&&!o(i=n.call(e)))return i;throw TypeError('Can\\'t convert object to primitive value')}},function(e){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){e.exports={default:n(61),__esModule:!0}},function(e,t,n){n(62);var o=n(2).Object;e.exports=function(e,t){return o.create(e,t)}},function(e,t,n){var o=n(21);o(o.S,'Object',{create:n(63)})},function(e,t,n){var o=n(8),i=n(64),a=n(20),s=n(19)('IE_PROTO'),r=function(){},l='prototype',c=function(){var e,t=n(23)('iframe'),o=a.length,i='<',s='>';for(t.style.display='none',n(65).appendChild(t),t.src='javascript:',e=t.contentWindow.document,e.open(),e.write(i+'script'+s+'document.F=Object'+i+'/script'+s),e.close(),c=e.F;o--;)delete c[l][a[o]];return c()};e.exports=Object.create||function(e,t){var n;return null===e?n=c():(r[l]=o(e),n=new r,r[l]=null,n[s]=e),void 0===t?n:i(n,t)}},function(e,t,n){var o=n(22),a=n(8),s=n(15);e.exports=n(5)?Object.defineProperties:function(e,t){a(e);for(var n,r=s(t),l=r.length,c=0;l>c;)o.f(e,n=r[c++],t[n]);return e}},function(e,t,n){var o=n(4).document;e.exports=o&&o.documentElement},function(e,t){'use strict';t.a={isClosable:!0,reorderEnabled:!0,title:''}},function(e,t,n){'use strict';var o=n(7);t.a=class{constructor(e,t,n){this._isVertical=e,this._size=t,this._grabSize=n<t?t:n,this.element=this._createElement(),this._dragListener=new o.a(this.element)}on(e,t,n){this._dragListener.on(e,t,n)}_$destroy(){this.element.remove()}_createElement(){var e=$('<div class=\"lm_drag_handle\"></div>'),t=$('<div class=\"lm_splitter\"></div>');t.append(e);var n=this._grabSize-this._size,o=n/2;return this._isVertical?(e.css('top',-o),e.css('height',this._size+n),t.addClass('lm_vertical'),t.height(this._size)):(e.css('left',-o),e.css('width',this._size+n),t.addClass('lm_horizontal'),t.width(this._size)),t}}},function(e,t,n){e.exports={default:n(69),__esModule:!0}},function(e,t,n){var o=n(2),i=o.JSON||(o.JSON={stringify:JSON.stringify});e.exports=function(){return i.stringify.apply(i,arguments)}},function(e,t,n){'use strict';var o=n(7),i=n(30),a=n(0);t.a=class{constructor(e,t,n){this._element=e,this._itemConfig=t,this._layoutManager=n,this._dragListener=null,this._createDragListener()}_createDragListener(){null!==this._dragListener&&this._dragListener.destroy(),this._dragListener=new o.a(this._element),this._dragListener.on('dragStart',this._onDragStart,this),this._dragListener.on('dragStop',this._createDragListener,this)}_onDragStart(e,t){var n=this._itemConfig;Object(a.h)(n)&&(n=n());var o=this._layoutManager._$normalizeContentItem($.extend(!0,{},n)),s=new i.a(e,t,this._dragListener,this._layoutManager,o,null);this._layoutManager.transitionIndicator.transitionElements(this._element,s.element)}}},function(e,t){'use strict';t.a=class{constructor(){this.element=$('<div class=\"lm_dropTargetIndicator\"><div class=\"lm_inner\"></div></div>'),$(document.body).append(this.element)}destroy(){this.element.remove()}highlight(e,t,n,o){this.highlightArea({x1:e,y1:t,x2:n,y2:o})}highlightArea(e){this.element.css({left:e.x1,top:e.y1,width:e.x2-e.x1,height:e.y2-e.y1}).show()}hide(){this.element.hide()}}},function(e,t,n){'use strict';var o=n(0);t.a=class{constructor(){this._element=$('<div class=\"lm_transition_indicator\"></div>'),$(document.body).append(this._element),this._toElement=null,this._fromDimensions=null,this._totalAnimationDuration=200,this._animationStartTime=null}destroy(){this._element.remove()}transitionElements(){}_nextAnimationFrame(){var e,t=this._measure(this._toElement),n=(Object(o.i)()-this._animationStartTime)/this._totalAnimationDuration,i={};if(1<=n)return void this._element.hide();for(e in t.opacity=0,this._fromDimensions)i[e]=this._fromDimensions[e]+(t[e]-this._fromDimensions[e])*n;this._element.css(i),Object(o.a)(Object(o.c)(this._nextAnimationFrame,this))}_measure(e){var t=e.offset();return{left:t.left,top:t.top,width:e.outerWidth(),height:e.outerHeight()}}}},function(e,t){'use strict';t.a={openPopouts:[],settings:{hasHeaders:!0,constrainDragToContainer:!0,reorderEnabled:!0,selectionEnabled:!1,popoutWholeStack:!1,blockedPopoutsThrowError:!0,closePopoutsOnUnload:!0,showPopoutIcon:!0,showMaximiseIcon:!0,showCloseIcon:!0,responsiveMode:'onload',tabOverlapAllowance:0,reorderOnTabMenuClick:!0,tabControlOffset:10},dimensions:{borderWidth:5,borderGrabWidth:15,minItemHeight:10,minItemWidth:10,headerHeight:20,dragProxyWidth:300,dragProxyHeight:200},labels:{close:'close',maximise:'maximise',minimise:'minimise',popout:'open in new window',popin:'pop in',tabDropdown:'additional tabs'}}},function(e,t,n){n(75)(n(76))},function(e){e.exports=function(e){function t(e){'undefined'!=typeof console&&(console.error||console.log)('[Script Loader]',e)}function n(){return'undefined'!=typeof attachEvent&&'undefined'==typeof addEventListener}try{'undefined'!=typeof execScript&&n()?execScript(e):'undefined'==typeof eval?t('EvalError: No eval function available'):eval.call(null,e)}catch(e){t(e)}}},function(e){e.exports='/* Zepto v1.2.0 - zepto event ajax form ie - zeptojs.com/license */\\n(function(global, factory) {\\n if (typeof define === \\'function\\' && define.amd)\\n define(function() { return factory(global) })\\n else\\n factory(global)\\n}(this, function(window) {\\n var Zepto = (function() {\\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\\n document = window.document,\\n elementDisplay = {}, classCache = {},\\n cssNumber = { \\'column-count\\': 1, \\'columns\\': 1, \\'font-weight\\': 1, \\'line-height\\': 1,\\'opacity\\': 1, \\'z-index\\': 1, \\'zoom\\': 1 },\\n fragmentRE = /^\\\\s*<(\\\\w+|!)[^>]*>/,\\n singleTagRE = /^<(\\\\w+)\\\\s*\\\\/?>(?:<\\\\/\\\\1>|)$/,\\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\\\w:]+)[^>]*)\\\\/>/ig,\\n rootNodeRE = /^(?:body|html)$/i,\\n capitalRE = /([A-Z])/g,\\n\\n // special attributes that should be get/set via method calls\\n methodAttributes = [\\'val\\', \\'css\\', \\'html\\', \\'text\\', \\'data\\', \\'width\\', \\'height\\', \\'offset\\'],\\n\\n adjacencyOperators = [ \\'after\\', \\'prepend\\', \\'before\\', \\'append\\' ],\\n table = document.createElement(\\'table\\'),\\n tableRow = document.createElement(\\'tr\\'),\\n containers = {\\n \\'tr\\': document.createElement(\\'tbody\\'),\\n \\'tbody\\': table, \\'thead\\': table, \\'tfoot\\': table,\\n \\'td\\': tableRow, \\'th\\': tableRow,\\n \\'*\\': document.createElement(\\'div\\')\\n },\\n readyRE = /complete|loaded|interactive/,\\n simpleSelectorRE = /^[\\\\w-]*$/,\\n class2type = {},\\n toString = class2type.toString,\\n zepto = {},\\n camelize, uniq,\\n tempParent = document.createElement(\\'div\\'),\\n propMap = {\\n \\'tabindex\\': \\'tabIndex\\',\\n \\'readonly\\': \\'readOnly\\',\\n \\'for\\': \\'htmlFor\\',\\n \\'class\\': \\'className\\',\\n \\'maxlength\\': \\'maxLength\\',\\n \\'cellspacing\\': \\'cellSpacing\\',\\n \\'cellpadding\\': \\'cellPadding\\',\\n \\'rowspan\\': \\'rowSpan\\',\\n \\'colspan\\': \\'colSpan\\',\\n \\'usemap\\': \\'useMap\\',\\n \\'frameborder\\': \\'frameBorder\\',\\n \\'contenteditable\\': \\'contentEditable\\'\\n },\\n isArray = Array.isArray ||\\n function(object){ return object instanceof Array }\\n\\n zepto.matches = function(element, selector) {\\n if (!selector || !element || element.nodeType !== 1) return false\\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\\n element.mozMatchesSelector || element.oMatchesSelector ||\\n element.matchesSelector\\n if (matchesSelector) return matchesSelector.call(element, selector)\\n // fall back to performing a selector:\\n var match, parent = element.parentNode, temp = !parent\\n if (temp) (parent = tempParent).appendChild(element)\\n match = ~zepto.qsa(parent, selector).indexOf(element)\\n temp && tempParent.removeChild(element)\\n return match\\n }\\n\\n function type(obj) {\\n return obj == null ? String(obj) :\\n class2type[toString.call(obj)] || \"object\"\\n }\\n\\n function isFunction(value) { return type(value) == \"function\" }\\n function isWindow(obj) { return obj != null && obj == obj.window }\\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\\n function isObject(obj) { return type(obj) == \"object\" }\\n function isPlainObject(obj) {\\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\\n }\\n\\n function likeArray(obj) {\\n var length = !!obj && \\'length\\' in obj && obj.length,\\n type = $.type(obj)\\n\\n return \\'function\\' != type && !isWindow(obj) && (\\n \\'array\\' == type || length === 0 ||\\n (typeof length == \\'number\\' && length > 0 && (length - 1) in obj)\\n )\\n }\\n\\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : \\'\\' }) }\\n function dasherize(str) {\\n return str.replace(/::/g, \\'/\\')\\n .replace(/([A-Z]+)([A-Z][a-z])/g, \\'$1_$2\\')\\n .replace(/([a-z\\\\d])([A-Z])/g, \\'$1_$2\\')\\n .replace(/_/g, \\'-\\')\\n .toLowerCase()\\n }\\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\\n\\n function classRE(name) {\\n return name in classCache ?\\n classCache[name] : (classCache[name] = new RegExp(\\'(^|\\\\\\\\s)\\' + name + \\'(\\\\\\\\s|$)\\'))\\n }\\n\\n function maybeAddPx(name, value) {\\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\\n }\\n\\n function defaultDisplay(nodeName) {\\n var element, display\\n if (!elementDisplay[nodeName]) {\\n element = document.createElement(nodeName)\\n document.body.appendChild(element)\\n display = getComputedStyle(element, \\'\\').getPropertyValue(\"display\")\\n element.parentNode.removeChild(element)\\n display == \"none\" && (display = \"block\")\\n elementDisplay[nodeName] = display\\n }\\n return elementDisplay[nodeName]\\n }\\n\\n function children(element) {\\n return \\'children\\' in element ?\\n slice.call(element.children) :\\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\\n }\\n\\n function Z(dom, selector) {\\n var i, len = dom ? dom.length : 0\\n for (i = 0; i < len; i++) this[i] = dom[i]\\n this.length = len\\n this.selector = selector || \\'\\'\\n }\\n\\n // `$.zepto.fragment` takes a html string and an optional tag name\\n // to generate DOM nodes from the given html string.\\n // The generated DOM nodes are returned as an array.\\n // This function can be overridden in plugins for example to make\\n // it compatible with browsers that don\\'t support the DOM fully.\\n zepto.fragment = function(html, name, properties) {\\n var dom, nodes, container\\n\\n // A special case optimization for a single tag\\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\\n\\n if (!dom) {\\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\\n if (!(name in containers)) name = \\'*\\'\\n\\n container = containers[name]\\n container.innerHTML = \\'\\' + html\\n dom = $.each(slice.call(container.childNodes), function(){\\n container.removeChild(this)\\n })\\n }\\n\\n if (isPlainObject(properties)) {\\n nodes = $(dom)\\n $.each(properties, function(key, value) {\\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\\n else nodes.attr(key, value)\\n })\\n }\\n\\n return dom\\n }\\n\\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\\n // of nodes with `$.fn` and thus supplying all the Zepto functions\\n // to the array. This method can be overridden in plugins.\\n zepto.Z = function(dom, selector) {\\n return new Z(dom, selector)\\n }\\n\\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\\n // collection. This method can be overridden in plugins.\\n zepto.isZ = function(object) {\\n return object instanceof zepto.Z\\n }\\n\\n // `$.zepto.init` is Zepto\\'s counterpart to jQuery\\'s `$.fn.init` and\\n // takes a CSS selector and an optional context (and handles various\\n // special cases).\\n // This method can be overridden in plugins.\\n zepto.init = function(selector, context) {\\n var dom\\n // If nothing given, return an empty Zepto collection\\n if (!selector) return zepto.Z()\\n // Optimize for string selectors\\n else if (typeof selector == \\'string\\') {\\n selector = selector.trim()\\n // If it\\'s a html fragment, create nodes from it\\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\\n // is thrown if the fragment doesn\\'t begin with <\\n if (selector[0] == \\'<\\' && fragmentRE.test(selector))\\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\\n // If there\\'s a context, create a collection on that context first, and select\\n // nodes from there\\n else if (context !== undefined) return $(context).find(selector)\\n // If it\\'s a CSS selector, use it to select nodes.\\n else dom = zepto.qsa(document, selector)\\n }\\n // If a function is given, call it when the DOM is ready\\n else if (isFunction(selector)) return $(document).ready(selector)\\n // If a Zepto collection is given, just return it\\n else if (zepto.isZ(selector)) return selector\\n else {\\n // normalize array if an array of nodes is given\\n if (isArray(selector)) dom = compact(selector)\\n // Wrap DOM nodes.\\n else if (isObject(selector))\\n dom = [selector], selector = null\\n // If it\\'s a html fragment, create nodes from it\\n else if (fragmentRE.test(selector))\\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\\n // If there\\'s a context, create a collection on that context first, and select\\n // nodes from there\\n else if (context !== undefined) return $(context).find(selector)\\n // And last but no least, if it\\'s a CSS selector, use it to select nodes.\\n else dom = zepto.qsa(document, selector)\\n }\\n // create a new Zepto collection from the nodes found\\n return zepto.Z(dom, selector)\\n }\\n\\n // `$` will be the base `Zepto` object. When calling this\\n // function just call `$.zepto.init, which makes the implementation\\n // details of selecting nodes and creating Zepto collections\\n // patchable in plugins.\\n $ = function(selector, context){\\n return zepto.init(selector, context)\\n }\\n\\n function extend(target, source, deep) {\\n for (key in source)\\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\\n target[key] = {}\\n if (isArray(source[key]) && !isArray(target[key]))\\n target[key] = []\\n extend(target[key], source[key], deep)\\n }\\n else if (source[key] !== undefined) target[key] = source[key]\\n }\\n\\n // Copy all but undefined properties from one or more\\n // objects to the `target` object.\\n $.extend = function(target){\\n var deep, args = slice.call(arguments, 1)\\n if (typeof target == \\'boolean\\') {\\n deep = target\\n target = args.shift()\\n }\\n args.forEach(function(arg){ extend(target, arg, deep) })\\n return target\\n }\\n\\n // `$.zepto.qsa` is Zepto\\'s CSS selector implementation which\\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\\n // This method can be overridden in plugins.\\n zepto.qsa = function(element, selector){\\n var found,\\n maybeID = selector[0] == \\'#\\',\\n maybeClass = !maybeID && selector[0] == \\'.\\',\\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\\n isSimple = simpleSelectorRE.test(nameOnly)\\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn\\'t have getElementById\\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\\n slice.call(\\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn\\'t have getElementsByClassName/TagName\\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it\\'s simple, it could be a class\\n element.getElementsByTagName(selector) : // Or a tag\\n element.querySelectorAll(selector) // Or it\\'s not simple, and we need to query all\\n )\\n }\\n\\n function filtered(nodes, selector) {\\n return selector == null ? $(nodes) : $(nodes).filter(selector)\\n }\\n\\n $.contains = document.documentElement.contains ?\\n function(parent, node) {\\n return parent !== node && parent.contains(node)\\n } :\\n function(parent, node) {\\n while (node && (node = node.parentNode))\\n if (node === parent) return true\\n return false\\n }\\n\\n function funcArg(context, arg, idx, payload) {\\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\\n }\\n\\n function setAttribute(node, name, value) {\\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\\n }\\n\\n // access className property while respecting SVGAnimatedString\\n function className(node, value){\\n var klass = node.className || \\'\\',\\n svg = klass && klass.baseVal !== undefined\\n\\n if (value === undefined) return svg ? klass.baseVal : klass\\n svg ? (klass.baseVal = value) : (node.className = value)\\n }\\n\\n // \"true\" => true\\n // \"false\" => false\\n // \"null\" => null\\n // \"42\" => 42\\n // \"42.5\" => 42.5\\n // \"08\" => \"08\"\\n // JSON => parse if valid\\n // String => self\\n function deserializeValue(value) {\\n try {\\n return value ?\\n value == \"true\" ||\\n ( value == \"false\" ? false :\\n value == \"null\" ? null :\\n +value + \"\" == value ? +value :\\n /^[\\\\[\\\\{]/.test(value) ? $.parseJSON(value) :\\n value )\\n : value\\n } catch(e) {\\n return value\\n }\\n }\\n\\n $.type = type\\n $.isFunction = isFunction\\n $.isWindow = isWindow\\n $.isArray = isArray\\n $.isPlainObject = isPlainObject\\n\\n $.isEmptyObject = function(obj) {\\n var name\\n for (name in obj) return false\\n return true\\n }\\n\\n $.isNumeric = function(val) {\\n var num = Number(val), type = typeof val\\n return val != null && type != \\'boolean\\' &&\\n (type != \\'string\\' || val.length) &&\\n !isNaN(num) && isFinite(num) || false\\n }\\n\\n $.inArray = function(elem, array, i){\\n return emptyArray.indexOf.call(array, elem, i)\\n }\\n\\n $.camelCase = camelize\\n $.trim = function(str) {\\n return str == null ? \"\" : String.prototype.trim.call(str)\\n }\\n\\n // plugin compatibility\\n $.uuid = 0\\n $.support = { }\\n $.expr = { }\\n $.noop = function() {}\\n\\n $.map = function(elements, callback){\\n var value, values = [], i, key\\n if (likeArray(elements))\\n for (i = 0; i < elements.length; i++) {\\n value = callback(elements[i], i)\\n if (value != null) values.push(value)\\n }\\n else\\n for (key in elements) {\\n value = callback(elements[key], key)\\n if (value != null) values.push(value)\\n }\\n return flatten(values)\\n }\\n\\n $.each = function(elements, callback){\\n var i, key\\n if (likeArray(elements)) {\\n for (i = 0; i < elements.length; i++)\\n if (callback.call(elements[i], i, elements[i]) === false) return elements\\n } else {\\n for (key in elements)\\n if (callback.call(elements[key], key, elements[key]) === false) return elements\\n }\\n\\n return elements\\n }\\n\\n $.grep = function(elements, callback){\\n return filter.call(elements, callback)\\n }\\n\\n if (window.JSON) $.parseJSON = JSON.parse\\n\\n // Populate the class2type map\\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\\n })\\n\\n // Define methods that will be available on all\\n // Zepto collections\\n $.fn = {\\n constructor: zepto.Z,\\n length: 0,\\n\\n // Because a collection acts like an array\\n // copy over these useful array functions.\\n forEach: emptyArray.forEach,\\n reduce: emptyArray.reduce,\\n push: emptyArray.push,\\n sort: emptyArray.sort,\\n splice: emptyArray.splice,\\n indexOf: emptyArray.indexOf,\\n concat: function(){\\n var i, value, args = []\\n for (i = 0; i < arguments.length; i++) {\\n value = arguments[i]\\n args[i] = zepto.isZ(value) ? value.toArray() : value\\n }\\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\\n },\\n\\n // `map` and `slice` in the jQuery API work differently\\n // from their array counterparts\\n map: function(fn){\\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\\n },\\n slice: function(){\\n return $(slice.apply(this, arguments))\\n },\\n\\n ready: function(callback){\\n // need to check if document.body exists for IE as that browser reports\\n // document ready when it hasn\\'t yet created the body element\\n if (readyRE.test(document.readyState) && document.body) callback($)\\n else document.addEventListener(\\'DOMContentLoaded\\', function(){ callback($) }, false)\\n return this\\n },\\n get: function(idx){\\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\\n },\\n toArray: function(){ return this.get() },\\n size: function(){\\n return this.length\\n },\\n remove: function(){\\n return this.each(function(){\\n if (this.parentNode != null)\\n this.parentNode.removeChild(this)\\n })\\n },\\n each: function(callback){\\n emptyArray.every.call(this, function(el, idx){\\n return callback.call(el, idx, el) !== false\\n })\\n return this\\n },\\n filter: function(selector){\\n if (isFunction(selector)) return this.not(this.not(selector))\\n return $(filter.call(this, function(element){\\n return zepto.matches(element, selector)\\n }))\\n },\\n add: function(selector,context){\\n return $(uniq(this.concat($(selector,context))))\\n },\\n is: function(selector){\\n return this.length > 0 && zepto.matches(this[0], selector)\\n },\\n not: function(selector){\\n var nodes=[]\\n if (isFunction(selector) && selector.call !== undefined)\\n this.each(function(idx){\\n if (!selector.call(this,idx)) nodes.push(this)\\n })\\n else {\\n var excludes = typeof selector == \\'string\\' ? this.filter(selector) :\\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\\n this.forEach(function(el){\\n if (excludes.indexOf(el) < 0) nodes.push(el)\\n })\\n }\\n return $(nodes)\\n },\\n has: function(selector){\\n return this.filter(function(){\\n return isObject(selector) ?\\n $.contains(this, selector) :\\n $(this).find(selector).size()\\n })\\n },\\n eq: function(idx){\\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\\n },\\n first: function(){\\n var el = this[0]\\n return el && !isObject(el) ? el : $(el)\\n },\\n last: function(){\\n var el = this[this.length - 1]\\n return el && !isObject(el) ? el : $(el)\\n },\\n find: function(selector){\\n var result, $this = this\\n if (!selector) result = $()\\n else if (typeof selector == \\'object\\')\\n result = $(selector).filter(function(){\\n var node = this\\n return emptyArray.some.call($this, function(parent){\\n return $.contains(parent, node)\\n })\\n })\\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\\n else result = this.map(function(){ return zepto.qsa(this, selector) })\\n return result\\n },\\n closest: function(selector, context){\\n var nodes = [], collection = typeof selector == \\'object\\' && $(selector)\\n this.each(function(_, node){\\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\\n node = node !== context && !isDocument(node) && node.parentNode\\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\\n })\\n return $(nodes)\\n },\\n parents: function(selector){\\n var ancestors = [], nodes = this\\n while (nodes.length > 0)\\n nodes = $.map(nodes, function(node){\\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\\n ancestors.push(node)\\n return node\\n }\\n })\\n return filtered(ancestors, selector)\\n },\\n parent: function(selector){\\n return filtered(uniq(this.pluck(\\'parentNode\\')), selector)\\n },\\n children: function(selector){\\n return filtered(this.map(function(){ return children(this) }), selector)\\n },\\n contents: function() {\\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\\n },\\n siblings: function(selector){\\n return filtered(this.map(function(i, el){\\n return filter.call(children(el.parentNode), function(child){ return child!==el })\\n }), selector)\\n },\\n empty: function(){\\n return this.each(function(){ this.innerHTML = \\'\\' })\\n },\\n // `pluck` is borrowed from Prototype.js\\n pluck: function(property){\\n return $.map(this, function(el){ return el[property] })\\n },\\n show: function(){\\n return this.each(function(){\\n this.style.display == \"none\" && (this.style.display = \\'\\')\\n if (getComputedStyle(this, \\'\\').getPropertyValue(\"display\") == \"none\")\\n this.style.display = defaultDisplay(this.nodeName)\\n })\\n },\\n replaceWith: function(newContent){\\n return this.before(newContent).remove()\\n },\\n wrap: function(structure){\\n var func = isFunction(structure)\\n if (this[0] && !func)\\n var dom = $(structure).get(0),\\n clone = dom.parentNode || this.length > 1\\n\\n return this.each(function(index){\\n $(this).wrapAll(\\n func ? structure.call(this, index) :\\n clone ? dom.cloneNode(true) : dom\\n )\\n })\\n },\\n wrapAll: function(structure){\\n if (this[0]) {\\n $(this[0]).before(structure = $(structure))\\n var children\\n // drill down to the inmost element\\n while ((children = structure.children()).length) structure = children.first()\\n $(structure).append(this)\\n }\\n return this\\n },\\n wrapInner: function(structure){\\n var func = isFunction(structure)\\n return this.each(function(index){\\n var self = $(this), contents = self.contents(),\\n dom = func ? structure.call(this, index) : structure\\n contents.length ? contents.wrapAll(dom) : self.append(dom)\\n })\\n },\\n unwrap: function(){\\n this.parent().each(function(){\\n $(this).replaceWith($(this).children())\\n })\\n return this\\n },\\n clone: function(){\\n return this.map(function(){ return this.cloneNode(true) })\\n },\\n hide: function(){\\n return this.css(\"display\", \"none\")\\n },\\n toggle: function(setting){\\n return this.each(function(){\\n var el = $(this)\\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\\n })\\n },\\n prev: function(selector){ return $(this.pluck(\\'previousElementSibling\\')).filter(selector || \\'*\\') },\\n next: function(selector){ return $(this.pluck(\\'nextElementSibling\\')).filter(selector || \\'*\\') },\\n html: function(html){\\n return 0 in arguments ?\\n this.each(function(idx){\\n var originHtml = this.innerHTML\\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\\n }) :\\n (0 in this ? this[0].innerHTML : null)\\n },\\n text: function(text){\\n return 0 in arguments ?\\n this.each(function(idx){\\n var newText = funcArg(this, text, idx, this.textContent)\\n this.textContent = newText == null ? \\'\\' : \\'\\'+newText\\n }) :\\n (0 in this ? this.pluck(\\'textContent\\').join(\"\") : null)\\n },\\n attr: function(name, value){\\n var result\\n return (typeof name == \\'string\\' && !(1 in arguments)) ?\\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\\n this.each(function(idx){\\n if (this.nodeType !== 1) return\\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\\n })\\n },\\n removeAttr: function(name){\\n return this.each(function(){ this.nodeType === 1 && name.split(\\' \\').forEach(function(attribute){\\n setAttribute(this, attribute)\\n }, this)})\\n },\\n prop: function(name, value){\\n name = propMap[name] || name\\n return (1 in arguments) ?\\n this.each(function(idx){\\n this[name] = funcArg(this, value, idx, this[name])\\n }) :\\n (this[0] && this[0][name])\\n },\\n removeProp: function(name){\\n name = propMap[name] || name\\n return this.each(function(){ delete this[name] })\\n },\\n data: function(name, value){\\n var attrName = \\'data-\\' + name.replace(capitalRE, \\'-$1\\').toLowerCase()\\n\\n var data = (1 in arguments) ?\\n this.attr(attrName, value) :\\n this.attr(attrName)\\n\\n return data !== null ? deserializeValue(data) : undefined\\n },\\n val: function(value){\\n if (0 in arguments) {\\n if (value == null) value = \"\"\\n return this.each(function(idx){\\n this.value = funcArg(this, value, idx, this.value)\\n })\\n } else {\\n return this[0] && (this[0].multiple ?\\n $(this[0]).find(\\'option\\').filter(function(){ return this.selected }).pluck(\\'value\\') :\\n this[0].value)\\n }\\n },\\n offset: function(coordinates){\\n if (coordinates) return this.each(function(index){\\n var $this = $(this),\\n coords = funcArg(this, coordinates, index, $this.offset()),\\n parentOffset = $this.offsetParent().offset(),\\n props = {\\n top: coords.top - parentOffset.top,\\n left: coords.left - parentOffset.left\\n }\\n\\n if ($this.css(\\'position\\') == \\'static\\') props[\\'position\\'] = \\'relative\\'\\n $this.css(props)\\n })\\n if (!this.length) return null\\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\\n return {top: 0, left: 0}\\n var obj = this[0].getBoundingClientRect()\\n return {\\n left: obj.left + window.pageXOffset,\\n top: obj.top + window.pageYOffset,\\n width: Math.round(obj.width),\\n height: Math.round(obj.height)\\n }\\n },\\n css: function(property, value){\\n if (arguments.length < 2) {\\n var element = this[0]\\n if (typeof property == \\'string\\') {\\n if (!element) return\\n return element.style[camelize(property)] || getComputedStyle(element, \\'\\').getPropertyValue(property)\\n } else if (isArray(property)) {\\n if (!element) return\\n var props = {}\\n var computedStyle = getComputedStyle(element, \\'\\')\\n $.each(property, function(_, prop){\\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\\n })\\n return props\\n }\\n }\\n\\n var css = \\'\\'\\n if (type(property) == \\'string\\') {\\n if (!value && value !== 0)\\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\\n else\\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\\n } else {\\n for (key in property)\\n if (!property[key] && property[key] !== 0)\\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\\n else\\n css += dasherize(key) + \\':\\' + maybeAddPx(key, property[key]) + \\';\\'\\n }\\n\\n return this.each(function(){ this.style.cssText += \\';\\' + css })\\n },\\n index: function(element){\\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\\n },\\n hasClass: function(name){\\n if (!name) return false\\n return emptyArray.some.call(this, function(el){\\n return this.test(className(el))\\n }, classRE(name))\\n },\\n addClass: function(name){\\n if (!name) return this\\n return this.each(function(idx){\\n if (!(\\'className\\' in this)) return\\n classList = []\\n var cls = className(this), newName = funcArg(this, name, idx, cls)\\n newName.split(/\\\\s+/g).forEach(function(klass){\\n if (!$(this).hasClass(klass)) classList.push(klass)\\n }, this)\\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\\n })\\n },\\n removeClass: function(name){\\n return this.each(function(idx){\\n if (!(\\'className\\' in this)) return\\n if (name === undefined) return className(this, \\'\\')\\n classList = className(this)\\n funcArg(this, name, idx, classList).split(/\\\\s+/g).forEach(function(klass){\\n classList = classList.replace(classRE(klass), \" \")\\n })\\n className(this, classList.trim())\\n })\\n },\\n toggleClass: function(name, when){\\n if (!name) return this\\n return this.each(function(idx){\\n var $this = $(this), names = funcArg(this, name, idx, className(this))\\n names.split(/\\\\s+/g).forEach(function(klass){\\n (when === undefined ? !$this.hasClass(klass) : when) ?\\n $this.addClass(klass) : $this.removeClass(klass)\\n })\\n })\\n },\\n scrollTop: function(value){\\n if (!this.length) return\\n var hasScrollTop = \\'scrollTop\\' in this[0]\\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\\n return this.each(hasScrollTop ?\\n function(){ this.scrollTop = value } :\\n function(){ this.scrollTo(this.scrollX, value) })\\n },\\n scrollLeft: function(value){\\n if (!this.length) return\\n var hasScrollLeft = \\'scrollLeft\\' in this[0]\\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\\n return this.each(hasScrollLeft ?\\n function(){ this.scrollLeft = value } :\\n function(){ this.scrollTo(value, this.scrollY) })\\n },\\n position: function() {\\n if (!this.length) return\\n\\n var elem = this[0],\\n // Get *real* offsetParent\\n offsetParent = this.offsetParent(),\\n // Get correct offsets\\n offset = this.offset(),\\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\\n\\n // Subtract element margins\\n // note: when an element has margin: auto the offsetLeft and marginLeft\\n // are the same in Safari causing offset.left to incorrectly be 0\\n offset.top -= parseFloat( $(elem).css(\\'margin-top\\') ) || 0\\n offset.left -= parseFloat( $(elem).css(\\'margin-left\\') ) || 0\\n\\n // Add offsetParent borders\\n parentOffset.top += parseFloat( $(offsetParent[0]).css(\\'border-top-width\\') ) || 0\\n parentOffset.left += parseFloat( $(offsetParent[0]).css(\\'border-left-width\\') ) || 0\\n\\n // Subtract the two offsets\\n return {\\n top: offset.top - parentOffset.top,\\n left: offset.left - parentOffset.left\\n }\\n },\\n offsetParent: function() {\\n return this.map(function(){\\n var parent = this.offsetParent || document.body\\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\\n parent = parent.offsetParent\\n return parent\\n })\\n }\\n }\\n\\n // for now\\n $.fn.detach = $.fn.remove\\n\\n // Generate the `width` and `height` functions\\n ;[\\'width\\', \\'height\\'].forEach(function(dimension){\\n var dimensionProperty =\\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\\n\\n $.fn[dimension] = function(value){\\n var offset, el = this[0]\\n if (value === undefined) return isWindow(el) ? el[\\'inner\\' + dimensionProperty] :\\n isDocument(el) ? el.documentElement[\\'scroll\\' + dimensionProperty] :\\n (offset = this.offset()) && offset[dimension]\\n else return this.each(function(idx){\\n el = $(this)\\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\\n })\\n }\\n })\\n\\n function traverseNode(node, fun) {\\n fun(node)\\n for (var i = 0, len = node.childNodes.length; i < len; i++)\\n traverseNode(node.childNodes[i], fun)\\n }\\n\\n // Generate the `after`, `prepend`, `before`, `append`,\\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\\n adjacencyOperators.forEach(function(operator, operatorIndex) {\\n var inside = operatorIndex % 2 //=> prepend, append\\n\\n $.fn[operator] = function(){\\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\\n var argType, nodes = $.map(arguments, function(arg) {\\n var arr = []\\n argType = type(arg)\\n if (argType == \"array\") {\\n arg.forEach(function(el) {\\n if (el.nodeType !== undefined) return arr.push(el)\\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\\n arr = arr.concat(zepto.fragment(el))\\n })\\n return arr\\n }\\n return argType == \"object\" || arg == null ?\\n arg : zepto.fragment(arg)\\n }),\\n parent, copyByClone = this.length > 1\\n if (nodes.length < 1) return this\\n\\n return this.each(function(_, target){\\n parent = inside ? target : target.parentNode\\n\\n // convert all methods to a \"before\" operation\\n target = operatorIndex == 0 ? target.nextSibling :\\n operatorIndex == 1 ? target.firstChild :\\n operatorIndex == 2 ? target :\\n null\\n\\n var parentInDocument = $.contains(document.documentElement, parent)\\n\\n nodes.forEach(function(node){\\n if (copyByClone) node = node.cloneNode(true)\\n else if (!parent) return $(node).remove()\\n\\n parent.insertBefore(node, target)\\n if (parentInDocument) traverseNode(node, function(el){\\n if (el.nodeName != null && el.nodeName.toUpperCase() === \\'SCRIPT\\' &&\\n (!el.type || el.type === \\'text/javascript\\') && !el.src){\\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\\n target[\\'eval\\'].call(target, el.innerHTML)\\n }\\n })\\n })\\n })\\n }\\n\\n // after => insertAfter\\n // prepend => prependTo\\n // before => insertBefore\\n // append => appendTo\\n $.fn[inside ? operator+\\'To\\' : \\'insert\\'+(operatorIndex ? \\'Before\\' : \\'After\\')] = function(html){\\n $(html)[operator](this)\\n return this\\n }\\n })\\n\\n zepto.Z.prototype = Z.prototype = $.fn\\n\\n // Export internal API functions in the `$.zepto` namespace\\n zepto.uniq = uniq\\n zepto.deserializeValue = deserializeValue\\n $.zepto = zepto\\n\\n return $\\n})()\\n\\nwindow.Zepto = Zepto\\nwindow.$ === undefined && (window.$ = Zepto)\\n\\n;(function($){\\n var _zid = 1, undefined,\\n slice = Array.prototype.slice,\\n isFunction = $.isFunction,\\n isString = function(obj){ return typeof obj == \\'string\\' },\\n handlers = {},\\n specialEvents={},\\n focusinSupported = \\'onfocusin\\' in window,\\n focus = { focus: \\'focusin\\', blur: \\'focusout\\' },\\n hover = { mouseenter: \\'mouseover\\', mouseleave: \\'mouseout\\' }\\n\\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = \\'MouseEvents\\'\\n\\n function zid(element) {\\n return element._zid || (element._zid = _zid++)\\n }\\n function findHandlers(element, event, fn, selector) {\\n event = parse(event)\\n if (event.ns) var matcher = matcherFor(event.ns)\\n return (handlers[zid(element)] || []).filter(function(handler) {\\n return handler\\n && (!event.e || handler.e == event.e)\\n && (!event.ns || matcher.test(handler.ns))\\n && (!fn || zid(handler.fn) === zid(fn))\\n && (!selector || handler.sel == selector)\\n })\\n }\\n function parse(event) {\\n var parts = (\\'\\' + event).split(\\'.\\')\\n return {e: parts[0], ns: parts.slice(1).sort().join(\\' \\')}\\n }\\n function matcherFor(ns) {\\n return new RegExp(\\'(?:^| )\\' + ns.replace(\\' \\', \\' .* ?\\') + \\'(?: |$)\\')\\n }\\n\\n function eventCapture(handler, captureSetting) {\\n return handler.del &&\\n (!focusinSupported && (handler.e in focus)) ||\\n !!captureSetting\\n }\\n\\n function realEvent(type) {\\n return hover[type] || (focusinSupported && focus[type]) || type\\n }\\n\\n function add(element, events, fn, data, selector, delegator, capture){\\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\\n events.split(/\\\\s/).forEach(function(event){\\n if (event == \\'ready\\') return $(document).ready(fn)\\n var handler = parse(event)\\n handler.fn = fn\\n handler.sel = selector\\n // emulate mouseenter, mouseleave\\n if (handler.e in hover) fn = function(e){\\n var related = e.relatedTarget\\n if (!related || (related !== this && !$.contains(this, related)))\\n return handler.fn.apply(this, arguments)\\n }\\n handler.del = delegator\\n var callback = delegator || fn\\n handler.proxy = function(e){\\n e = compatible(e)\\n if (e.isImmediatePropagationStopped()) return\\n e.data = data\\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\\n if (result === false) e.preventDefault(), e.stopPropagation()\\n return result\\n }\\n handler.i = set.length\\n set.push(handler)\\n if (\\'addEventListener\\' in element)\\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\\n })\\n }\\n function remove(element, events, fn, selector, capture){\\n var id = zid(element)\\n ;(events || \\'\\').split(/\\\\s/).forEach(function(event){\\n findHandlers(element, event, fn, selector).forEach(function(handler){\\n delete handlers[id][handler.i]\\n if (\\'removeEventListener\\' in element)\\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\\n })\\n })\\n }\\n\\n $.event = { add: add, remove: remove }\\n\\n $.proxy = function(fn, context) {\\n var args = (2 in arguments) && slice.call(arguments, 2)\\n if (isFunction(fn)) {\\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\\n proxyFn._zid = zid(fn)\\n return proxyFn\\n } else if (isString(context)) {\\n if (args) {\\n args.unshift(fn[context], fn)\\n return $.proxy.apply(null, args)\\n } else {\\n return $.proxy(fn[context], fn)\\n }\\n } else {\\n throw new TypeError(\"expected function\")\\n }\\n }\\n\\n $.fn.bind = function(event, data, callback){\\n return this.on(event, data, callback)\\n }\\n $.fn.unbind = function(event, callback){\\n return this.off(event, callback)\\n }\\n $.fn.one = function(event, selector, data, callback){\\n return this.on(event, selector, data, callback, 1)\\n }\\n\\n var returnTrue = function(){return true},\\n returnFalse = function(){return false},\\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\\n eventMethods = {\\n preventDefault: \\'isDefaultPrevented\\',\\n stopImmediatePropagation: \\'isImmediatePropagationStopped\\',\\n stopPropagation: \\'isPropagationStopped\\'\\n }\\n\\n function compatible(event, source) {\\n if (source || !event.isDefaultPrevented) {\\n source || (source = event)\\n\\n $.each(eventMethods, function(name, predicate) {\\n var sourceMethod = source[name]\\n event[name] = function(){\\n this[predicate] = returnTrue\\n return sourceMethod && sourceMethod.apply(source, arguments)\\n }\\n event[predicate] = returnFalse\\n })\\n\\n event.timeStamp || (event.timeStamp = Date.now())\\n\\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\\n \\'returnValue\\' in source ? source.returnValue === false :\\n source.getPreventDefault && source.getPreventDefault())\\n event.isDefaultPrevented = returnTrue\\n }\\n return event\\n }\\n\\n function createProxy(event) {\\n var key, proxy = { originalEvent: event }\\n for (key in event)\\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\\n\\n return compatible(proxy, event)\\n }\\n\\n $.fn.delegate = function(selector, event, callback){\\n return this.on(event, selector, callback)\\n }\\n $.fn.undelegate = function(selector, event, callback){\\n return this.off(event, selector, callback)\\n }\\n\\n $.fn.live = function(event, callback){\\n $(document.body).delegate(this.selector, event, callback)\\n return this\\n }\\n $.fn.die = function(event, callback){\\n $(document.body).undelegate(this.selector, event, callback)\\n return this\\n }\\n\\n $.fn.on = function(event, selector, data, callback, one){\\n var autoRemove, delegator, $this = this\\n if (event && !isString(event)) {\\n $.each(event, function(type, fn){\\n $this.on(type, selector, data, fn, one)\\n })\\n return $this\\n }\\n\\n if (!isString(selector) && !isFunction(callback) && callback !== false)\\n callback = data, data = selector, selector = undefined\\n if (callback === undefined || data === false)\\n callback = data, data = undefined\\n\\n if (callback === false) callback = returnFalse\\n\\n return $this.each(function(_, element){\\n if (one) autoRemove = function(e){\\n remove(element, e.type, callback)\\n return callback.apply(this, arguments)\\n }\\n\\n if (selector) delegator = function(e){\\n var evt, match = $(e.target).closest(selector, element).get(0)\\n if (match && match !== element) {\\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\\n }\\n }\\n\\n add(element, event, callback, data, selector, delegator || autoRemove)\\n })\\n }\\n $.fn.off = function(event, selector, callback){\\n var $this = this\\n if (event && !isString(event)) {\\n $.each(event, function(type, fn){\\n $this.off(type, selector, fn)\\n })\\n return $this\\n }\\n\\n if (!isString(selector) && !isFunction(callback) && callback !== false)\\n callback = selector, selector = undefined\\n\\n if (callback === false) callback = returnFalse\\n\\n return $this.each(function(){\\n remove(this, event, callback, selector)\\n })\\n }\\n\\n $.fn.trigger = function(event, args){\\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\\n event._args = args\\n return this.each(function(){\\n // handle focus(), blur() by calling them directly\\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\\n // items in the collection might not be DOM elements\\n else if (\\'dispatchEvent\\' in this) this.dispatchEvent(event)\\n else $(this).triggerHandler(event, args)\\n })\\n }\\n\\n // triggers event handlers on current element just as if an event occurred,\\n // doesn\\'t trigger an actual event, doesn\\'t bubble\\n $.fn.triggerHandler = function(event, args){\\n var e, result\\n this.each(function(i, element){\\n e = createProxy(isString(event) ? $.Event(event) : event)\\n e._args = args\\n e.target = element\\n $.each(findHandlers(element, event.type || event), function(i, handler){\\n result = handler.proxy(e)\\n if (e.isImmediatePropagationStopped()) return false\\n })\\n })\\n return result\\n }\\n\\n // shortcut methods for `.bind(event, fn)` for each event type\\n ;(\\'focusin focusout focus blur load resize scroll unload click dblclick \\'+\\n \\'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \\'+\\n \\'change select keydown keypress keyup error\\').split(\\' \\').forEach(function(event) {\\n $.fn[event] = function(callback) {\\n return (0 in arguments) ?\\n this.bind(event, callback) :\\n this.trigger(event)\\n }\\n })\\n\\n $.Event = function(type, props) {\\n if (!isString(type)) props = type, type = props.type\\n var event = document.createEvent(specialEvents[type] || \\'Events\\'), bubbles = true\\n if (props) for (var name in props) (name == \\'bubbles\\') ? (bubbles = !!props[name]) : (event[name] = props[name])\\n event.initEvent(type, bubbles, true)\\n return compatible(event)\\n }\\n\\n})(Zepto)\\n\\n;(function($){\\n var jsonpID = +new Date(),\\n document = window.document,\\n key,\\n name,\\n rscript = /<script\\\\b[^<]*(?:(?!<\\\\/script>)<[^<]*)*<\\\\/script>/gi,\\n scriptTypeRE = /^(?:text|application)\\\\/javascript/i,\\n xmlTypeRE = /^(?:text|application)\\\\/xml/i,\\n jsonType = \\'application/json\\',\\n htmlType = \\'text/html\\',\\n blankRE = /^\\\\s*$/,\\n originAnchor = document.createElement(\\'a\\')\\n\\n originAnchor.href = window.location.href\\n\\n // trigger a custom event and return false if it was cancelled\\n function triggerAndReturn(context, eventName, data) {\\n var event = $.Event(eventName)\\n $(context).trigger(event, data)\\n return !event.isDefaultPrevented()\\n }\\n\\n // trigger an Ajax \"global\" event\\n function triggerGlobal(settings, context, eventName, data) {\\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\\n }\\n\\n // Number of active Ajax requests\\n $.active = 0\\n\\n function ajaxStart(settings) {\\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, \\'ajaxStart\\')\\n }\\n function ajaxStop(settings) {\\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, \\'ajaxStop\\')\\n }\\n\\n // triggers an extra global event \"ajaxBeforeSend\" that\\'s like \"ajaxSend\" but cancelable\\n function ajaxBeforeSend(xhr, settings) {\\n var context = settings.context\\n if (settings.beforeSend.call(context, xhr, settings) === false ||\\n triggerGlobal(settings, context, \\'ajaxBeforeSend\\', [xhr, settings]) === false)\\n return false\\n\\n triggerGlobal(settings, context, \\'ajaxSend\\', [xhr, settings])\\n }\\n function ajaxSuccess(data, xhr, settings, deferred) {\\n var context = settings.context, status = \\'success\\'\\n settings.success.call(context, data, status, xhr)\\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\\n triggerGlobal(settings, context, \\'ajaxSuccess\\', [xhr, settings, data])\\n ajaxComplete(status, xhr, settings)\\n }\\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\\n function ajaxError(error, type, xhr, settings, deferred) {\\n var context = settings.context\\n settings.error.call(context, xhr, type, error)\\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\\n triggerGlobal(settings, context, \\'ajaxError\\', [xhr, settings, error || type])\\n ajaxComplete(type, xhr, settings)\\n }\\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\\n function ajaxComplete(status, xhr, settings) {\\n var context = settings.context\\n settings.complete.call(context, xhr, status)\\n triggerGlobal(settings, context, \\'ajaxComplete\\', [xhr, settings])\\n ajaxStop(settings)\\n }\\n\\n function ajaxDataFilter(data, type, settings) {\\n if (settings.dataFilter == empty) return data\\n var context = settings.context\\n return settings.dataFilter.call(context, data, type)\\n }\\n\\n // Empty function, used as default callback\\n function empty() {}\\n\\n $.ajaxJSONP = function(options, deferred){\\n if (!(\\'type\\' in options)) return $.ajax(options)\\n\\n var _callbackName = options.jsonpCallback,\\n callbackName = ($.isFunction(_callbackName) ?\\n _callbackName() : _callbackName) || (\\'Zepto\\' + (jsonpID++)),\\n script = document.createElement(\\'script\\'),\\n originalCallback = window[callbackName],\\n responseData,\\n abort = function(errorType) {\\n $(script).triggerHandler(\\'error\\', errorType || \\'abort\\')\\n },\\n xhr = { abort: abort }, abortTimeout\\n\\n if (deferred) deferred.promise(xhr)\\n\\n $(script).on(\\'load error\\', function(e, errorType){\\n clearTimeout(abortTimeout)\\n $(script).off().remove()\\n\\n if (e.type == \\'error\\' || !responseData) {\\n ajaxError(null, errorType || \\'error\\', xhr, options, deferred)\\n } else {\\n ajaxSuccess(responseData[0], xhr, options, deferred)\\n }\\n\\n window[callbackName] = originalCallback\\n if (responseData && $.isFunction(originalCallback))\\n originalCallback(responseData[0])\\n\\n originalCallback = responseData = undefined\\n })\\n\\n if (ajaxBeforeSend(xhr, options) === false) {\\n abort(\\'abort\\')\\n return xhr\\n }\\n\\n window[callbackName] = function(){\\n responseData = arguments\\n }\\n\\n script.src = options.url.replace(/\\\\?(.+)=\\\\?/, \\'?$1=\\' + callbackName)\\n document.head.appendChild(script)\\n\\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\\n abort(\\'timeout\\')\\n }, options.timeout)\\n\\n return xhr\\n }\\n\\n $.ajaxSettings = {\\n // Default type of request\\n type: \\'GET\\',\\n // Callback that is executed before request\\n beforeSend: empty,\\n // Callback that is executed if the request succeeds\\n success: empty,\\n // Callback that is executed the the server drops error\\n error: empty,\\n // Callback that is executed on request complete (both: error and success)\\n complete: empty,\\n // The context for the callbacks\\n context: null,\\n // Whether to trigger \"global\" Ajax events\\n global: true,\\n // Transport\\n xhr: function () {\\n return new window.XMLHttpRequest()\\n },\\n // MIME types mapping\\n // IIS returns Javascript as \"application/x-javascript\"\\n accepts: {\\n script: \\'text/javascript, application/javascript, application/x-javascript\\',\\n json: jsonType,\\n xml: \\'application/xml, text/xml\\',\\n html: htmlType,\\n text: \\'text/plain\\'\\n },\\n // Whether the request is to another domain\\n crossDomain: false,\\n // Default timeout\\n timeout: 0,\\n // Whether data should be serialized to string\\n processData: true,\\n // Whether the browser should be allowed to cache GET responses\\n cache: true,\\n //Used to handle the raw response data of XMLHttpRequest.\\n //This is a pre-filtering function to sanitize the response.\\n //The sanitized response should be returned\\n dataFilter: empty\\n }\\n\\n function mimeToDataType(mime) {\\n if (mime) mime = mime.split(\\';\\', 2)[0]\\n return mime && ( mime == htmlType ? \\'html\\' :\\n mime == jsonType ? \\'json\\' :\\n scriptTypeRE.test(mime) ? \\'script\\' :\\n xmlTypeRE.test(mime) && \\'xml\\' ) || \\'text\\'\\n }\\n\\n function appendQuery(url, query) {\\n if (query == \\'\\') return url\\n return (url + \\'&\\' + query).replace(/[&?]{1,2}/, \\'?\\')\\n }\\n\\n // serialize payload and append it to the URL for GET requests\\n function serializeData(options) {\\n if (options.processData && options.data && $.type(options.data) != \"string\")\\n options.data = $.param(options.data, options.traditional)\\n if (options.data && (!options.type || options.type.toUpperCase() == \\'GET\\' || \\'jsonp\\' == options.dataType))\\n options.url = appendQuery(options.url, options.data), options.data = undefined\\n }\\n\\n $.ajax = function(options){\\n var settings = $.extend({}, options || {}),\\n deferred = $.Deferred && $.Deferred(),\\n urlAnchor, hashIndex\\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\\n\\n ajaxStart(settings)\\n\\n if (!settings.crossDomain) {\\n urlAnchor = document.createElement(\\'a\\')\\n urlAnchor.href = settings.url\\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\\n urlAnchor.href = urlAnchor.href\\n settings.crossDomain = (originAnchor.protocol + \\'//\\' + originAnchor.host) !== (urlAnchor.protocol + \\'//\\' + urlAnchor.host)\\n }\\n\\n if (!settings.url) settings.url = window.location.toString()\\n if ((hashIndex = settings.url.indexOf(\\'#\\')) > -1) settings.url = settings.url.slice(0, hashIndex)\\n serializeData(settings)\\n\\n var dataType = settings.dataType, hasPlaceholder = /\\\\?.+=\\\\?/.test(settings.url)\\n if (hasPlaceholder) dataType = \\'jsonp\\'\\n\\n if (settings.cache === false || (\\n (!options || options.cache !== true) &&\\n (\\'script\\' == dataType || \\'jsonp\\' == dataType)\\n ))\\n settings.url = appendQuery(settings.url, \\'_=\\' + Date.now())\\n\\n if (\\'jsonp\\' == dataType) {\\n if (!hasPlaceholder)\\n settings.url = appendQuery(settings.url,\\n settings.jsonp ? (settings.jsonp + \\'=?\\') : settings.jsonp === false ? \\'\\' : \\'callback=?\\')\\n return $.ajaxJSONP(settings, deferred)\\n }\\n\\n var mime = settings.accepts[dataType],\\n headers = { },\\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\\n protocol = /^([\\\\w-]+:)\\\\/\\\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\\n xhr = settings.xhr(),\\n nativeSetHeader = xhr.setRequestHeader,\\n abortTimeout\\n\\n if (deferred) deferred.promise(xhr)\\n\\n if (!settings.crossDomain) setHeader(\\'X-Requested-With\\', \\'XMLHttpRequest\\')\\n setHeader(\\'Accept\\', mime || \\'*/*\\')\\n if (mime = settings.mimeType || mime) {\\n if (mime.indexOf(\\',\\') > -1) mime = mime.split(\\',\\', 2)[0]\\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\\n }\\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != \\'GET\\'))\\n setHeader(\\'Content-Type\\', settings.contentType || \\'application/x-www-form-urlencoded\\')\\n\\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\\n xhr.setRequestHeader = setHeader\\n\\n xhr.onreadystatechange = function(){\\n if (xhr.readyState == 4) {\\n xhr.onreadystatechange = empty\\n clearTimeout(abortTimeout)\\n var result, error = false\\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == \\'file:\\')) {\\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader(\\'content-type\\'))\\n\\n if (xhr.responseType == \\'arraybuffer\\' || xhr.responseType == \\'blob\\')\\n result = xhr.response\\n else {\\n result = xhr.responseText\\n\\n try {\\n // http://perfectionkills.com/global-eval-what-are-the-options/\\n // sanitize response accordingly if data filter callback provided\\n result = ajaxDataFilter(result, dataType, settings)\\n if (dataType == \\'script\\') (1,eval)(result)\\n else if (dataType == \\'xml\\') result = xhr.responseXML\\n else if (dataType == \\'json\\') result = blankRE.test(result) ? null : $.parseJSON(result)\\n } catch (e) { error = e }\\n\\n if (error) return ajaxError(error, \\'parsererror\\', xhr, settings, deferred)\\n }\\n\\n ajaxSuccess(result, xhr, settings, deferred)\\n } else {\\n ajaxError(xhr.statusText || null, xhr.status ? \\'error\\' : \\'abort\\', xhr, settings, deferred)\\n }\\n }\\n }\\n\\n if (ajaxBeforeSend(xhr, settings) === false) {\\n xhr.abort()\\n ajaxError(null, \\'abort\\', xhr, settings, deferred)\\n return xhr\\n }\\n\\n var async = \\'async\\' in settings ? settings.async : true\\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\\n\\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\\n\\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\\n\\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\\n xhr.onreadystatechange = empty\\n xhr.abort()\\n ajaxError(null, \\'timeout\\', xhr, settings, deferred)\\n }, settings.timeout)\\n\\n // avoid sending empty string (#319)\\n xhr.send(settings.data ? settings.data : null)\\n return xhr\\n }\\n\\n // handle optional data/success arguments\\n function parseArguments(url, data, success, dataType) {\\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\\n if (!$.isFunction(success)) dataType = success, success = undefined\\n return {\\n url: url\\n , data: data\\n , success: success\\n , dataType: dataType\\n }\\n }\\n\\n $.get = function(/* url, data, success, dataType */){\\n return $.ajax(parseArguments.apply(null, arguments))\\n }\\n\\n $.post = function(/* url, data, success, dataType */){\\n var options = parseArguments.apply(null, arguments)\\n options.type = \\'POST\\'\\n return $.ajax(options)\\n }\\n\\n $.getJSON = function(/* url, data, success */){\\n var options = parseArguments.apply(null, arguments)\\n options.dataType = \\'json\\'\\n return $.ajax(options)\\n }\\n\\n $.fn.load = function(url, data, success){\\n if (!this.length) return this\\n var self = this, parts = url.split(/\\\\s/), selector,\\n options = parseArguments(url, data, success),\\n callback = options.success\\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\\n options.success = function(response){\\n self.html(selector ?\\n $(\\'<div>\\').html(response.replace(rscript, \"\")).find(selector)\\n : response)\\n callback && callback.apply(self, arguments)\\n }\\n $.ajax(options)\\n return this\\n }\\n\\n var escape = encodeURIComponent\\n\\n function serialize(params, obj, traditional, scope){\\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\\n $.each(obj, function(key, value) {\\n type = $.type(value)\\n if (scope) key = traditional ? scope :\\n scope + \\'[\\' + (hash || type == \\'object\\' || type == \\'array\\' ? key : \\'\\') + \\']\\'\\n // handle data in serializeArray() format\\n if (!scope && array) params.add(value.name, value.value)\\n // recurse into nested objects\\n else if (type == \"array\" || (!traditional && type == \"object\"))\\n serialize(params, value, traditional, key)\\n else params.add(key, value)\\n })\\n }\\n\\n $.param = function(obj, traditional){\\n var params = []\\n params.add = function(key, value) {\\n if ($.isFunction(value)) value = value()\\n if (value == null) value = \"\"\\n this.push(escape(key) + \\'=\\' + escape(value))\\n }\\n serialize(params, obj, traditional)\\n return params.join(\\'&\\').replace(/%20/g, \\'+\\')\\n }\\n})(Zepto)\\n\\n;(function($){\\n $.fn.serializeArray = function() {\\n var name, type, result = [],\\n add = function(value) {\\n if (value.forEach) return value.forEach(add)\\n result.push({ name: name, value: value })\\n }\\n if (this[0]) $.each(this[0].elements, function(_, field){\\n type = field.type, name = field.name\\n if (name && field.nodeName.toLowerCase() != \\'fieldset\\' &&\\n !field.disabled && type != \\'submit\\' && type != \\'reset\\' && type != \\'button\\' && type != \\'file\\' &&\\n ((type != \\'radio\\' && type != \\'checkbox\\') || field.checked))\\n add($(field).val())\\n })\\n return result\\n }\\n\\n $.fn.serialize = function(){\\n var result = []\\n this.serializeArray().forEach(function(elm){\\n result.push(encodeURIComponent(elm.name) + \\'=\\' + encodeURIComponent(elm.value))\\n })\\n return result.join(\\'&\\')\\n }\\n\\n $.fn.submit = function(callback) {\\n if (0 in arguments) this.bind(\\'submit\\', callback)\\n else if (this.length) {\\n var event = $.Event(\\'submit\\')\\n this.eq(0).trigger(event)\\n if (!event.isDefaultPrevented()) this.get(0).submit()\\n }\\n return this\\n }\\n\\n})(Zepto)\\n\\n;(function(){\\n // getComputedStyle shouldn\\'t freak out when called\\n // without a valid element as argument\\n try {\\n getComputedStyle(undefined)\\n } catch(e) {\\n var nativeGetComputedStyle = getComputedStyle\\n window.getComputedStyle = function(element, pseudoElement){\\n try {\\n return nativeGetComputedStyle(element, pseudoElement)\\n } catch(e) {\\n return null\\n }\\n }\\n }\\n})()\\n return Zepto\\n}))\\n'},function(){(function(e){e.expr={\":\":{}},e.support={},e.fn.clone=function(){var t=e();return this.each(function(){t.push(this.cloneNode(!0))}),t},['Left','Top'].forEach(function(t,n){function o(e){return e&&'object'==typeof e&&'setInterval'in e}function i(e){return o(e)?e:!(9!==e.nodeType)&&(e.defaultView||e.parentWindow)}var a='scroll'+t;e.fn[a]=function(t){var o,s;return void 0===t?(o=this[0],!o)?null:(s=i(o),s?'pageXOffset'in s?s[n?'pageYOffset':'pageXOffset']:s.document.documentElement[a]||s.document.body[a]:o[a]):void this.each(function(){if(s=i(this),s){var o=n?e(s).scrollLeft():t,r=n?t:e(s).scrollTop();s.scrollTo(o,r)}else this[a]=t})}}),['width','height'].forEach(function(t){var n=t.replace(/./,function(e){return e[0].toUpperCase()});e.fn['inner'+n]=function(e){var n=this;if(n){var o=n[t]();return{width:['left','right'],height:['top','bottom']}[t].forEach(function(t){o+=parseInt(n.css('padding-'+t),10),e&&(o+=parseInt(n.css('margin-'+t),10))}),o}return null},e.fn['outer'+n]=function(e){var n=this;if(n){var o=n[t]();return{width:['left','right'],height:['top','bottom']}[t].forEach(function(t){e&&(o+=parseInt(n.css('margin-'+t),10))}),o}return null}}),e.proxy=function(t,n){if('string'==typeof n){var o=t[n];n=t,t=o}if(e.isFunction(t)){var i=Array.prototype.slice.call(arguments,2),a=function(){return t.apply(n,i.concat(Array.prototype.slice.call(arguments)))};return a.guid=t.guid=t.guid||a.guid||e.guid++,a}};var t=String.prototype.trim;e.trim=function(e,n){return!n&&t?t.call(e):(n=defaultToWhiteSpace(n),e.replace(new RegExp('^['+n+']+|['+n+']+$','g'),''))};var n=/^t(?:able|d|h)$/i,o=/^(?:body|html)$/i;e.fn.position=function(){if(!this[0])return null;var t=this[0],n=this.offsetParent(),i=this.offset(),a=o.test(n[0].nodeName)?{top:0,left:0}:n.offset();return i.top-=parseFloat(e(t).css('margin-top'))||0,i.left-=parseFloat(e(t).css('margin-left'))||0,a.top+=parseFloat(e(n[0]).css('border-top-width'))||0,a.left+=parseFloat(e(n[0]).css('border-left-width'))||0,{top:i.top-a.top,left:i.left-a.left}},e.fn.offsetParent=function(){var t=e();return this.each(function(){for(var n=this.offsetParent||document.body;n&&!o.test(n.nodeName)&&'static'===e(n).css('position');)n=n.offsetParent;t.push(n)}),t}})(Zepto)}])});\n//# sourceMappingURL=goldenlayout.js.map","import GoldenLayout from \"./golden/js/goldenlayout.js\";\r\n\r\nvar config = {\r\n settings: {\r\n showPopoutIcon: false,\r\n showCloseIcon: false\r\n },\r\n dimensions: {\r\n minItemHeight: 40\r\n },\r\n content: [\r\n {\r\n type: \"row\",\r\n content: [\r\n {\r\n type: \"column\",\r\n width: 40,\r\n content: [\r\n {\r\n type: \"component\",\r\n componentName: \"template\",\r\n title: \"Game\",\r\n componentState: { id: \"client_wrapper\" }\r\n },\r\n {\r\n type: \"component\",\r\n title: \"Miscellaneous\",\r\n height: 5,\r\n componentName: \"template\",\r\n componentState: { id: \"misc\" }\r\n },\r\n ]\r\n },\r\n {\r\n type: \"column\",\r\n content: [\r\n {\r\n type: \"stack\",\r\n height: 60,\r\n content: [\r\n {\r\n type: \"component\",\r\n title: \"Server chat\",\r\n componentName: \"template\",\r\n componentState: { id: \"ooc\" }\r\n },\r\n {\r\n type: \"component\",\r\n title: \"Log\",\r\n componentName: \"template\",\r\n componentState: { id: \"log\" }\r\n }\r\n ]\r\n },\r\n {\r\n type: \"row\",\r\n content: [\r\n {\r\n type: \"component\",\r\n title: \"Music\",\r\n componentName: \"template\",\r\n componentState: { id: \"music\" }\r\n },\r\n {\r\n type: \"stack\",\r\n content: [\r\n {\r\n type: \"component\",\r\n title: \"Settings\",\r\n componentName: \"template\",\r\n componentState: { id: \"client_settings\" }\r\n },\r\n {\r\n type: \"component\",\r\n title: \"About\",\r\n componentName: \"template\",\r\n componentState: { id: \"about\" }\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }\r\n ]\r\n }]\r\n};\r\n\r\nvar golden = new GoldenLayout(config);\r\ngolden.registerComponent(\"template\", function(container, componentState) {\r\n let template = document.querySelector(`#${componentState.id}`);\r\n container.getElement().html(template.content);\r\n // TODO: support multiple locales\r\n // container.setTitle(document.querySelector(`#${componentState.id} meta[name='frame-title']`).getAttribute(\"content\"));\r\n});\r\ngolden.init();"],"sourceRoot":""}
\ No newline at end of file diff --git a/webAO/ui.js b/webAO/ui.js new file mode 100644 index 0000000..f5c3f3a --- /dev/null +++ b/webAO/ui.js @@ -0,0 +1,96 @@ +import GoldenLayout from "./golden/js/goldenlayout.js"; + +var config = { + settings: { + showPopoutIcon: false, + showCloseIcon: false + }, + dimensions: { + minItemHeight: 40 + }, + content: [ + { + type: "row", + content: [ + { + type: "column", + width: 40, + content: [ + { + type: "component", + componentName: "template", + title: "Game", + componentState: { id: "client_wrapper" } + }, + { + type: "component", + title: "Miscellaneous", + height: 5, + componentName: "template", + componentState: { id: "misc" } + }, + ] + }, + { + type: "column", + content: [ + { + type: "stack", + height: 60, + content: [ + { + type: "component", + title: "Server chat", + componentName: "template", + componentState: { id: "ooc" } + }, + { + type: "component", + title: "Log", + componentName: "template", + componentState: { id: "log" } + } + ] + }, + { + type: "row", + content: [ + { + type: "component", + title: "Music", + componentName: "template", + componentState: { id: "music" } + }, + { + type: "stack", + content: [ + { + type: "component", + title: "Settings", + componentName: "template", + componentState: { id: "client_settings" } + }, + { + type: "component", + title: "About", + componentName: "template", + componentState: { id: "about" } + } + ] + } + ] + } + ] + } + ] + }] +}; + +var golden = new GoldenLayout(config); +golden.registerComponent("template", function(container, componentState) { + let template = document.querySelector(`#${componentState.id}`); + container.getElement().html(template.content); + // TODO: support multiple locales + // container.setTitle(document.querySelector(`#${componentState.id} meta[name='frame-title']`).getAttribute("content")); +}); +golden.init();
\ No newline at end of file diff --git a/webpack.config.js b/webpack.config.js new file mode 100644 index 0000000..98d96d0 --- /dev/null +++ b/webpack.config.js @@ -0,0 +1,25 @@ +module.exports = { + entry: { + ui: './webAO/ui.js', + client: './webAO/client.js' + }, + output: { + filename: '[name].b.js' + }, + module: { + rules: [ + { + test: /\.js?$/, + exclude: /node_modules/, + use: { + loader: 'babel-loader', + options: { + presets: ['es2015'] + } + } + } + ] + }, + + devtool: 'source-map' +}
\ No newline at end of file |
