diff --git a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm index 35bc1270beb..8098e41520d 100644 --- a/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm +++ b/code/ATMOSPHERICS/components/binary_devices/passive_gate.dm @@ -158,7 +158,7 @@ Passive gate is similar to the regular pump except: on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") if("pressure") - switch(params["set"]) + switch(params["pressure"]) if ("max") target_pressure = MAX_OUTPUT_PRESSURE if ("custom") diff --git a/code/ATMOSPHERICS/components/binary_devices/pump.dm b/code/ATMOSPHERICS/components/binary_devices/pump.dm index 5b2241598e8..8377505cd8e 100644 --- a/code/ATMOSPHERICS/components/binary_devices/pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/pump.dm @@ -166,7 +166,7 @@ Thus, the two variables affect pump operation are set in New(): on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") if("pressure") - switch(params["set"]) + switch(params["pressure"]) if ("max") target_pressure = MAX_OUTPUT_PRESSURE if ("custom") diff --git a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm index 35a904c8163..cd9ca2e7acc 100644 --- a/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm +++ b/code/ATMOSPHERICS/components/binary_devices/volume_pump.dm @@ -164,7 +164,7 @@ Thus, the two variables affect pump operation are set in New(): on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") if("transfer") - switch(params) + switch(params["rate"]) if ("max") transfer_rate = MAX_TRANSFER_RATE if ("custom") diff --git a/code/ATMOSPHERICS/components/trinary_devices/filter.dm b/code/ATMOSPHERICS/components/trinary_devices/filter.dm index d1c0dafc97b..7c6f978a0af 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/filter.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/filter.dm @@ -189,7 +189,7 @@ Filter types: on=!on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") if("pressure") - switch(params["set"]) + switch(params["pressure"]) if("max") target_pressure = MAX_OUTPUT_PRESSURE if("custom") diff --git a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm index fe603aac976..fe358579618 100644 --- a/code/ATMOSPHERICS/components/trinary_devices/mixer.dm +++ b/code/ATMOSPHERICS/components/trinary_devices/mixer.dm @@ -153,7 +153,7 @@ on = !on investigate_log("was turned [on ? "on" : "off"] by [key_name(usr)]", "atmos") if("pressure") - switch(params["set"]) + switch(params["pressure"]) if("max") target_pressure = MAX_OUTPUT_PRESSURE if("custom") diff --git a/code/game/machinery/alarm.dm b/code/game/machinery/alarm.dm index c27fb9ecb99..c554ce88419 100644 --- a/code/game/machinery/alarm.dm +++ b/code/game/machinery/alarm.dm @@ -358,9 +358,9 @@ var/list/thresholds = list() var/list/gas_names = list( - "oxygen" = "O2", - "nitrogen" = "N2", - "carbon dioxide" = "CO2", + "oxygen" = "Oxygen", + "nitrogen" = "Nitrogen", + "carbon dioxide" = "Carbon Dioxide", "plasma" = "Toxin", "other" = "Other") for (var/g in gas_names) @@ -401,51 +401,50 @@ if (usr.has_unlimited_silicon_privilege && src.aidisabled) return + var/device_id = params["id_tag"] switch(action) - if("toggleaccess") + if("lock") if(usr.has_unlimited_silicon_privilege && !wires.IsIndexCut(AALARM_WIRE_IDSCAN)) locked = !locked - if("adjust") - var/device_id = params["id_tag"] - switch(params["command"]) - if("set_external_pressure") + if( + "power", + "co2_scrub", + "tox_scrub", + "n2o_scrub", + "widenet", + "scrubbing" + ) + send_signal(device_id, list("[action]" = text2num(params["val"]))) + if("excheck") + send_signal(device_id, list("checks" = text2num(params["val"])^1)) + if("incheck") + send_signal(device_id, list("checks" = text2num(params["val"])^2)) + if("external_pressure") + switch(params["pressure"]) + if("reset") + send_signal(device_id, list("set_external_pressure" = ONE_ATMOSPHERE)) + else if("custom") var/input_pressure = input("Enter target pressure:", "Pressure Controls") as num|null if(isnum(input_pressure)) - send_signal(device_id, list(params["command"] = input_pressure)) - if("reset_external_pressure") - send_signal(device_id, list("set_external_pressure" = ONE_ATMOSPHERE)) - if( - "power", - "adjust_external_pressure", - "co2_scrub", - "tox_scrub", - "n2o_scrub", - "widenet", - "scrubbing" - ) - send_signal(device_id, list (params["command"] = text2num(params["val"]))) - if ("excheck") - send_signal(device_id, list ("checks" = text2num(params["val"])^1)) - if ("incheck") - send_signal(device_id, list ("checks" = text2num(params["val"])^2)) - if("set_threshold") - var/env = params["env"] - var/varname = params["var"] - var/datum/tlv/tlv = TLV[env] - var/newval = input("Enter [varname] for [env]:", "Alarm Triggers", tlv.vars[varname]) as num|null - if (isnull(newval)) - return - if (newval<0) - tlv.vars[varname] = -1 - else if (env=="temperature" && newval>5000) - tlv.vars[varname] = 5000 - else if (env=="pressure" && newval>50*ONE_ATMOSPHERE) - tlv.vars[varname] = 50*ONE_ATMOSPHERE - else if (env!="temperature" && env!="pressure" && newval>200) - tlv.vars[varname] = 200 - else - newval = round(newval,0.01) - tlv.vars[varname] = newval + send_signal(device_id, list("set_external_pressure" = input_pressure)) + if("threshold") + var/env = params["env"] + var/varname = params["var"] + var/datum/tlv/tlv = TLV[env] + var/newval = input("Enter [varname] for [env]:", "Alarm Triggers", tlv.vars[varname]) as num|null + if (isnull(newval)) + return + if (newval<0) + tlv.vars[varname] = -1 + else if (env=="temperature" && newval>5000) + tlv.vars[varname] = 5000 + else if (env=="pressure" && newval>50*ONE_ATMOSPHERE) + tlv.vars[varname] = 50*ONE_ATMOSPHERE + else if (env!="temperature" && env!="pressure" && newval>200) + tlv.vars[varname] = 200 + else + newval = round(newval,0.01) + tlv.vars[varname] = newval if("screen") screen = text2num(params["screen"]) if("mode") diff --git a/nano/assets/nanoui.css b/nano/assets/nanoui.css index 7beeec40b01..d19c49c15bc 100644 --- a/nano/assets/nanoui.css +++ b/nano/assets/nanoui.css @@ -1 +1 @@ -.normal{color:#40628a}.good{color:#537d29}.average{color:#be6209}.bad{color:#b00e0e}.highlight,.label{color:#8ba5c4}.dark{color:#272727}html{box-sizing:border-box;min-height:100%;margin:0;cursor:default}*,:after,:before{box-sizing:inherit}body{min-height:100%;height:100%;margin:0 6px;background-color:#202020;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff}main{display:block;margin-top:32px;padding-top:3px}hr{height:2px;background-color:#40628a;border:none}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}.bar .barText,span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}.bold{font-weight:700}.italic{font-style:italic}[unselectable]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}.bar .barText{position:absolute;top:0;right:3px}.bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}.bar .barFill.good{background-color:#537d29}.bar .barFill.average{background-color:#be6209}.bar .barFill.bad{background-color:#b00e0e}.bar .barFill.highlight{background-color:#8ba5c4}span.button{display:inline-block;vertical-align:middle;height:20px;line-height:19px;padding:0 5px;white-space:nowrap;transition:background-color .25s,box-shadow .25s}span.button .fa{padding-right:2px}span.button.normal{background-color:#40628a}span.button.normal:focus,span.button.normal:hover{outline:0;box-shadow:inset 0 0 100px 100px hsla(0,0%,100%,.25)}span.button.disabled{background-color:#999}span.button.selected{background-color:#2f943c}span.button.caution{background-color:#9a9d00}span.button.danger{background-color:#9d0808}span.button.gridable{width:125px;margin:2px 0}div.display,div.notice{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}div.display header,div.notice header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;border-bottom:2px solid #40628a}div.display header .button,div.notice header .button{position:absolute;bottom:6px;right:4px}div.display article,div.notice article{display:table;width:100%;border-spacing:4px 6px}div.notice{background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px);margin:8px 0;box-shadow:none;color:#000;font-weight:700;font-style:italic}div.notice .button{outline:1px solid #272727}div.notice .label{color:#000}div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}section .content,section .label,section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle}section{display:table-row;width:100%;padding:3px 0;white-space:nowrap}section:not(first-child){padding-top:4px}section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}section .content:not(:last-child){padding-right:16px}section .line{width:100%}section .buttoninfo{margin-left:5px}header.titlebar .close,header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#98b0c3}header.titlebar .close:hover,header.titlebar .minimize:hover{color:#b2c4d2}header.titlebar{position:fixed;top:0;left:0;width:100%;height:32px;background-color:#363636;box-shadow:0 3px 3px rgba(0,0,0,.1)}header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}header.titlebar .title{position:absolute;top:6px;left:46px;color:#98b0c3;font-size:16px;white-space:nowrap}header.titlebar .minimize{position:absolute;top:6px;right:46px}header.titlebar .close{position:absolute;top:4px;right:12px}body.generic{background:linear-gradient(180deg,#2a2a2a 0,#202020)}body.generic,body.nanotrasen{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMjUiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo=") no-repeat fixed center/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020)} \ No newline at end of file +.normal{color:#40628a}.good{color:#537d29}.average{color:#be6209}.bad{color:#b00e0e}.highlight,.label{color:#8ba5c4}.dark{color:#272727}html{box-sizing:border-box;min-height:100%;margin:0;cursor:default}*,:after,:before{box-sizing:inherit}body{min-height:100%;height:100%;margin:0 6px;background-color:#202020;font-family:Verdana,Geneva,sans-serif;font-size:12px;color:#fff}main{display:block;margin-top:32px;padding-top:3px}hr{height:2px;background-color:#40628a;border:none}h1,h2,h3,h4{display:inline-block;margin:0;padding:6px 0}h1{font-size:18px}h2{font-size:16px}h3{font-size:14px}h4{font-size:12px}.bar .barText,span.button{color:#fff;font-size:12px;font-weight:400;font-style:normal;text-decoration:none}.bold{font-weight:700}.italic{font-style:italic}[unselectable]{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.bar{display:inline-block;position:relative;vertical-align:middle;width:100%;height:20px;line-height:17px;padding:1px;border:1px solid #40628a;background:#272727}.bar .barText{position:absolute;top:0;right:3px}.bar .barFill{display:block;height:100%;transition:background-color 1s;background-color:#40628a}.bar .barFill.good{background-color:#537d29}.bar .barFill.average{background-color:#be6209}.bar .barFill.bad{background-color:#b00e0e}.bar .barFill.highlight{background-color:#8ba5c4}span.button{display:inline-block;vertical-align:middle;height:20px;line-height:19px;padding:0 5px;white-space:nowrap;transition:background-color .25s,box-shadow .25s}span.button .fa{padding-right:2px}span.button.normal{background-color:#40628a}span.button.normal:focus,span.button.normal:hover{outline:0;box-shadow:inset 0 0 100px 100px hsla(0,0%,100%,.15)}span.button.disabled{background-color:#999}span.button.selected{background-color:#2f943c}span.button.caution{background-color:#9a9d00}span.button.danger{background-color:#9d0808}span.button.gridable{width:125px;margin:2px 0}div.display,div.notice{width:100%;padding:4px;margin:6px 0;background-color:#000;-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorStr=#54000000,endColorStr=#54000000);background-color:rgba(0,0,0,.33);box-shadow:inset 0 0 5px rgba(0,0,0,.5)}div.display header,div.notice header,div.subdisplay header{display:block;position:relative;width:100%;padding:0 4px;margin-bottom:6px;border-bottom:2px solid #40628a}div.display header .button,div.notice header .button,div.subdisplay header .button{position:absolute;bottom:6px;right:4px}div.display article,div.notice article,div.subdisplay article{display:table;width:100%;border-spacing:4px 6px}div.notice{background-color:#bb9b68;background-image:repeating-linear-gradient(-45deg,#bb9b68,#bb9b68 10px,#b1905d 0,#b1905d 20px);margin:8px 0;box-shadow:none;color:#000;font-weight:700;font-style:italic}div.notice .button{outline:1px solid #272727}div.notice .label{color:#000}div.resize{position:fixed;bottom:0;right:0;width:0;height:0;border-style:solid;border-width:0 0 45px 45px;border-color:transparent transparent #363636;-webkit-transform:rotate(1turn);-ms-transform:rotate(1turn);transform:rotate(1turn)}section .content,section .label,section .line{display:table-cell;margin:0;text-align:left;vertical-align:middle}section{display:table-row;width:100%;padding:3px 0;white-space:nowrap}section:not(first-child){padding-top:4px}section .label{width:1%;padding-right:32px;white-space:nowrap;color:#8ba5c4}section .content:not(:last-child){padding-right:16px}section .line{width:100%}section .buttoninfo{margin-left:5px}div.subdisplay{width:100%;margin:0}header.titlebar .close,header.titlebar .minimize{display:inline-block;position:relative;padding:7px;margin:-7px;color:#98b0c3}header.titlebar .close:hover,header.titlebar .minimize:hover{color:#a7bccc}header.titlebar{position:fixed;top:0;left:0;width:100%;height:32px;background-color:#363636;box-shadow:0 3px 3px rgba(0,0,0,.1)}header.titlebar .statusicon{position:absolute;top:4px;left:12px;transition:color .5s}header.titlebar .title{position:absolute;top:6px;left:46px;color:#98b0c3;font-size:16px;white-space:nowrap}header.titlebar .minimize{position:absolute;top:6px;right:46px}header.titlebar .close{position:absolute;top:4px;right:12px}body.generic{background:linear-gradient(180deg,#2a2a2a 0,#202020)}body.generic,body.nanotrasen{filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2a2a2a',endColorstr='#ff202020',GradientType=0)}body.nanotrasen{background:url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB2ZXJzaW9uPSIxLjAiIHZpZXdCb3g9IjAgMCA0MjUgMjAwIiBvcGFjaXR5PSIuMjUiPgogIDxwYXRoIGQ9Im0gMTc4LjAwMzk5LDAuMDM4NjkgLTcxLjIwMzkzLDAgYSA2Ljc2MTM0MjIsNi4wMjU1NDk1IDAgMCAwIC02Ljc2MTM0LDYuMDI1NTUgbCAwLDE4Ny44NzE0NyBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgNi43NjEzNCw2LjAyNTU0IGwgNTMuMTA3MiwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTAxLjU0NDAxOCA3Mi4yMTYyOCwxMDQuNjk5Mzk4IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA1Ljc2MDE1LDIuODcwMTYgbCA3My41NTQ4NywwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCA2Ljc2MTM1LC02LjAyNTU0IGwgMCwtMTg3Ljg3MTQ3IGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzNSwtNi4wMjU1NSBsIC01NC43MTY0NCwwIGEgNi43NjEzNDIyLDYuMDI1NTQ5NSAwIDAgMCAtNi43NjEzMyw2LjAyNTU1IGwgMCwxMDIuNjE5MzUgTCAxODMuNzY0MTMsMi45MDg4NiBhIDYuNzYxMzQyMiw2LjAyNTU0OTUgMCAwIDAgLTUuNzYwMTQsLTIuODcwMTcgeiIgLz4KICA8cGF0aCBkPSJNIDQuODQ0NjMzMywyMi4xMDg3NSBBIDEzLjQxMjAzOSwxMi41MDE4NDIgMCAwIDEgMTMuNDc3NTg4LDAuMDM5MjQgbCA2Ni4xMTgzMTUsMCBhIDUuMzY0ODE1OCw1LjAwMDczNyAwIDAgMSA1LjM2NDgyMyw1LjAwMDczIGwgMCw3OS44NzkzMSB6IiAvPgogIDxwYXRoIGQ9Im0gNDIwLjE1NTM1LDE3Ny44OTExOSBhIDEzLjQxMjAzOCwxMi41MDE4NDIgMCAwIDEgLTguNjMyOTUsMjIuMDY5NTEgbCAtNjYuMTE4MzIsMCBhIDUuMzY0ODE1Miw1LjAwMDczNyAwIDAgMSAtNS4zNjQ4MiwtNS4wMDA3NCBsIDAsLTc5Ljg3OTMxIHoiIC8+Cjwvc3ZnPgo=") no-repeat fixed center/70% 70%,linear-gradient(180deg,#2a2a2a 0,#202020)} \ No newline at end of file diff --git a/nano/assets/nanoui.js b/nano/assets/nanoui.js index d67f9a38877..97437ee5b3f 100644 --- a/nano/assets/nanoui.js +++ b/nano/assets/nanoui.js @@ -1,8 +1,8 @@ -!function t(e,n,r){function i(o,s){if(!n[o]){if(!e[o]){var u="function"==typeof require&&require;if(!s&&u)return u(o,!0);if(a)return a(o,!0);var c=Error("Cannot find module '"+o+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[o]={exports:{}};e[o][0].call(l.exports,function(t){var n=e[o][1][t];return i(n?n:t)},l,l.exports,t,e,n,r)}return n[o].exports}for(var a="function"==typeof require&&require,o=0;o-1}}([].indexOf||function(t){for(V=this.length;V--&&this[V]!==t;);return V}),item:function(t){return this[t]||null},remove:function(){for(var t,e=0;e0||-1)*Math.floor(Math.abs(e))),e},ToPrimitive:function(e){var n,r,i;if(L(e))return e;if(r=e.valueOf,t(r)&&(n=r.call(e),L(n)))return n;if(i=e.toString,t(i)&&(n=i.call(e),L(n)))return n;throw new TypeError},ToObject:function(t){if(null==t)throw new TypeError("can't convert "+t+" to object");return r(t)},ToUint32:function(t){return t>>>0}},D=function(){};R(a,{bind:function(e){var n=this;if(!t(n))throw new TypeError("Function.prototype.bind called on incompatible "+n);for(var i,a=l.call(arguments,1),o=function(){if(this instanceof i){var t=n.apply(this,d.call(a,l.call(arguments)));return r(t)===t?t:this}return n.apply(e,d.call(a,l.call(arguments)))},s=g(0,n.length-a.length),u=[],c=0;s>c;c++)p.call(u,"$"+c);return i=Function("binder","return function ("+u.join(",")+"){ return binder.apply(this, arguments); }")(o),n.prototype&&(D.prototype=n.prototype,i.prototype=new D,D.prototype=null),i}});var U=m.bind(i.hasOwnProperty),V=m.bind(i.toString),B=m.bind(l),q=v.bind(l),z=m.bind(s.slice),H=m.bind(s.split),W=m.bind(s.indexOf),$=m.bind(p),G=m.bind(i.propertyIsEnumerable),K=m.bind(n.sort),Q=e.isArray||function(t){return"[object Array]"===V(t)},Y=1!==[].unshift(0);R(n,{unshift:function(){return f.apply(this,arguments),this.length}},Y),R(e,{isArray:Q});var J=r("a"),Z="a"!==J[0]||!(0 in J),X=function(t){var e=!0,n=!0;return t&&(t.call("foo",function(t,n,r){"object"!=typeof r&&(e=!1)}),t.call([1],function(){"use strict";n="string"==typeof this},"x")),!!t&&e&&n};R(n,{forEach:function(e){var n,r=I.ToObject(this),i=Z&&A(this)?H(this,""):r,a=-1,o=I.ToUint32(i.length);if(arguments.length>1&&(n=arguments[1]),!t(e))throw new TypeError("Array.prototype.forEach callback must be a function");for(;++a1&&(r=arguments[1]),!t(n))throw new TypeError("Array.prototype.map callback must be a function");for(var u=0;o>u;u++)u in a&&(void 0===r?s[u]=n(a[u],u,i):s[u]=n.call(r,a[u],u,i));return s}},!X(n.map)),R(n,{filter:function(e){var n,r,i=I.ToObject(this),a=Z&&A(this)?H(this,""):i,o=I.ToUint32(a.length),s=[];if(arguments.length>1&&(r=arguments[1]),!t(e))throw new TypeError("Array.prototype.filter callback must be a function");for(var u=0;o>u;u++)u in a&&(n=a[u],(void 0===r?e(n,u,i):e.call(r,n,u,i))&&$(s,n));return s}},!X(n.filter)),R(n,{every:function(e){var n,r=I.ToObject(this),i=Z&&A(this)?H(this,""):r,a=I.ToUint32(i.length);if(arguments.length>1&&(n=arguments[1]),!t(e))throw new TypeError("Array.prototype.every callback must be a function");for(var o=0;a>o;o++)if(o in i&&!(void 0===n?e(i[o],o,r):e.call(n,i[o],o,r)))return!1;return!0}},!X(n.every)),R(n,{some:function(e){var n,r=I.ToObject(this),i=Z&&A(this)?H(this,""):r,a=I.ToUint32(i.length);if(arguments.length>1&&(n=arguments[1]),!t(e))throw new TypeError("Array.prototype.some callback must be a function");for(var o=0;a>o;o++)if(o in i&&(void 0===n?e(i[o],o,r):e.call(n,i[o],o,r)))return!0;return!1}},!X(n.some));var tt=!1;n.reduce&&(tt="object"==typeof n.reduce.call("es5",function(t,e,n,r){return r})),R(n,{reduce:function(e){var n=I.ToObject(this),r=Z&&A(this)?H(this,""):n,i=I.ToUint32(r.length);if(!t(e))throw new TypeError("Array.prototype.reduce callback must be a function");if(0===i&&1===arguments.length)throw new TypeError("reduce of empty array with no initial value");var a,o=0;if(arguments.length>=2)a=arguments[1];else for(;;){if(o in r){a=r[o++];break}if(++o>=i)throw new TypeError("reduce of empty array with no initial value")}for(;i>o;o++)o in r&&(a=e(a,r[o],o,n));return a}},!tt);var et=!1;n.reduceRight&&(et="object"==typeof n.reduceRight.call("es5",function(t,e,n,r){return r})),R(n,{reduceRight:function(e){var n=I.ToObject(this),r=Z&&A(this)?H(this,""):n,i=I.ToUint32(r.length);if(!t(e))throw new TypeError("Array.prototype.reduceRight callback must be a function");if(0===i&&1===arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var a,o=i-1;if(arguments.length>=2)a=arguments[1];else for(;;){if(o in r){a=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}if(0>o)return a;do o in r&&(a=e(a,r[o],o,n));while(o--);return a}},!et);var nt=n.indexOf&&-1!==[0,1].indexOf(1,2);R(n,{indexOf:function(t){var e=Z&&A(this)?H(this,""):I.ToObject(this),n=I.ToUint32(e.length);if(0===n)return-1;var r=0;for(arguments.length>1&&(r=I.ToInteger(arguments[1])),r=r>=0?r:g(0,n+r);n>r;r++)if(r in e&&e[r]===t)return r;return-1}},nt);var rt=n.lastIndexOf&&-1!==[0,1].lastIndexOf(0,-3);R(n,{lastIndexOf:function(t){var e=Z&&A(this)?H(this,""):I.ToObject(this),n=I.ToUint32(e.length);if(0===n)return-1;var r=n-1;for(arguments.length>1&&(r=y(r,I.ToInteger(arguments[1]))),r=r>=0?r:n-Math.abs(r);r>=0;r--)if(r in e&&t===e[r])return r;return-1}},rt);var it=function(){var t=[1,2],e=t.splice();return 2===t.length&&Q(e)&&0===e.length}();R(n,{splice:function(t,e){return 0===arguments.length?[]:h.apply(this,arguments)}},!it);var at=function(){var t={};return n.splice.call(t,0,0,1),1===t.length}();R(n,{splice:function(t,e){if(0===arguments.length)return[];var n=arguments;return this.length=g(I.ToInteger(this.length),0),arguments.length>0&&"number"!=typeof e&&(n=B(arguments),n.length<2?$(n,this.length-t):n[1]=I.ToInteger(e)),h.apply(this,n)}},!at);var ot=function(){var t=new e(1e5);return t[8]="x",t.splice(1,1),7===t.indexOf("x")}(),st=function(){var t=256,e=[];return e[t]="a",e.splice(t+1,0,"b"),"a"===e[t]}();R(n,{splice:function(t,e){for(var n,r=I.ToObject(this),i=[],a=I.ToUint32(r.length),s=I.ToInteger(t),u=0>s?g(a+s,0):y(s,a),c=y(g(I.ToInteger(e),0),a-u),l=0;c>l;)n=o(u+l),U(r,n)&&(i[l]=r[n]),l+=1;var h,p=B(arguments,2),f=p.length;if(c>f){for(l=u;a-c>l;)n=o(l+c),h=o(l+f),U(r,n)?r[h]=r[n]:delete r[h],l+=1;for(l=a;l>a-c+f;)delete r[l-1],l-=1}else if(f>c)for(l=a-c;l>u;)n=o(l+c-1),h=o(l+f-1),U(r,n)?r[h]=r[n]:delete r[h],l-=1;l=u;for(var d=0;d=0&&!Q(e)&&t(e.callee)},At=St(arguments)?St:Ot;R(r,{keys:function(e){var n=t(e),r=At(e),i=null!==e&&"object"==typeof e,a=i&&A(e);if(!i&&!n&&!r)throw new TypeError("Object.keys called on a non-object");var s=[],u=bt&&n;if(a&&wt||r)for(var c=0;cp;p++){var f=Tt[p];h&&"constructor"===f||!U(e,f)||$(s,f)}return s}});var jt=r.keys&&function(){return 2===r.keys(arguments).length}(1,2),Pt=r.keys&&function(){var t=r.keys(arguments);return 1!==arguments.length||1!==t.length||1!==t[0]}(1),Nt=r.keys;R(r,{keys:function(t){return Nt(At(t)?B(t):t)}},!jt||Pt);var Ft=-621987552e5,Rt="-000001",Lt=Date.prototype.toISOString&&-1===new Date(Ft).toISOString().indexOf(Rt),Mt=Date.prototype.toISOString&&"1969-12-31T23:59:59.999Z"!==new Date(-1).toISOString();R(Date.prototype,{toISOString:function(){var t,e,n,r,i;if(!isFinite(this))throw new RangeError("Date.prototype.toISOString called on non-finite value.");for(r=this.getUTCFullYear(),i=this.getUTCMonth(),r+=Math.floor(i/12),i=(i%12+12)%12,t=[i+1,this.getUTCDate(),this.getUTCHours(),this.getUTCMinutes(),this.getUTCSeconds()],r=(0>r?"-":r>9999?"+":"")+z("00000"+Math.abs(r),r>=0&&9999>=r?-4:-6),e=t.length;e--;)n=t[e],10>n&&(t[e]="0"+n);return r+"-"+B(t,0,2).join("-")+"T"+B(t,2).join(":")+"."+z("000"+this.getUTCMilliseconds(),-3)+"Z"}},Lt||Mt);var It=function(){try{return Date.prototype.toJSON&&null===new Date(NaN).toJSON()&&-1!==new Date(Ft).toJSON().indexOf(Rt)&&Date.prototype.toJSON.call({toISOString:function(){return!0}})}catch(t){return!1}}();It||(Date.prototype.toJSON=function(e){var n=r(this),i=I.ToPrimitive(n);if("number"==typeof i&&!isFinite(i))return null;var a=n.toISOString;if(!t(a))throw new TypeError("toISOString property is not callable");return a.call(n)});var Dt=1e15===Date.parse("+033658-09-27T01:46:40.000Z"),Ut=!isNaN(Date.parse("2012-04-04T24:00:00.500Z"))||!isNaN(Date.parse("2012-11-31T23:59:59.000Z"))||!isNaN(Date.parse("2012-12-31T23:59:60.000Z")),Vt=isNaN(Date.parse("2000-01-01T00:00:00.000Z"));if(Vt||Ut||!Dt){var Bt=Math.pow(2,31)-1,qt=M(new Date(1970,0,1,0,0,0,Bt+1).getTime());Date=function(t){var e=function(n,r,i,a,s,u,c){var l,h=arguments.length;if(this instanceof t){var p=u,f=c;if(qt&&h>=7&&c>Bt){var d=Math.floor(c/Bt)*Bt,m=Math.floor(d/1e3);p+=m,f-=1e3*m}l=1===h&&o(n)===n?new t(e.parse(n)):h>=7?new t(n,r,i,a,s,p,f):h>=6?new t(n,r,i,a,s,p):h>=5?new t(n,r,i,a,s):h>=4?new t(n,r,i,a):h>=3?new t(n,r,i):h>=2?new t(n,r):h>=1?new t(n):new t}else l=t.apply(this,arguments);return L(l)||R(l,{constructor:e},!0),l},n=RegExp("^(\\d{4}|[+-]\\d{6})(?:-(\\d{2})(?:-(\\d{2})(?:T(\\d{2}):(\\d{2})(?::(\\d{2})(?:(\\.\\d{1,}))?)?(Z|(?:([-+])(\\d{2}):(\\d{2})))?)?)?)?$"),r=[0,31,59,90,120,151,181,212,243,273,304,334,365],i=function(t,e){var n=e>1?1:0;return r[e]+Math.floor((t-1969+n)/4)-Math.floor((t-1901+n)/100)+Math.floor((t-1601+n)/400)+365*(t-1970)},a=function(e){var n=0,r=e;if(qt&&r>Bt){var i=Math.floor(r/Bt)*Bt,a=Math.floor(i/1e3);n+=a,r-=1e3*a}return u(new t(1970,0,1,0,0,n,r))};for(var s in t)U(t,s)&&(e[s]=t[s]);R(e,{now:t.now,UTC:t.UTC},!0),e.prototype=t.prototype,R(e.prototype,{constructor:e},!0);var c=function(e){var r=n.exec(e);if(r){var o,s=u(r[1]),c=u(r[2]||1)-1,l=u(r[3]||1)-1,h=u(r[4]||0),p=u(r[5]||0),f=u(r[6]||0),d=Math.floor(1e3*u(r[7]||0)),m=!(!r[4]||r[8]),v="-"===r[9]?1:-1,g=u(r[10]||0),y=u(r[11]||0),b=p>0||f>0||d>0;return(b?24:25)>h&&60>p&&60>f&&1e3>d&&c>-1&&12>c&&24>g&&60>y&&l>-1&&l=-864e13&&864e13>=o)?o:NaN}return t.parse.apply(this,arguments)};return R(e,{parse:c}),e}(Date)}Date.now||(Date.now=function(){return(new Date).getTime()});var zt=c.toFixed&&("0.000"!==8e-5.toFixed(3)||"1"!==.9.toFixed(0)||"1.25"!==1.255.toFixed(2)||"1000000000000000128"!==0xde0b6b3a7640080.toFixed(0)),Ht={base:1e7,size:6,data:[0,0,0,0,0,0],multiply:function(t,e){for(var n=-1,r=e;++n=0;)n+=Ht.data[e],Ht.data[e]=Math.floor(n/t),n=n%t*Ht.base},numToString:function(){for(var t=Ht.size,e="";--t>=0;)if(""!==e||0===t||0!==Ht.data[t]){var n=o(Ht.data[t]);""===e?e=n:e+=z("0000000",0,7-n.length)+n}return e},pow:function ue(t,e,n){return 0===e?n:e%2===1?ue(t,e-1,n*t):ue(t*t,e/2,n)},log:function(t){for(var e=0,n=t;n>=4096;)e+=12,n/=4096;for(;n>=2;)e+=1,n/=2;return e}},Wt=function(t){var e,n,r,i,a,s,c,l;if(e=u(t),e=M(e)?0:Math.floor(e),0>e||e>20)throw new RangeError("Number.toFixed called with invalid number of decimals");if(n=u(this),M(n))return"NaN";if(-1e21>=n||n>=1e21)return o(n);if(r="",0>n&&(r="-",n=-n),i="0",n>1e-21)if(a=Ht.log(n*Ht.pow(2,69,1))-69,s=0>a?n*Ht.pow(2,-a,1):n/Ht.pow(2,a,1),s*=4503599627370496,a=52-a,a>0){for(Ht.multiply(0,s),c=e;c>=7;)Ht.multiply(1e7,0),c-=7;for(Ht.multiply(Ht.pow(10,c,1),0),c=a-1;c>=23;)Ht.divide(1<<23),c-=23;Ht.divide(1<0?(l=i.length,i=e>=l?r+z("0.0000000000000000000",0,e-l+2)+i:r+z(i,0,l-e)+"."+z(i,l-e)):i=r+i,i};R(c,{toFixed:Wt},zt);var $t=function(){try{return"1"===1..toPrecision(void 0)}catch(t){return!0}}(),Gt=c.toPrecision;R(c,{toPrecision:function(t){return void 0===t?Gt.call(this):Gt.call(this,t)}},$t),2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||"t"==="tesst".split(/(s)*/)[1]||4!=="test".split(/(?:)/,-1).length||"".split(/.?/).length||".".split(/()()/).length>1?!function(){var t=void 0===/()??/.exec("")[1],e=Math.pow(2,32)-1;s.split=function(n,r){var i=this+"";if(void 0===n&&0===r)return[];if(!T(n))return H(this,n,r);var a,o,s,u,c=[],l=(n.ignoreCase?"i":"")+(n.multiline?"m":"")+(n.unicode?"u":"")+(n.sticky?"y":""),h=0,f=RegExp(n.source,l+"g");t||(a=RegExp("^"+f.source+"$(?!\\s)",l));var d=void 0===r?e:I.ToUint32(r);for(o=f.exec(i);o&&(s=o.index+o[0].length,!(s>h&&($(c,z(i,h,o.index)),!t&&o.length>1&&o[0].replace(a,function(){for(var t=1;t1&&o.index=d)));)f.lastIndex===o.index&&f.lastIndex++,o=f.exec(i);return h===i.length?(u||!f.test(""))&&$(c,""):$(c,z(i,h)),c.length>d?z(c,0,d):c}}():"0".split(void 0,0).length&&(s.split=function(t,e){return void 0===t&&0===e?[]:H(this,t,e)});var Kt=s.replace,Qt=function(){var t=[];return"x".replace(/x(.)?/g,function(e,n){$(t,n)}),1===t.length&&void 0===t[0]}();Qt||(s.replace=function(e,n){var r=t(n),i=T(e)&&/\)[*?]/.test(e.source);if(r&&i){var a=function(t){var r=arguments.length,i=e.lastIndex;e.lastIndex=0;var a=e.exec(t)||[];return e.lastIndex=i,$(a,arguments[r-2],arguments[r-1]),n.apply(this,a)};return Kt.call(this,e,a)}return Kt.call(this,e,n)});var Yt=s.substr,Jt="".substr&&"b"!=="0b".substr(-1);R(s,{substr:function(t,e){var n=t;return 0>t&&(n=g(this.length+t,0)),Yt.call(this,n,e)}},Jt);var Zt=" \n\x0B\f\r   ᠎              \u2028\u2029\ufeff",Xt="​",te="["+Zt+"]",ee=RegExp("^"+te+te+"*"),ne=RegExp(te+te+"*$"),re=s.trim&&(Zt.trim()||!Xt.trim());R(s,{trim:function(){if(void 0===this||null===this)throw new TypeError("can't convert "+this+" to object");return o(this).replace(ee,"").replace(ne,"")}},re);var ie=s.lastIndexOf&&-1!=="abcあい".lastIndexOf("あい",2);R(s,{lastIndexOf:function(t){if(void 0===this||null===this)throw new TypeError("can't convert "+this+" to object");for(var e=o(this),n=o(t),r=arguments.length>1?u(arguments[1]):NaN,i=M(r)?1/0:I.ToInteger(r),a=y(g(i,0),e.length),s=n.length,c=a+s;c>0;){c=g(0,c-s);var l=W(z(e,c,a+s),n);if(-1!==l)return c+l}return-1}},ie);var ae=s.lastIndexOf;if(R(s,{lastIndexOf:function(t){return ae.apply(this,arguments)}},1!==s.lastIndexOf.length),(8!==parseInt(Zt+"08")||22!==parseInt(Zt+"0x16"))&&(parseInt=function(t){var e=/^[\-+]?0[xX]/;return function(n,r){var i=o(n).trim(),a=u(r)||(e.test(i)?16:10);return t(i,a)}}(parseInt)),new RangeError("test")+""!="RangeError: test"){var oe=function(){if(void 0===this||null===this)throw new TypeError("can't convert "+this+" to object");var t=this.name;void 0===t?t="Error":"string"!=typeof t&&(t=o(t));var e=this.message;return void 0===e?e="":"string"!=typeof e&&(e=o(e)),t?e?t+": "+e:t:e};Error.prototype.toString=oe}if(F){var se=function(t,e){if(G(t,e)){var n=Object.getOwnPropertyDescriptor(t,e);n.enumerable=!1,Object.defineProperty(t,e,n)}};se(Error.prototype,"message"),""!==Error.prototype.message&&(Error.prototype.message=""),se(Error.prototype,"name")}})},{}],3:[function(t,e,n){!function(t,n){function r(t,e){var n=t.createElement("p"),r=t.getElementsByTagName("head")[0]||t.documentElement;return n.innerHTML="x",r.insertBefore(n.lastChild,r.firstChild)}function i(){var t=w.elements;return"string"==typeof t?t.split(" "):t}function a(t,e){var n=w.elements;"string"!=typeof n&&(n=n.join(" ")),"string"!=typeof t&&(t=t.join(" ")),w.elements=n+" "+t,l(e)}function o(t){var e=b[t[g]];return e||(e={},y++,t[g]=y,b[y]=e),e}function s(t,e,r){if(e||(e=n),p)return e.createElement(t);r||(r=o(e));var i;return i=r.cache[t]?r.cache[t].cloneNode():v.test(t)?(r.cache[t]=r.createElem(t)).cloneNode():r.createElem(t),!i.canHaveChildren||m.test(t)||i.tagUrn?i:r.frag.appendChild(i)}function u(t,e){if(t||(t=n),p)return t.createDocumentFragment();e=e||o(t);for(var r=e.frag.cloneNode(),a=0,s=i(),u=s.length;u>a;a++)r.createElement(s[a]);return r}function c(t,e){e.cache||(e.cache={},e.createElem=t.createElement,e.createFrag=t.createDocumentFragment,e.frag=e.createFrag()),t.createElement=function(n){return w.shivMethods?s(n,t,e):e.createElem(n)},t.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+i().join().replace(/[\w\-:]+/g,function(t){return e.createElem(t),e.frag.createElement(t),'c("'+t+'")'})+");return n}")(w,e.frag)}function l(t){t||(t=n);var e=o(t);return!w.shivCSS||h||e.hasCSS||(e.hasCSS=!!r(t,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),p||c(t,e),t}var h,p,f="3.7.3-pre",d=t.html5||{},m=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,v=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,g="_html5shiv",y=0,b={};!function(){try{var t=n.createElement("a");t.innerHTML="",h="hidden"in t,p=1==t.childNodes.length||function(){n.createElement("a");var t=n.createDocumentFragment();return void 0===t.cloneNode||void 0===t.createDocumentFragment||void 0===t.createElement}()}catch(e){h=!0,p=!0}}();var w={elements:d.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:f,shivCSS:d.shivCSS!==!1,supportsUnknownElements:p,shivMethods:d.shivMethods!==!1,type:"default",shivDocument:l,createElement:s,createDocumentFragment:u,addElements:a};t.html5=w,l(n),"object"==typeof e&&e.exports&&(e.exports=w)}("undefined"!=typeof window?window:this,document)},{}],4:[function(t,e,n){(function(t){!function(t){function e(t,e,n,r){for(var a,o=n.slice(),s=i(e,t),u=0,c=o.length;c>u&&(handler=o[u],"object"==typeof handler&&"function"==typeof handler.handleEvent?handler.handleEvent(s):handler.call(t,s),!s.stoppedImmediatePropagation);u++);return a=!s.stoppedPropagation,r&&a&&t.parentNode?t.parentNode.dispatchEvent(s):!s.defaultPrevented}function n(t,e){return{configurable:!0,get:t,set:e}}function r(t,e,r){var i=y(e||t,r);v(t,"textContent",n(function(){return i.get.call(this)},function(t){i.set.call(this,t)}))}function i(t,e){return t.currentTarget=e,t.eventPhase=t.target===t.currentTarget?2:3,t}function a(t,e){for(var n=t.length;n--&&t[n]!==e;);return n}function o(){if("BR"===this.tagName)return"\n";for(var t=this.firstChild,e=[];t;)8!==t.nodeType&&7!==t.nodeType&&e.push(t.textContent),t=t.nextSibling;return e.join("")}function s(t){var e=document.createEvent("Event");e.initEvent("input",!0,!0),(t.srcElement||t.fromElement||document).dispatchEvent(e)}function u(t){!p&&_.test(document.readyState)&&(p=!p,document.detachEvent(f,u),t=document.createEvent("Event"),t.initEvent(d,!0,!0),document.dispatchEvent(t))}function c(t){for(var e;e=this.lastChild;)this.removeChild(e);null!=t&&this.appendChild(document.createTextNode(t))}function l(e,n){return n||(n=t.event),n.target||(n.target=n.srcElement||n.fromElement||document),n.timeStamp||(n.timeStamp=(new Date).getTime()),n}if(!document.createEvent){var h=!0,p=!1,f="onreadystatechange",d="DOMContentLoaded",m="__IE8__"+Math.random(),v=Object.defineProperty||function(t,e,n){t[e]=n.value},g=Object.defineProperties||function(e,n){for(var r in n)if(b.call(n,r))try{v(e,r,n[r])}catch(i){t.console&&console.log(r+" failed on object:",e,i.message)}},y=Object.getOwnPropertyDescriptor,b=Object.prototype.hasOwnProperty,w=t.Element.prototype,x=t.Text.prototype,k=/^[a-z]+$/,_=/loaded|complete/,E={},T=document.createElement("div"),C=document.documentElement,S=C.removeAttribute,O=C.setAttribute;r(t.HTMLCommentElement.prototype,w,"nodeValue"),r(t.HTMLScriptElement.prototype,null,"text"),r(x,null,"nodeValue"),r(t.HTMLTitleElement.prototype,null,"text"),v(t.HTMLStyleElement.prototype,"textContent",function(t){return n(function(){return t.get.call(this.styleSheet)},function(e){t.set.call(this.styleSheet,e)})}(y(t.CSSStyleSheet.prototype,"cssText"))),g(w,{textContent:{get:o,set:c},firstElementChild:{get:function(){for(var t=this.childNodes||[],e=0,n=t.length;n>e;e++)if(1==t[e].nodeType)return t[e]}},lastElementChild:{get:function(){for(var t=this.childNodes||[],e=t.length;e--;)if(1==t[e].nodeType)return t[e]}},oninput:{get:function(){return this._oninput||null},set:function(t){this._oninput&&(this.removeEventListener("input",this._oninput),this._oninput=t,t&&this.addEventListener("input",t))}},previousElementSibling:{get:function(){for(var t=this.previousSibling;t&&1!=t.nodeType;)t=t.previousSibling;return t}},nextElementSibling:{get:function(){for(var t=this.nextSibling;t&&1!=t.nodeType;)t=t.nextSibling;return t}},childElementCount:{get:function(){for(var t=0,e=this.childNodes||[],n=e.length;n--;t+=1==e[n].nodeType);return t}},addEventListener:{value:function(t,n,r){var i,o,u=this,c="on"+t,h=u[m]||v(u,m,{value:{}})[m],p=h[c]||(h[c]={}),f=p.h||(p.h=[]);if(!b.call(p,"w")){if(p.w=function(t){return t[m]||e(u,l(u,t),f,!1)},!b.call(E,c))if(k.test(t)){try{i=document.createEventObject(),i[m]=!0,9!=u.nodeType&&null==u.parentNode&&T.appendChild(u),(o=u.getAttribute(c))&&S.call(u,c),u.fireEvent(c,i),E[c]=!0}catch(i){for(E[c]=!1;T.hasChildNodes();)T.removeChild(T.firstChild)}null!=o&&O.call(u,c,o)}else E[c]=!1;(p.n=E[c])&&u.attachEvent(c,p.w)}a(f,n)<0&&f[r?"unshift":"push"](n),"input"===t&&u.attachEvent("onkeyup",s)}},dispatchEvent:{value:function(t){var n,r=this,i="on"+t.type,a=r[m],o=a&&a[i],s=!!o;return t.target||(t.target=r),s?o.n?r.fireEvent(i,t):e(r,t,o.h,!0):(n=r.parentNode)?n.dispatchEvent(t):!0,!t.defaultPrevented}},removeEventListener:{value:function(t,e,n){var r=this,i="on"+t,o=r[m],s=o&&o[i],u=s&&s.h,c=u?a(u,e):-1;c>-1&&u.splice(c,1)}}}),g(x,{addEventListener:{value:w.addEventListener},dispatchEvent:{value:w.dispatchEvent},removeEventListener:{value:w.removeEventListener}}),g(t.XMLHttpRequest.prototype,{addEventListener:{value:function(t,e,n){var r=this,i="on"+t,o=r[m]||v(r,m,{value:{}})[m],s=o[i]||(o[i]={}),u=s.h||(s.h=[]);a(u,e)<0&&(r[i]||(r[i]=function(){var e=document.createEvent("Event");e.initEvent(t,!0,!0),r.dispatchEvent(e)}),u[n?"unshift":"push"](e))}},dispatchEvent:{value:function(t){var n=this,r="on"+t.type,i=n[m],a=i&&i[r],o=!!a;return o&&(a.n?n.fireEvent(r,t):e(n,t,a.h,!0))}},removeEventListener:{value:w.removeEventListener}}),g(t.Event.prototype,{bubbles:{value:!0,writable:!0},cancelable:{value:!0,writable:!0},preventDefault:{value:function(){this.cancelable&&(this.defaultPrevented=!0,this.returnValue=!1)}},stopPropagation:{value:function(){this.stoppedPropagation=!0,this.cancelBubble=!0}},stopImmediatePropagation:{value:function(){this.stoppedImmediatePropagation=!0,this.stopPropagation()}},initEvent:{value:function(t,e,n){this.type=t,this.bubbles=!!e,this.cancelable=!!n,this.bubbles||this.stopPropagation()}}}),g(t.HTMLDocument.prototype,{defaultView:{get:function(){ -return this.parentWindow}},textContent:{get:function(){return 11===this.nodeType?o.call(this):null},set:function(t){11===this.nodeType&&c.call(this,t)}},addEventListener:{value:function(e,n,r){var i=this;w.addEventListener.call(i,e,n,r),h&&e===d&&!_.test(i.readyState)&&(h=!1,i.attachEvent(f,u),t==top&&!function a(t){try{i.documentElement.doScroll("left"),u()}catch(e){setTimeout(a,50)}}())}},dispatchEvent:{value:w.dispatchEvent},removeEventListener:{value:w.removeEventListener},createEvent:{value:function(t){var e;if("Event"!==t)throw Error("unsupported "+t);return e=document.createEventObject(),e.timeStamp=(new Date).getTime(),e}}}),g(t.Window.prototype,{getComputedStyle:{value:function(){function t(t){this._=t}function e(){}var n=/^(?:[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/,r=/^(top|right|bottom|left)$/,i=/\-([a-z])/g,a=function(t,e){return e.toUpperCase()};return t.prototype.getPropertyValue=function(t){var e,o,s,u=this._,c=u.style,l=u.currentStyle,h=u.runtimeStyle;return t=("float"===t?"style-float":t).replace(i,a),e=l?l[t]:c[t],n.test(e)&&!r.test(t)&&(o=c.left,s=h&&h.left,s&&(h.left=l.left),c.left="fontSize"===t?"1em":e,e=c.pixelLeft+"px",c.left=o,s&&(h.left=s)),null==e?e:e+""||"auto"},e.prototype.getPropertyValue=function(){return null},function(n,r){return r?new e(n):new t(n)}}()},addEventListener:{value:function(n,r,i){var o,s=t,u="on"+n;s[u]||(s[u]=function(t){return e(s,l(s,t),o,!1)}),o=s[u][m]||(s[u][m]=[]),a(o,r)<0&&o[i?"unshift":"push"](r)}},dispatchEvent:{value:function(e){var n=t["on"+e.type];return n?n.call(t,e)!==!1&&!e.defaultPrevented:!0}},removeEventListener:{value:function(e,n,r){var i="on"+e,o=(t[i]||Object)[m],s=o?a(o,n):-1;s>-1&&o.splice(s,1)}}}),function(t,e,n){for(n=0;n1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];for(var i,a;a=n.shift();)for(i in a)Oo.call(a,i)&&(t[i]=a[i]);return t}function i(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];return n.forEach(function(e){for(var n in e)!e.hasOwnProperty(n)||n in t||(t[n]=e[n])}),t}function a(t){return"[object Array]"===Ao.call(t)}function o(t){return jo.test(Ao.call(t))}function s(t,e){return null===t&&null===e?!0:"object"==typeof t||"object"==typeof e?!1:t===e}function u(t){return!isNaN(parseFloat(t))&&isFinite(t)}function c(t){return t&&"[object Object]"===Ao.call(t)}function l(t,e){return t.replace(/%s/g,function(){return e.shift()})}function h(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];throw t=l(t,n),Error(t)}function p(){Av.DEBUG&&To.apply(null,arguments)}function f(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];t=l(t,n),Co(t,n)}function d(t){for(var e=arguments.length,n=Array(e>1?e-1:0),r=1;e>r;r++)n[r-1]=arguments[r];t=l(t,n),No[t]||(No[t]=!0,Co(t,n))}function m(){Av.DEBUG&&f.apply(null,arguments)}function v(){Av.DEBUG&&d.apply(null,arguments)}function g(t,e,n){var r=y(t,e,n);return r?r[t][n]:null}function y(t,e,n){for(;e;){if(n in e[t])return e;if(e.isolated)return null;e=e.parent}}function b(t){return function(){return t}}function w(t){var e,n,r,i,a,o;for(e=t.split("."),(n=Bo[e.length])||(n=x(e.length)),a=[],r=function(t,n){return t?"*":e[n]},i=n.length;i--;)o=n[i].map(r).join("."),a.hasOwnProperty(o)||(a.push(o),a[o]=!0);return a}function x(t){var e,n,r,i,a,o,s,u,c="";if(!Bo[t]){for(r=[];c.length=a;a+=1){for(n=a.toString(2);n.lengtho;o++)u.push(i(n[o]));r[a]=u}Bo[t]=r}return Bo[t]}function k(t,e,n,r){var i=t[e];if(!i||!i.equalsOrStartsWith(r)&&i.equalsOrStartsWith(n))return t[e]=i?i.replace(n,r):r,!0}function _(t){var e=t.slice(2);return"i"===t[1]&&u(e)?+e:e}function E(t){return null==t?t:(Ho.hasOwnProperty(t)||(Ho[t]=new Wo(t)),Ho[t])}function T(t,e){function n(e,n){var r,i,o;return n.isRoot?o=[].concat(Object.keys(t.viewmodel.data),Object.keys(t.viewmodel.mappings),Object.keys(t.viewmodel.computations)):(r=t.viewmodel.wrapped[n.str],i=r?r.get():t.viewmodel.get(n),o=i?Object.keys(i):null),o&&o.forEach(function(t){"_ractive"===t&&a(i)||e.push(n.join(t))}),e}var r,i,o;for(r=e.str.split("."),o=[Go];i=r.shift();)"*"===i?o=o.reduce(n,[]):o[0]===Go?o[0]=E(i):o=o.map(C(i));return o}function C(t){return function(e){return e.join(t)}}function S(t){return t?t.replace(qo,".$1"):""}function O(t,e,n){if("string"!=typeof e||!u(n))throw Error("Bad arguments");var r=void 0,i=void 0;if(/\*/.test(e))return i={},T(t,E(S(e))).forEach(function(e){var r=t.viewmodel.get(e);if(!u(r))throw Error(Qo);i[e.str]=r+n}),t.set(i);if(r=t.get(e),!u(r))throw Error(Qo);return t.set(e,+r+n)}function A(t,e){return Ko(this,t,void 0===e?1:+e)}function j(t){this.event=t,this.method="on"+t,this.deprecate=ts[t]}function P(t,e){var n=t.indexOf(e);-1===n&&t.push(e)}function N(t,e){for(var n=0,r=t.length;r>n;n++)if(t[n]==e)return!0;return!1}function F(t,e){var n;if(!a(t)||!a(e))return!1;if(t.length!==e.length)return!1;for(n=t.length;n--;)if(t[n]!==e[n])return!1;return!0}function R(t){return"string"==typeof t?[t]:void 0===t?[]:t}function L(t){return t[t.length-1]}function M(t,e){var n=t.indexOf(e);-1!==n&&t.splice(n,1)}function I(t){for(var e=[],n=t.length;n--;)e[n]=t[n];return e}function D(t){setTimeout(t,0)}function U(t,e){return function(){for(var n;n=t.shift();)n(e)}}function V(t,e,n,r){var i;if(e===t)throw new TypeError("A promise's fulfillment handler cannot return the same promise");if(e instanceof es)e.then(n,r);else if(!e||"object"!=typeof e&&"function"!=typeof e)n(e);else{try{i=e.then}catch(a){return void r(a)}if("function"==typeof i){var o,s,u;s=function(e){o||(o=!0,V(t,e,n,r))},u=function(t){o||(o=!0,r(t))};try{i.call(e,s,u)}catch(a){if(!o)return r(a),void(o=!0)}}else n(e)}}function B(t,e,n){var r;return e=S(e),"~/"===e.substr(0,2)?(r=E(e.substring(2)),H(t,r.firstKey,n)):"."===e[0]?(r=q(ss(n),e),r&&H(t,r.firstKey,n)):r=z(t,E(e),n),r}function q(t,e){var n;if(void 0!=t&&"string"!=typeof t&&(t=t.str),"."===e)return E(t);if(n=t?t.split("."):[],"../"===e.substr(0,3)){for(;"../"===e.substr(0,3);){if(!n.length)throw Error('Could not resolve reference - too many "../" prefixes');n.pop(),e=e.substring(3)}return n.push(e),E(n.join("."))}return E(t?t+e.replace(/^\.\//,"."):e.replace(/^\.\/?/,""))}function z(t,e,n,r){var i,a,o,s,u;if(e.isRoot)return e;for(a=e.firstKey;n;)if(i=n.context,n=n.parent,i&&(s=!0,o=t.viewmodel.get(i),o&&("object"==typeof o||"function"==typeof o)&&a in o))return i.join(e.str);return W(t.viewmodel,a)?e:t.parent&&!t.isolated&&(s=!0,n=t.component.parentFragment,a=E(a),u=z(t.parent,a,n,!0))?(t.viewmodel.map(a,{origin:t.parent.viewmodel,keypath:u}),e):r||s?void 0:(t.viewmodel.set(e,void 0),e)}function H(t,e){var n;!t.parent||t.isolated||W(t.viewmodel,e)||(e=E(e),(n=z(t.parent,e,t.component.parentFragment,!0))&&t.viewmodel.map(e,{origin:t.parent.viewmodel,keypath:n}))}function W(t,e){return""===e||e in t.data||e in t.computations||e in t.mappings}function $(t){t.teardown()}function G(t){t.unbind()}function K(t){t.unrender()}function Q(t){t.cancel()}function Y(t){t.detach()}function J(t){t.detachNodes()}function Z(t){!t.ready||t.outros.length||t.outroChildren||(t.outrosComplete||(t.parent?t.parent.decrementOutros(t):t.detachNodes(),t.outrosComplete=!0),t.intros.length||t.totalChildren||("function"==typeof t.callback&&t.callback(),t.parent&&t.parent.decrementTotal()))}function X(){for(var t,e,n;ls.ractives.length;)e=ls.ractives.pop(),n=e.viewmodel.applyChanges(),n&&ds.fire(e,n);for(tt(),t=0;t=0;a--)i=t._subs[e[a]],i&&(s=gt(t,i,n,r)&&s);if(Vs.dequeue(t),t.parent&&s){if(o&&t.component){var u=t.component.name+"."+e[e.length-1];e=E(u).wildcardMatches(),n&&(n.component=t)}vt(t.parent,e,n,r)}}function gt(t,e,n,r){var i=null,a=!1;n&&!n._noArg&&(r=[n].concat(r)),e=e.slice();for(var o=0,s=e.length;s>o;o+=1)e[o].apply(t,r)===!1&&(a=!0);return n&&!n._noArg&&a&&(i=n.original)&&(i.preventDefault&&i.preventDefault(),i.stopPropagation&&i.stopPropagation()),!a}function yt(t){var e={args:Array.prototype.slice.call(arguments,1)};Bs(this,t,e)}function bt(t){var e;return t=E(S(t)),e=this.viewmodel.get(t,Hs),void 0===e&&this.parent&&!this.isolated&&us(this,t.str,this.component.parentFragment)&&(e=this.viewmodel.get(t)),e}function wt(e,n){if(!this.fragment.rendered)throw Error("The API has changed - you must call `ractive.render(target[, anchor])` to render your Ractive instance. Once rendered you can use `ractive.insert()`.");if(e=t(e),n=t(n)||null,!e)throw Error("You must specify a valid target to insert into");e.insertBefore(this.detach(),n),this.el=e,(e.__ractive_instances__||(e.__ractive_instances__=[])).push(this),this.detached=null,xt(this)}function xt(t){$s.fire(t),t.findAllComponents("*").forEach(function(t){xt(t.instance)})}function kt(t,e,n){var r,i;return t=E(S(t)),r=this.viewmodel.get(t),a(r)&&a(e)?(i=ms.start(this,!0),this.viewmodel.merge(t,r,e,n),ms.end(),i):this.set(t,e,n&&n.complete)}function _t(t,e){var n,r;return n=T(t,e),r={},n.forEach(function(e){r[e.str]=t.get(e.str)}),r}function Et(t,e,n,r){var i,a,o;e=E(S(e)),r=r||su,e.isPattern?(i=new au(t,e,n,r),t.viewmodel.patternObservers.push(i),a=!0):i=new Ys(t,e,n,r),i.init(r.init),t.viewmodel.register(e,i,a?"patternObservers":"observers"),i.ready=!0;var s={cancel:function(){var n;o||(a?(n=t.viewmodel.patternObservers.indexOf(i),t.viewmodel.patternObservers.splice(n,1),t.viewmodel.unregister(e,i,"patternObservers")):t.viewmodel.unregister(e,i,"observers"),o=!0)}};return t._observers.push(s),s}function Tt(t,e,n){var r,i,a,o;if(c(t)){n=e,i=t,r=[];for(t in i)i.hasOwnProperty(t)&&(e=i[t],r.push(this.observe(t,e,n)));return{cancel:function(){for(;r.length;)r.pop().cancel()}}}if("function"==typeof t)return n=e,e=t,t="",ou(this,t,e,n);if(a=t.split(" "),1===a.length)return ou(this,t,e,n);for(r=[],o=a.length;o--;)t=a[o],t&&r.push(ou(this,t,e,n));return{cancel:function(){for(;r.length;)r.pop().cancel()}}}function Ct(t,e,n){var r=this.observe(t,function(){e.apply(this,arguments),r.cancel()},{init:!1,defer:n&&n.defer});return r}function St(t,e){var n,r=this;if(t)n=t.split(" ").map(lu).filter(hu),n.forEach(function(t){var n,i;(n=r._subs[t])&&(e?(i=n.indexOf(e),-1!==i&&n.splice(i,1)):r._subs[t]=[])});else for(t in this._subs)delete this._subs[t];return this}function Ot(t,e){var n,r,i,a=this;if("object"==typeof t){n=[];for(r in t)t.hasOwnProperty(r)&&n.push(this.on(r,t[r]));return{cancel:function(){for(var t;t=n.pop();)t.cancel()}}}return i=t.split(" ").map(lu).filter(hu),i.forEach(function(t){(a._subs[t]||(a._subs[t]=[])).push(e)}),{cancel:function(){return a.off(t,e)}}}function At(t,e){var n=this.on(t,function(){e.apply(this,arguments),n.cancel()});return n}function jt(t,e,n){var r,i,a,o,s,u,c=[];if(r=Pt(t,e,n),!r)return null;for(i=t.length,s=r.length-2-r[1],a=Math.min(i,r[0]),o=a+r[1],u=0;a>u;u+=1)c.push(u);for(;o>u;u+=1)c.push(-1);for(;i>u;u+=1)c.push(u+s);return 0!==s?c.touchedFrom=r[0]:c.touchedFrom=t.length,c}function Pt(t,e,n){switch(e){case"splice":for(void 0!==n[0]&&n[0]<0&&(n[0]=t.length+Math.max(n[0],-t.length));n.length<2;)n.push(0);return n[1]=Math.min(n[1],t.length-n[0]),n;case"sort":case"reverse":return null;case"pop":return t.length?[t.length-1,1]:[0,0];case"push":return[t.length,0].concat(n);case"shift":return[0,t.length?1:0];case"unshift":return[0,0].concat(n)}}function Nt(e,n){var r,i,a,o=this;if(a=this.transitionsEnabled,this.noIntro&&(this.transitionsEnabled=!1),r=ms.start(this,!0),ms.scheduleTask(function(){return Ou.fire(o)},!0),this.fragment.rendered)throw Error("You cannot call ractive.render() on an already rendered instance! Call ractive.unrender() first");if(e=t(e)||this.el,n=t(n)||this.anchor,this.el=e,this.anchor=n,!this.append&&e){var s=e.__ractive_instances__;s&&s.length&&Ft(s),e.innerHTML=""}return this.cssId&&Cu.apply(),e&&((i=e.__ractive_instances__)?i.push(this):e.__ractive_instances__=[this],n?e.insertBefore(this.fragment.render(),n):e.appendChild(this.fragment.render())),ms.end(),this.transitionsEnabled=a,r.then(function(){return Au.fire(o)})}function Ft(t){t.splice(0,t.length).forEach($)}function Rt(t,e){for(var n=t.slice(),r=e.length;r--;)~n.indexOf(e[r])||n.push(e[r]);return n}function Lt(t,e){var n,r,i;return r='[data-ractive-css~="{'+e+'}"]',i=function(t){var e,n,i,a,o,s,u,c=[];for(e=[];n=Lu.exec(t);)e.push({str:n[0],base:n[1],modifiers:n[2]});for(a=e.map(It),u=e.length;u--;)s=a.slice(),i=e[u],s[u]=i.base+r+i.modifiers||"",o=a.slice(),o[u]=r+" "+o[u],c.push(s.join(" "),o.join(" "));return c.join(", ")},n=Iu.test(t)?t.replace(Iu,r):t.replace(Ru,"").replace(Fu,function(t,e){var n,r;return Mu.test(e)?t:(n=e.split(",").map(Mt),r=n.map(i).join(", ")+" ",t.replace(e,r))})}function Mt(t){return t.trim?t.trim():t.replace(/^\s+/,"").replace(/\s+$/,"")}function It(t){return t.str}function Dt(t){t&&t.constructor!==Object&&("function"==typeof t||("object"!=typeof t?h("data option must be an object or a function, `"+t+"` is not valid"):m("If supplied, options.data should be a plain JavaScript object - using a non-POJO as the root object may work, but is discouraged")))}function Ut(t,e){Dt(e);var n="function"==typeof t,r="function"==typeof e;return e||n||(e={}),n||r?function(){var i=r?Vt(e,this):e,a=n?Vt(t,this):t;return Bt(i,a)}:Bt(e,t)}function Vt(t,e){var n=t.call(e);if(n)return"object"!=typeof n&&h("Data function must return an object"),n.constructor!==Object&&v("Data function returned something other than a plain JavaScript object. This might work, but is strongly discouraged"),n}function Bt(t,e){if(t&&e){for(var n in e)n in t||(t[n]=e[n]);return t}return t||e}function qt(t){var e=wo(Wu);return e.parse=function(e,n){return zt(e,n||t)},e}function zt(t,e){if(!zu)throw Error("Missing Ractive.parse - cannot parse template. Either preparse or use the version that includes the parser");return zu(t,e||this.options)}function Ht(t,e){var n;if(!Za){if(e&&e.noThrow)return;throw Error("Cannot retrieve template #"+t+" as Ractive is not running in a browser.")}if(Wt(t)&&(t=t.substring(1)),!(n=document.getElementById(t))){if(e&&e.noThrow)return;throw Error("Could not find template element with id #"+t)}if("SCRIPT"!==n.tagName.toUpperCase()){if(e&&e.noThrow)return;throw Error("Template element with id #"+t+", must be a diff --git a/nano/scripts/components/subdisplay.ract b/nano/scripts/components/subdisplay.ract new file mode 100644 index 00000000000..108cdc933b3 --- /dev/null +++ b/nano/scripts/components/subdisplay.ract @@ -0,0 +1,11 @@ +
+ {{#if title}} +
+

{{title}}

+ {{#if button}}{{yield button}}{{/if}} +
+ {{/if}} +
+ {{yield}} +
+
diff --git a/nano/scripts/interfaces/air_alarm.ract b/nano/scripts/interfaces/air_alarm.ract new file mode 100644 index 00000000000..9139066184a --- /dev/null +++ b/nano/scripts/interfaces/air_alarm.ract @@ -0,0 +1,30 @@ + + + + + + + + + {{#if data.siliconUser}} + + {{data.locked ? "Engaged" : "Disengaged"}} + + {{else}} + Swipe an ID card to {{data.locked ? "unlock" : "lock"}} this interface. + {{/if}} + + +{{#if !data.locked || data.siliconUser}} + {{#if data.screen == 1}} + + {{elseif data.screen == 2}} + + {{elseif data.screen == 3}} + + {{elseif data.screen == 4}} + + {{elseif data.screen == 5}} + + {{/if}} +{{/if}} diff --git a/nano/scripts/interfaces/air_alarm/back.ract b/nano/scripts/interfaces/air_alarm/back.ract new file mode 100644 index 00000000000..8528495fc2f --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/back.ract @@ -0,0 +1 @@ +Back diff --git a/nano/scripts/interfaces/air_alarm/controls.ract b/nano/scripts/interfaces/air_alarm/controls.ract new file mode 100644 index 00000000000..530317a0c77 --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/controls.ract @@ -0,0 +1,23 @@ + + + Area Atmosphere Alarm + + + Panic Siphon + +
+ + Vent Controls + + + Scrubber Controls + + + Operating Mode + + + Alarm Thresholds + +
diff --git a/nano/scripts/interfaces/air_alarm/modes.ract b/nano/scripts/interfaces/air_alarm/modes.ract new file mode 100644 index 00000000000..c726a6d4ba2 --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/modes.ract @@ -0,0 +1,14 @@ + + + + {{#partial button}} + + {{/partial}} + {{#each data.modes}} + + {{name}} + + {{/each}} + diff --git a/nano/scripts/interfaces/air_alarm/scrubbers.ract b/nano/scripts/interfaces/air_alarm/scrubbers.ract new file mode 100644 index 00000000000..1d80db754ac --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/scrubbers.ract @@ -0,0 +1,33 @@ + + + + {{#partial button}} + + {{/partial}} + {{#each data.scrubbers}} + + + {{power ? "On" : "Off"}} + + + {{scrubbing ? "Scrubbing" : "Siphoning"}} + + + {{widenet ? "Expanded" : "Normal"}} + + + Oxygen + Nitrogen + Plasma + + + {{else}} + Error: No scrubbers connected. + {{/each}} + diff --git a/nano/scripts/interfaces/air_alarm/status.ract b/nano/scripts/interfaces/air_alarm/status.ract new file mode 100644 index 00000000000..c8c3412ec36 --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/status.ract @@ -0,0 +1,31 @@ + + {{#if data.environment_data}} + {{#each data.environment_data}} + + + {{Math.fixed(value, 2)}}{{unit}} + + + {{/each}} + + + {{data.danger_level == 2 ? "Danger (Internals Required)" : data.danger_level == 1 ? "Caution" : "Optimal"}} + + + + + {{data.atmos_alarm ? "Atmosphere Alarm" : fire_alarm ? "Fire Alarm" : "Nominal"}} + + + {{else}} + + Warning: Cannot obtain air sample for analysis. + + {{/if}} + {{#if data.emagged}} +
+ + Warning: Safety measures offline. Device may exhibit abnormal behavior. + + {{/if}} +
diff --git a/nano/scripts/interfaces/air_alarm/thresholds.ract b/nano/scripts/interfaces/air_alarm/thresholds.ract new file mode 100644 index 00000000000..dbf82432a7e --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/thresholds.ract @@ -0,0 +1,30 @@ + + + + {{#partial button}} + + {{/partial}} + + + + + + + + + + {{#each data.thresholds}} + + {{#each settings}}{{/each}} + {{/each}} + +
min2min1max1max2
{{{name}}} + {{Math.fixed(selected, 2)}} +
+ + + diff --git a/nano/scripts/interfaces/air_alarm/vents.ract b/nano/scripts/interfaces/air_alarm/vents.ract new file mode 100644 index 00000000000..8078ce72ca3 --- /dev/null +++ b/nano/scripts/interfaces/air_alarm/vents.ract @@ -0,0 +1,32 @@ + + + + {{#partial button}} + + {{/partial}} + {{#each data.vents}} + + + {{power ? "On" : "Off"}} + + + {{direction == "release" ? "Pressurizing" : "Siphoning"}} + + + Internal + External + + + {{Math.fixed(external)}} + Reset + + + {{else}} + Error: No vents connected. + {{/each}} + diff --git a/nano/scripts/interfaces/atmos_filter.ract b/nano/scripts/interfaces/atmos_filter.ract new file mode 100644 index 00000000000..7f9601356b7 --- /dev/null +++ b/nano/scripts/interfaces/atmos_filter.ract @@ -0,0 +1,25 @@ + + + {{data.on ? "On" : "Off"}} + + + Set + Max + {{Math.round(adata.set_pressure)}} kPa + + + Nothing + Plasma + O2 + N2 + CO2 + N2O + + diff --git a/nano/scripts/interfaces/atmos_mixer.ract b/nano/scripts/interfaces/atmos_mixer.ract new file mode 100644 index 00000000000..f68516770b1 --- /dev/null +++ b/nano/scripts/interfaces/atmos_mixer.ract @@ -0,0 +1,33 @@ + + + {{data.on ? "On" : "Off"}} + + + Set + Max + {{Math.round(adata.set_pressure)}} kPa + + + + + + + {{Math.round(adata.node1_concentration)}}% + + + + + + + {{Math.round(adata.node2_concentration)}}% + + diff --git a/nano/scripts/interfaces/atmos_pump.ract b/nano/scripts/interfaces/atmos_pump.ract new file mode 100644 index 00000000000..2cb3053a38c --- /dev/null +++ b/nano/scripts/interfaces/atmos_pump.ract @@ -0,0 +1,19 @@ + + + {{data.on ? "On" : "Off"}} + + {{#if data.max_rate}} + + Set + Max + {{Math.round(adata.transfer_rate)}} L/s + + {{else}} + + Set + Max + {{Math.round(adata.set_pressure)}} kPa + + {{/if}} + diff --git a/nano/scripts/interfaces/solar_control.ract b/nano/scripts/interfaces/solar_control.ract new file mode 100644 index 00000000000..852cc0474fb --- /dev/null +++ b/nano/scripts/interfaces/solar_control.ract @@ -0,0 +1,46 @@ + + + {{Math.round(adata.generated)}}W + + + {{Math.round(adata.angle)}}° ({{data.direction}}) + + + 15° + + + 15° + + + + + Off + Timed + Auto + + + {{Math.round(adata.tracking_rate)}}°/h ({{data.rotating_way}}) + + + 180° + 30° + + + 30° + 180° + + + + {{#partial button}} + Refresh + {{/partial}} + + {{data.connected_tracker ? "" : "Not "}}Found + + + {{Math.round(adata.connected_panels)}} Panels Connected + + diff --git a/nano/scripts/main.coffee b/nano/scripts/main.coffee index 0fb82482477..0498f1af82e 100644 --- a/nano/scripts/main.coffee +++ b/nano/scripts/main.coffee @@ -43,11 +43,12 @@ window.nanoui = new NanoUI el: "#container" components: # Components used in building NanoUIs; interfaces depend on these. interface: iface + "n-bar": require "./components/bar" + "n-button": require "./components/button" "n-display": require "./components/display" "n-notice": require "./components/notice" "n-section": require "./components/section" - "n-bar": require "./components/bar" - "n-button": require "./components/button" + "n-subdisplay": require "./components/subdisplay" events: enter: (require "ractive-events-keys").enter space: (require "ractive-events-keys").space diff --git a/nano/styles/components/subdisplay.styl b/nano/styles/components/subdisplay.styl new file mode 100644 index 00000000000..d4d20c96ee3 --- /dev/null +++ b/nano/styles/components/subdisplay.styl @@ -0,0 +1,9 @@ +div.subdisplay + width: 100% + margin: 0 + + header + @extend div.display header + + article + @extend div.display article