From 777ceb2bed719e5f7d64954d29fa8f0101da1945 Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Tue, 28 Dec 2021 17:13:25 +0000 Subject: [PATCH 01/11] Fixes #127 --- data/js/controls.js | 39 ++++++++++++++++----------------------- data/js/controls.min.js | 5 +++-- src/dataControlsJS.h | 7 ++++--- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/data/js/controls.js b/data/js/controls.js index 76d5f4e..e93f2f4 100644 --- a/data/js/controls.js +++ b/data/js/controls.js @@ -896,31 +896,24 @@ function switcher(number, state) { } var rangeSlider = function (isDiscrete) { - var slider = $(".range-slider"), - range = $(".range-slider__range"), - value = $(".range-slider__value"); + var range = $(".range-slider__range"); + var slidercb = function() { + sliderchange($(this).attr("id").replace(/^\D+/g, "")); + }; - slider.each(function () { - value.each(function () { - var value = $(this).prev().attr("value"); - $(this).html(value); - }); + range.on({input: function() { + $(this).next().html(this.value)} + }); - if (!isDiscrete) { - range.on({ - input: function () { - sliderchange($(this).attr("id").replace(/^\D+/g, "")); - }, - }); - } else { - range.on({ - input: function () { - $(this).next().html(this.value); - }, - change: function () { - sliderchange($(this).attr("id").replace(/^\D+/g, "")); - }, - }); + range.each(function() { + $(this).next().html(this.value); + if($(this).attr("callbackSet") != "true") { + if (!isDiscrete) { + $(this).on({input: slidercb}); //input fires when dragging + } else { + $(this).on({change: slidercb}); //change fires only once released + } + $(this).attr("callbackSet", "true"); } }); }; diff --git a/data/js/controls.min.js b/data/js/controls.min.js index a47337a..a08fcdc 100644 --- a/data/js/controls.min.js +++ b/data/js/controls.min.js @@ -251,7 +251,7 @@ data.id+ "");requestOrientationPermission();} break;case UPDATE_LABEL:$("#l"+data.id).html(data.value);break;case UPDATE_SWITCHER:switcher(data.id,data.value=="0"?0:1);break;case UPDATE_SLIDER:slider_move($("#id"+data.id),data.value,"100",false);break;case UPDATE_NUMBER:$("#num"+data.id).val(data.value);break;case UPDATE_TEXT_INPUT:$("#text"+data.id).val(data.value);break;case UPDATE_SELECT:$("#select"+data.id).val(data.value);break;case UPDATE_BUTTON:case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);break;case UPDATE_ACCEL:break;default:console.error("Unknown type or event");break;} if(data.type>=UPDATE_OFFSET&&data.type");requestOrientationPermission();} break;case UPDATE_LABEL:$("#l"+data.id).html(data.value);break;case UPDATE_SWITCHER:switcher(data.id,data.value=="0"?0:1);break;case UPDATE_SLIDER:slider_move($("#id"+data.id),data.value,"100",false);break;case UPDATE_NUMBER:$("#num"+data.id).val(data.value);break;case UPDATE_TEXT_INPUT:$("#text"+data.id).val(data.value);break;case UPDATE_SELECT:$("#select"+data.id).val(data.value);break;case UPDATE_BUTTON:case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);break;case UPDATE_ACCEL:break;default:console.error("Unknown type or event");break;} if(data.type>=UPDATE_OFFSET&&data.type Date: Wed, 29 Dec 2021 10:29:24 +0000 Subject: [PATCH 02/11] Update minified and header files for previous commit --- data/js/controls.min.js | 4 ++-- src/dataControlsJS.h | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/data/js/controls.min.js b/data/js/controls.min.js index a08fcdc..a799fad 100644 --- a/data/js/controls.min.js +++ b/data/js/controls.min.js @@ -251,7 +251,7 @@ data.id+ "");requestOrientationPermission();} break;case UPDATE_LABEL:$("#l"+data.id).html(data.value);break;case UPDATE_SWITCHER:switcher(data.id,data.value=="0"?0:1);break;case UPDATE_SLIDER:slider_move($("#id"+data.id),data.value,"100",false);break;case UPDATE_NUMBER:$("#num"+data.id).val(data.value);break;case UPDATE_TEXT_INPUT:$("#text"+data.id).val(data.value);break;case UPDATE_SELECT:$("#select"+data.id).val(data.value);break;case UPDATE_BUTTON:case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);break;case UPDATE_ACCEL:break;default:console.error("Unknown type or event");break;} if(data.type>=UPDATE_OFFSET&&data.type");requestOrientationPermission();} break;case UPDATE_LABEL:$("#l"+data.id).html(data.value);break;case UPDATE_SWITCHER:switcher(data.id,data.value=="0"?0:1);break;case UPDATE_SLIDER:slider_move($("#id"+data.id),data.value,"100",false);break;case UPDATE_NUMBER:$("#num"+data.id).val(data.value);break;case UPDATE_TEXT_INPUT:$("#text"+data.id).val(data.value);break;case UPDATE_SELECT:$("#select"+data.id).val(data.value);break;case UPDATE_BUTTON:case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);break;case UPDATE_ACCEL:break;default:console.error("Unknown type or event");break;} if(data.type>=UPDATE_OFFSET&&data.type Date: Wed, 29 Dec 2021 16:37:48 +0000 Subject: [PATCH 03/11] Fixes #136 and also severe bug in addControl --- src/ESPUI.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ESPUI.cpp b/src/ESPUI.cpp index afd8032..5db5aff 100644 --- a/src/ESPUI.cpp +++ b/src/ESPUI.cpp @@ -590,7 +590,7 @@ void onWsEvent( uint16_t ESPUIClass::addControl(ControlType type, const char* label, const String& value, ControlColor color, uint16_t parentControl, void (*callback)(Control*, int)) { - Control* control = new Control(type, label, callback, value, color, parentControl); + Control* control = new Control(type, label, callback, value, color, true, parentControl); if (this->controls == nullptr) { @@ -969,6 +969,7 @@ void ESPUIClass::jsonDom(AsyncWebSocketClient* client) item["label"] = control->label; item["value"] = String(control->value); item["color"] = (int)control->color; + item["visible"] = control->visible; if (control->parentControl != Control::noParent) { From aaea0fb87730fa9febc205f46e26202e27e3d8be Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Wed, 29 Dec 2021 17:52:03 +0000 Subject: [PATCH 04/11] Fixes #122 --- data/js/controls.js | 5 +++++ data/js/controls.min.js | 3 ++- src/dataControlsJS.h | 5 +++-- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/data/js/controls.js b/data/js/controls.js index e93f2f4..4ed3bf2 100644 --- a/data/js/controls.js +++ b/data/js/controls.js @@ -817,6 +817,11 @@ function start() { element.addClass(colorClass(data.color)); } } + + $(".range-slider__range").each(function(){ + $(this)[0].value = $(this).attr("value"); + $(this).next().html($(this).attr("value")); + }); }; websock.onmessage = handleEvent; diff --git a/data/js/controls.min.js b/data/js/controls.min.js index a799fad..80de178 100644 --- a/data/js/controls.min.js +++ b/data/js/controls.min.js @@ -250,7 +250,8 @@ data.id+ "'>"+ "");requestOrientationPermission();} break;case UPDATE_LABEL:$("#l"+data.id).html(data.value);break;case UPDATE_SWITCHER:switcher(data.id,data.value=="0"?0:1);break;case UPDATE_SLIDER:slider_move($("#id"+data.id),data.value,"100",false);break;case UPDATE_NUMBER:$("#num"+data.id).val(data.value);break;case UPDATE_TEXT_INPUT:$("#text"+data.id).val(data.value);break;case UPDATE_SELECT:$("#select"+data.id).val(data.value);break;case UPDATE_BUTTON:case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);break;case UPDATE_ACCEL:break;default:console.error("Unknown type or event");break;} -if(data.type>=UPDATE_OFFSET&&data.type=UPDATE_OFFSET&&data.type"+ "");requestOrientationPermission();} break;case UPDATE_LABEL:$("#l"+data.id).html(data.value);break;case UPDATE_SWITCHER:switcher(data.id,data.value=="0"?0:1);break;case UPDATE_SLIDER:slider_move($("#id"+data.id),data.value,"100",false);break;case UPDATE_NUMBER:$("#num"+data.id).val(data.value);break;case UPDATE_TEXT_INPUT:$("#text"+data.id).val(data.value);break;case UPDATE_SELECT:$("#select"+data.id).val(data.value);break;case UPDATE_BUTTON:case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);break;case UPDATE_ACCEL:break;default:console.error("Unknown type or event");break;} -if(data.type>=UPDATE_OFFSET&&data.type=UPDATE_OFFSET&&data.type Date: Wed, 29 Dec 2021 23:01:01 +0000 Subject: [PATCH 05/11] Add feedback to buttons when being pessed. One way to address #110. --- data/css/style.css | 5 +++++ data/css/style.min.css | 2 +- src/dataStyleCSS.h | 4 ++-- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/data/css/style.css b/data/css/style.css index d5b0023..c1be6ee 100644 --- a/data/css/style.css +++ b/data/css/style.css @@ -400,6 +400,11 @@ button { background-color: #999999; } +button:active { + background-color: #666666; + transform: translateX(4px) translateY(4px); +} + /* Main Head Part –––––––––––––––––––––––––––––––––––––––––––––––––– */ diff --git a/data/css/style.min.css b/data/css/style.min.css index 039078f..4497794 100644 --- a/data/css/style.min.css +++ b/data/css/style.min.css @@ -1 +1 @@ -.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;margin-top:2%;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:10px;min-width:500px;color:#fff}@media(max-width:630px){.card{min-width:98%}}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:2%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-bottom:12px;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end} \ No newline at end of file +.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;margin-top:2%;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:10px;min-width:500px;color:#fff}@media(max-width:630px){.card{min-width:98%}}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:2%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}button:active{background-color:#666;transform:translateX(4px) translateY(4px)}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-bottom:12px;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end} \ No newline at end of file diff --git a/src/dataStyleCSS.h b/src/dataStyleCSS.h index 831a63e..2ad2f97 100644 --- a/src/dataStyleCSS.h +++ b/src/dataStyleCSS.h @@ -1,5 +1,5 @@ const char CSS_STYLE[] PROGMEM = R"=====( -.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;margin-top:2%;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:10px;min-width:500px;color:#fff}@media(max-width:630px){.card{min-width:98%}}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:2%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-bottom:12px;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end} +.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;margin-top:2%;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:10px;min-width:500px;color:#fff}@media(max-width:630px){.card{min-width:98%}}.turquoise{background:#1abc9c;border-bottom:#16a085 3px solid}.emerald{background:#2ecc71;border-bottom:#27ae60 3px solid}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.dark{background:#444857;border-bottom:#444857 3px solid}.label{box-sizing:border-box;white-space:nowrap;border-radius:.2em;padding:.12em .4em .14em;text-align:center;color:#fff;font-weight:700;line-height:1.3;margin-bottom:5px;display:inline-block;white-space:nowrap;vertical-align:baseline;position:relative;top:-.15em;background-color:#999;margin-bottom:10px}.label-wrap{width:90%;white-space:pre-wrap;word-wrap:break-word}.label.color-blue{background-color:#6f9ad1}.label.color-red{background-color:#d37c7c}.label.color-green{background-color:#9bc268}.label.color-orange{background-color:#dea154}.label.color-yellow{background-color:#e9d641}.label.color-purple{background-color:#9f83d1}@media(min-width:400px){.container{width:84%}}@media(min-width:630px){.container{width:98%}.column,.columns{margin-right:2%}.column:first-child,.columns:first-child{margin-left:0}.one.column,.one.columns{width:4.66666666667%}.two.columns{width:13.3333333333%}.three.columns{width:22%}.four.columns{width:30.6666666667%}.five.columns{width:39.3333333333%}.six.columns{width:48%}.seven.columns{width:56.6666666667%}.eight.columns{width:65.3333333333%}.nine.columns{width:74%}.ten.columns{width:82.6666666667%}.eleven.columns{width:91.3333333333%}.twelve.columns{width:100%;margin-left:0}.one-third.column{width:30.6666666667%}.two-thirds.column{width:65.3333333333%}.one-half.column{width:48%}.offset-by-one.column,.offset-by-one.columns{margin-left:8.66666666667%}.offset-by-two.column,.offset-by-two.columns{margin-left:17.3333333333%}.offset-by-three.column,.offset-by-three.columns{margin-left:26%}.offset-by-four.column,.offset-by-four.columns{margin-left:34.6666666667%}.offset-by-five.column,.offset-by-five.columns{margin-left:43.3333333333%}.offset-by-six.column,.offset-by-six.columns{margin-left:52%}.offset-by-seven.column,.offset-by-seven.columns{margin-left:60.6666666667%}.offset-by-eight.column,.offset-by-eight.columns{margin-left:69.3333333333%}.offset-by-nine.column,.offset-by-nine.columns{margin-left:78%}.offset-by-ten.column,.offset-by-ten.columns{margin-left:86.6666666667%}.offset-by-eleven.column,.offset-by-eleven.columns{margin-left:95.3333333333%}.offset-by-one-third.column,.offset-by-one-third.columns{margin-left:34.6666666667%}.offset-by-two-thirds.column,.offset-by-two-thirds.columns{margin-left:69.3333333333%}.offset-by-one-half.column,.offset-by-one-half.columns{margin-left:52%}}html{font-size:62.5%}body{margin:0;font-size:1.5em;line-height:1;font-weight:400;font-family:"Open Sans",sans-serif;color:#222;background-color:#ecf0f1}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:300}h1{font-size:4rem;line-height:1.2;letter-spacing:-.1rem}h2{font-size:3.6rem;line-height:1.25;letter-spacing:-.1rem}h3{font-size:3rem;line-height:1.3;letter-spacing:-.1rem}h4{font-size:2.4rem;line-height:1.35;letter-spacing:-.08rem}h5{font-size:1.8rem;line-height:1.5;letter-spacing:-.05rem}h6{font-size:1.5rem;line-height:1.6;letter-spacing:0}@media(min-width:630px){h1{font-size:5rem}h2{font-size:4.2rem}h3{font-size:3.6rem}h4{font-size:3rem}h5{font-size:2rem}h6{font-size:1.5rem}}p{margin-top:0}a{color:#1eaedb}a:hover{color:#0fa0ce}button{display:inline-block;padding:10px;border-radius:3px;color:#fff;background-color:#999}button:active{background-color:#666;transform:translateX(4px) translateY(4px)}#mainHeader{display:inline-block}#conStatus{position:inherit;font-size:.75em}button,.button{margin-bottom:1rem}.u-full-width{width:100%;box-sizing:border-box}.u-max-full-width{max-width:100%;box-sizing:border-box}.u-pull-right{float:right}.u-pull-left{float:left}.tcenter{text-align:center}hr{margin-top:.5rem;margin-bottom:1.2rem;border-width:0;border-top:1px solid #e1e1e1}.container:after,.row:after,.u-cf{content:"";display:table;clear:both}.control{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.1),hsla(0,0%,100%,0.1));border-radius:50%;box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.75),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.75);height:9em;margin:3em auto;position:relative;width:9em}.control ul{height:100%;padding:0;transform:rotate(45deg)}.control li{border-radius:100% 0 0 0;box-shadow:inset -1px -1px 1px hsla(0,0%,100%,0.5),0 0 1px hsla(0,0%,0%,0.75);display:inline-block;height:50%;overflow:hidden;width:50%}.control ul li:nth-child(2){transform:rotate(90deg)}.control ul li:nth-child(3){transform:rotate(-90deg)}.control ul li:nth-child(4){transform:rotate(180deg)}.control ul a{height:200%;position:relative;transform:rotate(-45deg);width:200%}.control a:hover,.control a:focus{background-color:hsla(0,0%,100%,0.25)}.control a{border-radius:50%;color:#333;display:block;font:bold 1em/3 sans-serif;text-align:center;text-decoration:none;text-shadow:0 1px 1px hsla(0,0%,100%,0.4);transition:.15s}.control .confirm{background-color:#ddd;background-image:linear-gradient(hsla(0,0%,0%,0.15),hsla(0,0%,100%,0.25));box-shadow:inset 0 1px 1px 1px hsla(0,0%,100%,0.5),0 0 1px 1px hsla(0,0%,100%,0.25),0 0 1px 2px hsla(0,0%,100%,0.25),0 0 1px 3px hsla(0,0%,100%,0.25),0 0 1px 4px hsla(0,0%,100%,0.25),0 0 1px 6px hsla(0,0%,0%,0.85);left:50%;line-height:3;margin:-1.5em;position:absolute;top:50%;width:3em}.control .confirm:hover,.control .confirm:focus{background-color:#eee}.switch{display:inline-block !important;background-color:#bebebe;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);color:#fff;cursor:pointer;display:block;font-size:14px;height:26px;margin-bottom:12px;position:relative;width:60px;-webkit-transition:background-color .2s ease-in-out;-moz-transition:background-color .2s ease-in-out;-o-transition:background-color .2s ease-in-out;-ms-transition:background-color .2s ease-in-out;transition:background-color .2s ease-in-out}.switch.checked{background-color:#76d21d}.switch input[type="checkbox"]{display:none;cursor:pointer;height:10px;left:12px;position:absolute;top:8px;width:10px}.in{position:absolute;top:8px;left:12px;-webkit-transition:left .08s ease-in-out;-moz-transition:left .08s ease-in-out;-o-transition:left .08s ease-in-out;-ms-transition:left .08s ease-in-out;transition:left .08s ease-in-out}.switch.checked div{left:38px}.switch .in:before{background:#fff;background:-moz-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff),color-stop(100%,#f0f0f0));background:-webkit-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-o-linear-gradient(top,#fff 0,#f0f0f0 100%);background:-ms-linear-gradient(top,#fff 0,#f0f0f0 100%);background:linear-gradient(to bottom,#fff 0,#f0f0f0 100%);border:1px solid #fff;border-radius:2px;box-shadow:0 0 4px rgba(0,0,0,0.3);content:"";height:18px;position:absolute;top:-5px;left:-9px;width:26px}.switch .in:after{background:#f0f0f0;background:-moz-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-webkit-gradient(linear,left top,left bottom,color-stop(0,#f0f0f0),color-stop(100%,#fff));background:-webkit-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-o-linear-gradient(top,#f0f0f0 0,#fff 100%);background:-ms-linear-gradient(top,#f0f0f0 0,#fff 100%);background:linear-gradient(to bottom,#f0f0f0 0,#fff 100%);border-radius:10px;content:"";height:12px;margin:-1px 0 0 -1px;position:absolute;width:12px}.rkmd-slider{display:block;position:relative;font-size:16px;font-family:"Roboto",sans-serif}.rkmd-slider input[type="range"]{overflow:hidden;position:absolute;width:1px;height:1px;opacity:0}.rkmd-slider input[type="range"]+.slider{display:block;position:relative;width:100%;height:27px;border-radius:13px;background-color:#bebebe}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider{height:4px;border-radius:0}}.rkmd-slider input[type="range"]+.slider .slider-fill{display:block;position:absolute;width:0;height:100%;user-select:none;z-index:1}.rkmd-slider input[type="range"]+.slider .slider-handle{cursor:pointer;position:absolute;top:12px;left:0;width:15px;height:15px;margin-left:-8px;border-radius:50%;transition:all .2s ease;user-select:none;z-index:2}@media(pointer:fine){.rkmd-slider input[type="range"]+.slider .slider-handle{top:-5.5px}}.rkmd-slider input[type="range"]:disabled+.slider{background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle{cursor:default !important;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle .slider-label{display:none;background-color:#b0b0b0 !important}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active{top:-5.5px;width:15px;height:15px;margin-left:-8px}.rkmd-slider input[type="range"]:disabled+.slider .slider-fill.is-active .slider-label,.rkmd-slider input[type="range"]:disabled+.slider .slider-handle.is-active .slider-label{display:none;border-radius:50%;transform:none}.rkmd-slider input[type="range"]:disabled+.slider .slider-handle:active{box-shadow:none !important;transform:scale(1) !important}.rkmd-slider.slider-discrete .slider .slider-handle{position:relative;z-index:1}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{position:absolute;top:-17.5px;left:4px;width:30px;height:30px;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;border-radius:50%;-webkit-transform:scale(1) rotate(-45deg);transform:scale(1) rotate(-45deg);-webkit-transition:all .2s ease;transition:all .2s ease}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label{left:-2px;-webkit-transform:scale(0.5) rotate(-45deg);transform:scale(0.5) rotate(-45deg)}}.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{position:absolute;top:7px;left:0;width:100%;color:#fff;font-size:16px;text-align:center;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(pointer:fine){.rkmd-slider.slider-discrete .slider .slider-handle .slider-label span{font-size:12px}}.rkmd-slider.slider-discrete .slider .slider-handle.is-active{top:0;margin-left:-2px;width:4px;height:4px}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label{top:-15px;left:-2px;border-radius:15px 15px 15px 0;-webkit-transform:rotate(-45deg) translate(23px,-25px);transform:rotate(-45deg) translate(23px,-25px)}.rkmd-slider.slider-discrete .slider .slider-handle.is-active .slider-label span{opacity:1}.rkmd-slider.slider-discrete.slider-turquoise .slider-label{background-color:#16a085}.rkmd-slider.slider-discrete.slider-emerald .slider-label{background-color:#27ae60}.peterriver{background:#3498db;border-bottom:#2980b9 3px solid}.rkmd-slider.slider-discrete.slider-peterriver .slider-label{background-color:#2980b9}.wetasphalt{background:#34495e;border-bottom:#2c3e50 3px solid}.rkmd-slider.slider-discrete.slider-wetasphalt .slider-label{background-color:#2c3e50}.sunflower{background:#f1c40f;border-bottom:#e6bb0f 3px solid}.rkmd-slider.slider-discrete.slider-sunflower .slider-label{background-color:#e6bb0f}.carrot{background:#e67e22;border-bottom:#d35400 3px solid}.rkmd-slider.slider-discrete.slider-carrot .slider-label{background-color:#d35400}.alizarin{background:#e74c3c;border-bottom:#c0392b 3px solid}.rkmd-slider.slider-discrete.slider-alizarin .slider-label{background-color:#c0392b}input{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}select{margin:0 auto 1.2rem auto;padding:2px 5px;width:100%;box-sizing:border-box;border:0;border-radius:4px;box-shadow:inset 0 0 6px rgba(0,0,0,0.3);background:rgba(255,255,255,0.8)}input[id^="num"]{max-width:6em;width:auto;text-align:right;font-weight:bold;font-size:115%}body div>ul.navigation{margin:0;padding:0;border-bottom:3px solid #666;overflow:hidden}ul.navigation li{list-style:none;float:left;margin-right:4px}ul.navigation li.controls{float:right}ul.navigation li a{font-weight:bold;display:inline-block;padding:6px 12px;color:#888;outline:0;text-decoration:none;background:#f3f3f3;background:-webkit-gradient(linear,0 0,0 bottom,from(#eee),to(#e4e4e4));background:-moz-linear-gradient(#eee,#e4e4e4);background:linear-gradient(#eee,#e4e4e4);-pie-background:linear-gradient(#eee,#e4e4e4)}ul.navigation li.active a{pointer-events:none;color:white;background:#666;background:-webkit-gradient(linear,0 0,0 bottom,from(#888),to(#666));background:-moz-linear-gradient(#888,#666);background:linear-gradient(#888,#666);-pie-background:linear-gradient(#888,#666)}div.tabscontent>div{padding:0 15px}#tabsnav:empty{display:none}.range-slider{margin:0}.range-slider{width:100%}.range-slider__range{-webkit-appearance:none;width:calc(100% - (45px));height:10px;border-radius:5px;outline:0;padding:0;margin:0}.range-slider__value{display:inline-block;position:relative;width:30px;color:#fff;line-height:20px;text-align:center;border-radius:3px;padding:5px 5px;margin-left:2px}.range-slider__value:after{position:absolute;top:8px;left:-7px;width:0;height:0;content:""}::-moz-range-track{border:0}input::-moz-focus-inner,input::-moz-focus-outer{border:0}svg{display:block;width:100%;height:100%}.y-axis path,.x-axis path{stroke:gray;stroke-width:1;fill:none}.series{stroke:steelblue;stroke-width:3;fill:none}.data-points circle{stroke:steelblue;stroke-width:2;fill:white}.data-points text{display:none}.data-points circle:hover{fill:steelblue;stroke-width:6}.data-points circle:hover+text{display:inline-block}text{text-anchor:end} )====="; -const uint8_t CSS_STYLE_GZIP[3327] PROGMEM = { 31,139,8,0,98,248,108,95,2,255,213,27,107,111,227,184,241,175,168,9,2,196,56,73,213,219,182,132,59,244,99,191,21,232,125,44,174,11,90,162,34,33,178,228,74,244,38,89,67,255,189,67,82,15,62,164,216,73,246,80,116,189,155,149,169,153,225,188,57,28,50,118,218,212,4,149,53,110,47,167,166,43,73,217,212,113,139,43,68,202,239,56,121,41,51,82,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,63,202,250,41,62,52,109,134,91,11,70,122,59,109,170,243,177,54,135,255,187,11,71,118,29,231,33,201,171,6,145,184,194,57,1,48,212,102,151,99,89,91,5,46,159,10,66,1,128,38,167,111,145,230,20,123,15,201,64,182,69,89,121,238,226,104,156,179,64,89,243,18,59,70,112,122,101,255,218,167,3,122,244,156,192,116,247,91,211,221,133,166,99,135,155,228,132,178,12,120,179,232,116,156,225,113,164,101,19,122,194,124,135,134,144,230,8,60,208,33,248,206,121,14,25,75,32,71,211,198,247,121,158,247,127,59,226,172,68,143,71,244,58,64,68,62,64,108,46,179,48,124,120,191,123,232,123,155,156,219,255,156,155,178,195,151,3,74,159,159,218,230,92,103,241,189,139,14,233,62,77,38,141,177,137,239,221,8,57,187,208,240,65,154,174,169,202,172,183,241,17,183,168,202,36,92,15,167,233,214,85,113,189,45,194,145,35,226,158,48,193,109,11,150,107,37,116,63,216,239,178,131,134,190,223,57,135,189,136,254,130,9,234,78,5,170,136,130,30,236,67,172,161,167,62,14,165,217,187,115,13,134,126,81,38,207,221,52,112,114,21,27,71,135,131,147,139,216,160,202,182,145,39,198,209,22,123,158,138,154,249,97,224,72,19,163,170,252,129,218,178,150,145,183,65,234,107,250,78,29,127,239,29,68,228,12,181,207,18,98,16,4,187,112,171,34,242,81,17,177,66,7,92,93,22,131,33,121,41,74,130,173,238,132,82,28,215,205,75,139,78,138,79,219,30,62,142,126,25,219,46,124,51,236,128,254,112,225,103,66,240,43,177,64,170,167,58,78,113,13,54,21,156,49,201,33,96,173,23,30,60,91,199,73,42,8,222,41,152,108,95,113,237,16,60,57,43,187,83,133,222,226,178,102,176,135,170,73,159,151,88,4,191,33,101,138,170,97,234,3,234,48,69,72,244,196,64,227,212,178,221,16,120,157,85,103,13,76,238,247,251,133,248,26,20,102,209,153,134,220,176,135,212,32,178,113,106,49,123,157,188,128,174,216,83,124,104,49,122,182,232,247,1,223,102,147,128,12,103,49,188,198,169,163,124,143,50,87,6,109,113,182,0,153,249,219,116,155,202,144,79,45,198,245,2,236,254,144,122,209,78,134,109,90,84,63,45,177,144,97,228,134,129,12,252,134,43,8,140,5,96,188,207,162,64,225,247,116,110,79,213,18,229,125,190,243,65,184,49,25,77,89,39,112,134,100,52,101,114,62,190,11,32,27,105,208,83,234,82,160,105,238,210,114,248,96,198,33,113,78,0,113,94,182,29,177,210,162,172,178,9,88,28,28,17,89,14,118,122,187,169,241,68,123,126,30,215,136,192,142,166,63,91,152,132,188,52,234,42,226,219,254,244,135,66,20,96,42,5,198,163,252,229,205,185,85,198,125,199,150,168,231,224,192,42,200,94,38,223,149,175,42,139,84,59,29,254,142,107,229,69,24,201,212,89,28,42,48,81,40,147,175,75,77,5,219,128,74,165,81,223,121,10,245,106,129,133,189,171,40,231,5,87,154,136,108,29,214,173,98,145,162,108,179,1,118,69,97,96,14,14,214,201,112,170,88,148,28,44,30,185,12,197,52,215,228,121,135,137,117,120,179,36,79,88,24,237,36,215,217,41,158,49,99,204,62,98,46,142,202,116,220,173,194,234,140,33,120,146,185,50,46,211,242,34,137,128,224,113,230,242,176,140,238,7,246,138,72,130,99,154,203,195,50,165,192,95,19,106,246,95,115,113,84,166,19,122,50,178,224,98,230,202,184,76,32,114,214,68,18,163,193,92,25,87,104,237,215,132,18,162,198,92,30,150,41,109,101,199,35,139,66,145,21,145,118,209,170,72,213,138,126,148,216,20,169,237,195,53,161,212,16,52,223,121,119,171,31,105,241,106,190,247,242,86,245,43,209,109,174,191,210,189,171,47,200,177,186,176,194,5,106,37,28,71,158,29,62,244,135,38,123,27,64,99,39,153,223,186,54,173,43,164,178,70,42,122,96,189,227,223,115,116,44,171,183,248,238,31,39,92,27,191,163,186,187,51,59,248,9,158,218,150,249,88,50,121,180,130,212,23,222,52,119,114,183,47,92,179,240,204,194,55,139,192,44,66,179,136,46,194,70,196,81,170,24,59,108,129,47,145,19,223,113,128,132,32,88,208,170,156,219,94,82,97,2,37,28,171,113,104,181,7,117,19,64,245,133,39,224,249,118,180,128,25,174,161,250,34,170,142,232,175,225,5,2,158,103,47,48,235,47,76,233,236,24,110,120,17,45,180,211,113,151,80,67,134,26,73,168,161,142,26,169,168,206,106,221,34,169,59,212,20,25,216,158,174,33,166,92,89,122,95,147,201,91,97,181,239,79,146,83,244,232,50,248,144,139,17,206,14,61,138,139,134,238,184,134,81,39,71,78,138,251,195,25,124,166,190,44,150,222,99,221,239,242,221,180,184,47,240,165,141,231,114,113,221,223,31,161,112,251,59,70,128,183,56,65,127,15,197,221,239,4,145,115,55,111,234,203,186,128,176,32,66,156,217,91,136,179,129,81,211,30,24,86,10,119,170,0,251,108,229,231,170,226,118,16,203,137,149,70,192,217,162,27,101,1,101,222,55,191,143,118,162,40,172,214,188,240,142,1,123,158,222,208,116,114,17,91,9,132,111,142,46,218,118,169,47,90,209,102,220,229,20,201,152,163,140,218,231,220,57,227,87,138,228,142,59,61,227,30,187,244,211,207,37,115,140,114,152,197,180,219,230,101,124,60,91,105,126,161,0,192,64,124,119,55,237,185,8,58,84,56,73,43,140,90,144,150,20,156,74,219,84,75,91,135,44,19,45,94,30,209,19,142,169,89,17,221,155,128,131,0,237,199,162,171,208,163,99,58,15,236,175,237,110,204,121,132,170,151,141,109,20,183,10,71,181,243,22,74,89,67,230,54,28,131,202,56,254,211,168,132,27,211,17,96,180,247,91,1,192,91,2,240,4,0,255,26,64,112,13,32,146,0,70,14,146,33,135,236,39,3,199,62,108,163,209,153,52,201,90,63,107,79,125,122,176,130,113,174,46,115,35,234,97,10,77,39,33,176,193,235,242,166,61,198,109,3,161,132,31,131,48,195,79,155,25,179,42,47,178,146,41,1,131,178,235,232,186,182,168,8,214,45,186,94,144,113,49,137,12,92,83,203,210,244,67,59,47,113,81,102,25,174,147,177,139,245,32,138,9,252,198,53,41,248,254,236,209,219,92,52,1,247,142,44,160,138,227,47,224,88,215,144,130,5,36,119,167,35,161,209,12,30,51,131,222,113,208,102,230,246,24,132,165,88,51,189,33,37,155,194,64,222,164,144,13,181,152,91,114,57,129,206,69,15,163,33,86,161,60,154,236,194,13,66,19,43,132,120,149,25,46,62,254,213,55,132,82,68,239,231,176,145,12,167,77,139,152,156,53,212,80,124,112,234,114,174,58,75,176,225,218,224,26,178,221,176,155,57,166,15,176,15,63,254,172,236,18,46,164,23,80,209,230,167,103,19,239,127,158,77,118,16,105,188,98,5,43,139,245,201,216,82,139,45,94,153,78,206,137,14,176,64,156,9,111,135,81,172,97,255,44,230,151,209,32,170,71,78,227,43,142,121,143,49,238,237,238,165,36,105,177,184,200,27,127,41,143,167,166,37,168,38,11,101,194,1,211,143,178,10,4,114,35,125,180,155,195,180,193,154,233,160,13,250,177,253,141,88,133,164,231,182,131,231,83,83,50,223,213,221,126,168,151,40,253,49,138,35,189,201,238,209,86,252,74,78,142,104,41,4,101,245,225,185,36,150,224,221,170,100,134,237,117,6,70,29,182,128,112,115,38,137,117,108,126,124,12,161,249,32,253,238,67,240,31,128,29,205,107,167,5,78,159,23,187,148,219,40,243,220,108,4,52,202,250,116,38,255,34,111,39,252,235,29,67,2,107,222,253,49,185,7,75,34,138,177,166,197,13,244,203,91,33,146,25,36,23,222,193,155,177,78,163,13,219,178,190,172,3,206,196,22,204,70,95,26,176,115,120,223,86,43,80,205,45,148,186,235,64,215,0,84,253,27,89,249,253,194,247,214,59,42,254,160,116,80,67,124,192,176,244,200,231,57,114,121,30,51,217,212,108,10,186,50,41,160,225,192,127,14,253,24,52,23,109,36,196,65,123,19,18,39,98,50,150,41,1,246,192,99,200,228,29,226,14,134,31,29,70,121,35,14,177,60,55,76,180,89,156,228,83,12,54,159,67,3,19,125,6,79,199,25,133,95,198,100,25,78,172,214,153,97,164,188,231,169,7,136,206,124,124,40,101,188,169,122,31,163,102,183,26,43,86,56,198,128,181,159,194,134,102,61,201,111,216,230,64,118,27,198,252,141,158,195,5,229,150,254,185,158,195,125,100,193,121,192,165,62,224,57,87,24,108,62,135,182,234,57,239,227,189,231,57,75,152,74,241,206,118,222,154,7,120,211,58,22,179,242,157,58,15,125,88,112,139,33,117,122,212,7,218,231,99,102,117,224,143,194,22,125,216,252,107,43,160,176,130,210,85,83,106,109,253,179,1,17,26,177,175,37,209,150,86,4,118,34,5,203,129,186,29,88,229,116,94,174,233,99,67,123,47,228,141,30,12,92,153,225,23,251,70,201,132,77,255,88,23,108,181,150,135,75,123,30,107,21,204,216,7,26,150,179,56,7,27,111,46,55,51,56,204,26,104,147,58,253,205,82,26,195,255,86,94,86,213,154,200,138,106,157,68,220,84,158,59,218,218,194,21,78,9,95,163,127,192,10,148,225,215,216,253,56,19,5,170,179,10,95,148,85,126,57,71,49,231,229,135,61,163,41,66,193,230,225,92,162,241,68,182,211,212,68,139,90,97,25,69,85,53,21,49,235,82,121,95,51,154,42,42,207,182,54,112,123,221,102,49,152,135,54,92,178,201,3,22,28,203,161,31,161,124,254,56,85,201,37,204,207,163,203,198,204,112,142,206,21,185,82,216,255,100,238,167,47,236,8,250,203,178,200,228,228,202,244,207,23,198,46,59,11,165,52,245,124,89,144,153,148,224,128,183,70,209,79,19,227,39,91,103,141,176,98,167,229,20,192,154,47,20,160,255,42,27,241,160,88,161,38,163,116,69,199,159,103,236,82,84,225,71,119,179,230,37,35,105,152,51,109,49,153,36,83,131,76,95,157,150,179,240,141,244,20,5,174,20,137,238,214,158,234,196,96,242,31,122,146,49,250,143,175,109,124,169,212,86,211,150,180,228,0,229,179,106,37,89,127,163,91,75,163,54,235,80,233,157,93,135,88,216,219,73,139,192,202,248,245,21,224,115,106,230,17,230,45,169,108,16,129,118,154,174,137,185,0,211,127,221,7,140,238,132,214,54,204,91,109,33,118,230,86,226,116,169,107,174,1,245,134,161,46,175,212,150,94,107,87,207,85,221,68,65,91,183,217,6,100,97,180,211,7,213,129,63,201,206,92,149,130,78,60,117,241,191,145,172,146,197,29,57,83,123,83,68,10,157,171,64,73,223,31,158,73,113,89,158,7,230,221,162,167,23,192,33,109,138,78,63,156,117,91,15,206,106,176,23,21,29,241,160,120,54,45,15,240,54,201,199,192,127,166,144,220,94,163,171,189,159,79,199,239,211,45,89,69,95,122,149,192,239,200,222,68,116,184,60,123,149,36,191,58,251,229,11,179,55,112,52,207,112,157,41,70,255,203,215,112,111,96,106,158,225,58,83,140,254,87,47,247,222,192,211,52,193,85,150,56,249,47,221,24,190,129,31,78,253,42,51,156,246,23,239,32,223,192,206,72,255,42,67,156,122,207,202,178,233,118,13,59,16,53,248,153,247,112,56,58,28,116,210,179,22,161,178,93,61,159,31,27,109,206,87,206,20,4,221,240,187,251,97,104,142,255,28,123,183,233,249,210,242,127,199,54,175,129,203,236,223,191,222,213,231,227,221,31,194,141,135,8,31,7,38,25,255,194,194,206,46,55,72,215,137,232,225,161,88,9,184,195,37,41,218,152,254,237,92,217,53,250,94,62,177,243,194,249,218,212,124,96,45,123,153,63,55,68,163,40,82,143,136,123,137,26,61,202,174,202,14,166,37,111,21,230,43,253,124,207,34,145,46,1,211,229,81,69,30,15,181,58,233,218,134,10,101,160,139,38,236,187,215,99,168,41,88,11,99,240,236,221,110,151,52,103,66,33,233,249,252,210,9,170,148,155,124,250,185,165,97,74,27,131,206,216,43,204,219,230,248,72,79,223,54,38,105,224,33,160,31,165,39,186,212,177,165,40,230,8,254,94,91,82,6,180,78,37,200,125,35,180,174,249,97,53,70,151,161,2,179,232,29,68,210,13,71,65,76,111,236,134,189,164,25,234,16,159,83,11,152,128,171,5,72,220,162,19,128,55,25,236,187,10,153,161,174,106,99,2,237,33,38,108,2,69,246,208,179,253,141,30,222,76,193,192,42,169,254,158,190,7,125,197,248,120,34,111,210,38,23,114,46,221,171,142,45,218,49,156,148,225,57,187,200,47,190,125,227,183,255,71,205,161,211,9,216,68,117,58,4,15,199,131,189,70,202,218,234,134,101,64,57,14,53,215,70,58,142,83,118,110,180,5,59,121,247,28,214,203,172,125,251,246,29,209,95,129,88,14,160,149,70,172,47,255,90,147,116,200,205,126,43,74,223,118,232,183,211,70,206,194,33,3,75,87,163,89,237,172,179,57,156,131,92,57,76,180,182,83,66,159,250,167,142,208,147,239,99,238,101,124,2,40,106,211,231,203,152,222,121,10,30,0,216,145,58,108,238,107,220,154,250,56,40,153,86,49,35,98,247,253,73,105,234,234,93,107,238,1,111,22,122,45,59,227,132,72,97,218,175,243,151,75,7,201,239,25,199,224,165,111,9,127,30,175,187,37,180,157,51,56,28,237,222,227,110,4,238,8,198,21,253,45,22,25,195,23,49,50,68,144,197,2,187,51,210,178,77,43,124,5,219,227,216,44,226,101,116,106,89,37,0,116,234,195,69,70,70,99,101,134,104,29,239,23,105,14,233,62,34,123,195,157,171,78,11,112,63,92,103,253,127,1,101,124,21,34,122,56,0,0 }; +const uint8_t CSS_STYLE_GZIP[3356] PROGMEM = { 31,139,8,0,190,230,204,97,2,255,213,27,219,110,235,184,241,87,212,4,1,98,172,164,234,110,91,194,46,250,216,183,2,221,151,22,197,246,128,150,168,72,136,44,185,18,125,146,172,161,127,239,144,212,133,23,41,118,146,179,40,122,124,146,216,212,204,112,238,28,14,105,59,109,106,130,202,26,183,151,83,211,149,164,108,234,184,197,21,34,229,119,156,188,148,25,41,226,237,254,33,57,162,246,169,172,99,207,57,189,38,135,230,213,234,202,223,203,250,41,62,52,109,134,91,11,70,122,59,109,170,243,177,54,135,191,221,133,35,187,142,243,144,228,85,131,72,92,225,156,0,24,106,179,203,177,172,173,2,151,79,5,161,0,64,147,211,183,72,115,138,189,135,100,32,219,162,172,60,119,113,52,206,89,160,172,121,137,29,35,56,189,178,159,246,233,128,30,61,39,48,221,253,214,116,119,161,233,216,225,38,57,161,44,3,222,44,58,29,103,120,28,105,217,132,158,48,223,161,33,164,57,2,15,116,8,62,115,158,67,198,18,200,209,180,241,125,158,231,253,95,142,56,43,209,227,17,189,14,16,145,15,16,155,203,44,12,31,222,239,30,250,222,38,231,246,63,231,166,236,240,229,128,210,231,167,182,57,215,89,124,239,162,67,186,79,147,73,99,108,226,123,55,66,206,46,52,124,144,166,107,170,50,235,109,124,196,45,170,50,9,215,195,105,186,117,85,92,111,139,112,228,136,184,39,76,112,219,130,229,90,9,221,15,246,187,236,160,161,239,119,206,97,47,162,191,96,130,186,83,129,42,162,160,7,251,16,107,232,169,143,67,105,246,238,92,131,161,95,148,201,115,55,13,156,92,197,198,209,225,224,228,34,54,168,178,109,228,137,113,180,197,158,167,162,102,126,24,56,210,196,168,42,127,71,109,89,203,200,219,32,245,53,125,167,142,191,247,14,34,114,134,218,103,9,49,8,130,93,184,85,17,249,168,136,88,161,3,174,46,139,193,144,188,20,37,193,86,119,66,41,142,235,230,165,69,39,197,167,109,15,31,71,191,140,109,23,62,25,118,64,127,185,240,59,33,248,149,88,32,213,83,29,167,184,6,155,10,206,152,228,16,176,214,11,15,158,173,227,36,21,4,239,20,76,182,175,184,118,8,158,156,149,221,169,66,111,113,89,51,216,67,213,164,207,75,44,130,223,144,50,69,213,48,245,1,117,152,34,36,122,98,160,113,106,217,110,8,188,206,170,179,6,38,247,251,253,66,124,13,10,179,232,76,67,110,216,67,106,16,217,56,181,152,61,78,94,64,87,236,93,124,104,49,122,182,232,231,1,223,102,147,128,12,103,49,188,198,169,163,124,143,50,87,6,109,113,182,0,153,249,219,116,155,202,144,79,45,198,245,2,236,254,144,122,209,78,134,109,90,84,63,45,177,144,97,228,134,129,12,252,134,43,8,140,5,96,188,207,162,64,225,247,116,110,79,213,18,229,125,190,243,65,184,49,25,77,89,39,112,134,100,52,101,114,62,190,11,32,27,105,208,83,234,82,160,105,238,210,114,248,96,198,33,113,78,0,113,94,182,29,177,210,162,172,178,9,88,28,28,17,89,14,118,122,187,169,241,68,123,126,63,174,17,129,29,77,255,182,48,9,121,105,212,85,196,183,253,233,31,133,40,192,84,10,140,71,249,203,155,115,171,140,251,142,45,81,207,193,129,85,144,189,76,190,43,95,85,22,169,118,58,252,29,215,202,131,48,146,169,179,56,84,96,162,80,38,95,151,154,10,182,1,149,74,163,190,243,20,234,213,2,11,123,87,81,206,11,174,52,17,217,58,172,91,197,34,69,217,102,3,236,138,194,192,28,28,172,147,225,84,177,40,57,88,60,114,25,138,105,174,201,243,14,19,235,240,102,73,158,176,48,218,73,174,179,83,60,99,198,152,125,196,92,28,149,233,184,91,133,213,25,67,240,36,115,101,92,166,229,69,18,1,193,227,204,229,97,25,221,15,236,21,145,4,199,52,151,135,101,74,129,191,38,212,236,191,230,226,168,76,39,244,100,100,193,197,204,149,113,153,64,228,172,137,36,70,131,185,50,174,208,218,175,9,37,68,141,185,60,44,83,218,202,142,71,22,133,34,43,34,237,162,85,145,170,21,253,40,177,41,82,219,135,107,66,169,33,104,190,243,236,86,63,210,226,213,124,239,225,173,234,87,162,219,92,127,164,123,87,95,144,99,117,97,133,11,212,74,56,142,60,59,124,232,15,77,246,54,128,198,78,50,63,117,109,90,87,72,101,141,84,244,192,122,199,63,231,232,88,86,111,241,221,223,78,184,54,126,69,117,119,103,118,240,27,60,181,45,243,177,100,242,104,5,169,47,188,105,238,228,110,95,184,102,225,153,133,111,22,129,89,132,102,17,93,132,141,136,163,84,49,118,216,2,95,34,39,190,227,0,9,65,176,160,85,57,183,189,164,194,4,74,56,86,227,208,106,15,234,38,128,234,11,79,192,243,237,104,1,51,92,67,245,69,84,29,209,95,195,11,4,60,207,94,96,214,95,152,210,217,49,220,240,34,90,104,167,227,46,161,134,12,53,146,80,67,29,53,82,81,157,213,186,69,82,119,168,41,50,176,61,93,67,76,185,178,244,190,38,147,183,194,106,223,159,36,167,232,209,101,240,33,23,35,156,29,122,20,23,13,221,113,13,163,78,142,156,20,247,135,51,248,76,125,89,44,189,199,186,223,229,187,105,113,95,224,75,27,207,229,226,122,160,29,163,148,214,226,75,85,112,20,37,4,234,211,46,111,218,99,204,222,65,221,142,255,241,8,155,230,141,49,125,254,39,251,220,223,31,161,12,252,43,70,192,197,34,187,253,61,148,138,191,18,68,206,221,220,34,40,235,2,130,140,8,81,107,111,33,106,7,214,76,123,16,95,217,6,80,117,218,103,43,63,87,21,183,170,88,156,172,180,21,206,22,221,118,11,40,243,46,252,125,180,19,69,97,149,235,133,247,31,216,251,233,9,77,78,23,177,49,65,248,86,235,162,109,190,250,162,21,61,128,59,176,34,25,115,187,209,150,156,59,103,252,72,145,220,113,223,104,220,99,151,190,250,185,0,143,81,14,179,152,118,219,188,140,111,207,86,154,95,40,0,48,16,223,221,77,59,56,130,14,21,78,210,10,163,22,164,37,5,167,210,54,213,210,70,36,203,68,255,41,143,232,9,199,212,172,136,238,116,192,221,128,246,99,1,158,240,232,152,206,3,251,111,187,27,115,30,161,234,101,99,27,197,73,195,81,237,188,33,83,214,176,14,24,142,65,101,28,127,52,42,225,198,116,4,24,237,249,86,0,240,150,0,60,1,192,191,6,16,92,3,136,36,128,145,131,100,200,72,251,201,192,177,15,155,114,116,38,77,178,214,29,219,83,159,30,172,96,156,171,203,220,214,122,152,2,221,17,194,177,109,32,148,240,99,16,102,248,105,51,99,86,229,69,86,50,37,96,80,118,29,93,215,22,21,193,186,69,215,11,50,46,166,164,129,107,106,89,154,204,104,31,39,46,202,44,195,117,50,246,196,30,68,49,129,223,184,38,5,223,237,61,122,155,139,38,224,222,145,5,84,113,252,5,28,235,26,82,176,128,228,238,116,36,52,154,193,99,102,208,251,23,218,204,220,30,131,176,20,107,166,55,36,120,83,24,200,155,20,178,161,22,115,75,46,39,208,185,232,97,52,196,42,20,91,147,93,184,65,104,98,133,16,175,50,195,197,199,63,251,134,80,216,232,221,33,54,146,225,180,105,17,147,179,134,138,140,15,78,61,211,85,103,9,54,92,27,92,67,182,27,118,51,199,244,13,236,234,143,63,42,187,132,11,233,5,84,180,249,225,217,196,251,159,103,147,29,68,26,175,127,193,202,98,181,51,54,232,98,139,215,185,147,115,162,3,44,16,103,194,155,107,20,107,216,141,139,249,101,52,136,234,145,211,248,138,99,222,99,140,123,187,123,41,73,90,44,46,242,198,159,202,227,169,105,9,170,201,66,209,113,192,244,165,172,2,129,220,150,31,237,230,48,109,176,214,60,104,131,190,108,127,35,214,52,233,185,237,224,253,169,41,153,239,234,110,63,84,95,148,254,24,197,145,222,178,247,104,99,127,37,39,71,180,176,130,34,253,240,92,18,75,240,110,85,50,195,246,58,3,163,14,91,64,184,57,147,196,58,54,191,127,12,161,249,32,253,238,67,240,31,128,29,205,107,167,5,78,159,23,123,158,219,40,243,220,108,4,52,202,250,116,38,255,34,111,39,252,243,29,67,2,107,222,253,54,185,7,75,34,138,177,166,197,13,244,203,27,43,146,25,36,23,222,193,147,177,78,163,237,223,178,190,172,3,206,196,22,204,70,31,26,176,15,121,223,86,43,80,205,45,148,186,235,64,215,0,84,253,27,89,249,253,194,119,234,59,42,254,160,116,80,67,124,192,176,244,200,167,67,114,177,31,51,217,212,108,10,186,50,41,160,225,192,31,135,190,12,154,139,54,18,226,160,189,9,137,19,49,25,203,148,0,123,195,99,200,228,253,230,14,134,31,29,70,121,35,14,177,60,55,76,180,89,156,228,83,12,54,159,67,3,19,125,6,79,199,25,133,95,198,100,25,78,172,214,153,97,164,188,231,169,199,145,206,124,24,41,101,188,169,122,31,163,102,183,26,43,86,56,198,128,181,159,194,134,102,61,201,111,216,230,64,118,27,198,252,141,158,195,5,229,150,254,177,158,195,125,100,193,121,192,165,62,224,57,87,24,108,62,135,182,234,57,239,227,189,231,57,75,152,74,241,206,246,241,154,7,120,211,58,22,179,242,157,58,15,125,179,224,22,67,234,244,168,15,180,207,199,204,234,192,31,133,45,250,208,74,208,86,64,97,5,165,171,166,212,40,251,123,3,34,52,98,151,76,162,45,173,8,236,124,11,150,3,117,59,176,202,233,188,92,211,183,13,237,228,144,55,122,204,112,101,134,159,236,27,37,19,54,253,99,93,176,213,26,40,46,237,160,172,85,48,99,87,105,88,206,226,28,108,188,185,220,204,224,48,107,160,77,234,244,55,75,105,12,127,173,188,172,170,53,145,21,213,58,137,184,169,60,119,180,81,134,43,156,18,190,70,255,14,43,80,134,95,99,247,227,76,20,168,206,42,124,81,86,249,229,28,197,156,151,31,29,141,166,8,5,155,135,115,137,198,19,217,78,83,19,45,106,133,101,20,85,213,84,196,172,75,229,125,205,104,170,168,60,219,218,192,237,117,155,197,96,30,218,112,201,38,15,88,112,44,135,190,132,242,249,227,84,37,151,48,63,143,46,27,51,195,57,58,87,228,74,97,255,131,185,159,62,176,3,237,47,203,34,147,147,43,211,63,94,24,187,236,44,222,99,253,178,32,51,41,193,1,111,141,162,31,38,198,15,182,206,26,97,197,78,203,41,128,53,95,40,64,255,85,54,166,62,248,92,147,81,186,162,227,207,51,118,41,170,240,163,187,89,243,146,145,52,204,153,182,152,76,146,169,65,166,175,78,203,89,248,70,122,138,2,87,138,68,119,107,79,117,98,48,249,15,61,23,25,253,199,215,54,190,84,106,171,105,75,90,114,128,242,89,181,146,172,63,209,173,165,81,155,117,168,244,206,174,67,44,236,237,164,69,96,101,252,250,10,240,57,53,243,8,243,150,84,54,136,64,59,77,215,196,92,128,233,191,238,3,70,119,66,107,27,230,173,182,16,59,115,43,113,186,34,54,215,128,122,195,80,151,87,106,75,175,181,171,231,170,110,162,160,173,219,108,3,178,48,218,233,131,234,192,31,100,103,174,74,65,39,158,186,248,223,72,86,201,226,142,156,169,189,41,34,133,206,85,160,164,239,15,207,164,184,44,207,3,243,110,209,211,11,224,144,54,69,167,95,206,186,173,7,103,157,15,4,31,61,40,158,77,203,3,188,77,242,49,240,31,41,36,183,215,232,106,239,231,211,241,243,116,231,86,209,151,94,37,240,27,183,55,17,29,174,226,94,37,201,47,226,126,249,250,237,13,28,205,51,92,103,138,209,255,242,165,222,27,152,154,103,184,206,20,163,255,213,171,194,55,240,52,77,112,149,37,78,254,75,247,143,111,224,135,83,191,202,12,167,253,197,27,205,55,176,51,210,191,202,16,167,222,179,178,108,186,171,195,14,68,13,126,230,61,28,142,14,7,157,244,172,69,168,108,87,207,231,199,70,155,243,149,51,5,65,55,252,155,0,97,104,142,63,142,189,219,244,124,105,249,191,99,155,215,192,101,246,239,159,239,234,243,241,238,55,225,198,67,132,143,3,147,140,127,97,97,103,151,27,164,203,73,244,240,80,172,4,220,225,202,21,109,76,255,114,174,236,26,125,47,159,216,121,225,124,9,107,62,176,150,189,204,159,27,162,244,114,137,210,19,234,37,106,244,40,187,42,59,152,150,188,85,152,175,244,243,61,139,68,186,82,76,151,71,21,121,60,212,234,164,107,27,42,148,129,46,154,176,239,94,182,161,166,96,45,140,193,179,119,187,93,210,156,9,133,164,231,243,75,39,168,82,110,242,233,235,150,134,41,109,12,58,99,175,48,111,155,227,35,61,125,219,152,164,129,55,1,125,41,61,209,165,142,45,69,49,71,240,247,218,146,50,160,117,42,65,238,27,161,117,205,15,171,49,186,12,21,152,69,111,52,146,110,56,10,98,122,99,247,245,37,205,80,135,248,156,90,192,4,92,45,64,226,22,157,0,188,201,96,223,85,200,12,117,85,27,19,104,15,49,97,19,40,178,135,158,237,47,244,240,102,10,6,86,73,245,247,244,57,232,43,198,199,19,121,147,54,185,144,115,233,94,117,108,209,142,225,164,12,207,217,69,126,240,237,27,255,46,193,168,57,116,58,1,155,168,78,135,224,225,120,176,215,72,89,91,221,176,12,40,199,161,230,218,72,199,113,202,206,141,182,96,39,239,158,195,122,153,181,111,223,190,35,250,133,138,229,0,90,105,196,250,242,151,164,164,67,110,246,29,43,125,219,161,223,117,27,57,11,135,12,44,93,180,102,181,179,206,230,112,14,114,229,48,209,218,78,9,125,234,159,58,66,79,190,143,185,151,241,9,160,168,77,159,47,99,122,231,41,120,0,96,71,234,176,185,175,113,107,234,227,160,100,90,197,140,136,221,247,39,165,169,171,119,173,185,7,188,89,232,181,236,140,19,34,133,105,191,206,31,46,29,36,191,103,28,131,151,190,37,252,253,120,221,45,161,237,156,193,225,104,247,30,119,35,112,71,48,174,232,119,98,100,12,95,196,200,16,65,22,11,236,206,72,203,54,173,240,21,108,143,99,179,136,151,209,169,101,149,0,208,169,15,215,34,25,141,149,25,162,117,188,159,164,57,164,251,136,236,9,119,174,58,45,192,253,112,157,245,255,5,99,157,41,226,200,56,0,0 }; From 78317ce5f2a17e45857cdef867b62cb9ee29ffa9 Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Sat, 1 Jan 2022 22:04:32 +0000 Subject: [PATCH 06/11] Chunk updates --- data/js/controls.js | 13 ++++++++ data/js/controls.min.js | 4 +-- src/ESPUI.cpp | 73 ++++++++++++++++++++++------------------- src/ESPUI.h | 6 +++- src/dataControlsJS.h | 6 ++-- 5 files changed, 63 insertions(+), 39 deletions(-) diff --git a/data/js/controls.js b/data/js/controls.js index 4ed3bf2..728ed7b 100644 --- a/data/js/controls.js +++ b/data/js/controls.js @@ -2,6 +2,8 @@ const UI_INITIAL_GUI = 200; const UI_RELOAD = 201; const UPDATE_OFFSET = 100; +const UI_EXTEND_GUI = 210; + const UI_TITEL = 0; const UI_PAD = 1; @@ -230,6 +232,7 @@ function start() { var data = JSON.parse(evt.data); var e = document.body; var center = ""; + switch (data.type) { case UI_INITIAL_GUI: // Clear current elements @@ -247,6 +250,16 @@ function start() { handleEvent(fauxEvent); }); break; + + case UI_EXTEND_GUI: + data.controls.forEach(element => { + var fauxEvent = { + data: JSON.stringify(element), + }; + handleEvent(fauxEvent); + }); + break; + case UI_RELOAD: window.location.reload(); break; diff --git a/data/js/controls.min.js b/data/js/controls.min.js index 80de178..4ef95e3 100644 --- a/data/js/controls.min.js +++ b/data/js/controls.min.js @@ -1,4 +1,4 @@ -const UI_INITIAL_GUI=200;const UI_RELOAD=201;const UPDATE_OFFSET=100;const UI_TITEL=0;const UI_PAD=1;const UPDATE_PAD=101;const UI_CPAD=2;const UPDATE_CPAD=102;const UI_BUTTON=3;const UPDATE_BUTTON=103;const UI_LABEL=4;const UPDATE_LABEL=104;const UI_SWITCHER=5;const UPDATE_SWITCHER=105;const UI_SLIDER=6;const UPDATE_SLIDER=106;const UI_NUMBER=7;const UPDATE_NUMBER=107;const UI_TEXT_INPUT=8;const UPDATE_TEXT_INPUT=108;const UI_GRAPH=9;const ADD_GRAPH_POINT=10;const CLEAR_GRAPH=109;const UI_TAB=11;const UPDATE_TAB=111;const UI_SELECT=12;const UPDATE_SELECT=112;const UI_OPTION=13;const UPDATE_OPTION=113;const UI_MIN=14;const UPDATE_MIN=114;const UI_MAX=15;const UPDATE_MAX=115;const UI_STEP=16;const UPDATE_STEP=116;const UI_GAUGE=17;const UPDATE_GAUGE=117;const UI_ACCEL=18;const UPTDATE_ACCEL=117;const UP=0;const DOWN=1;const LEFT=2;const RIGHT=3;const CENTER=4;const C_TURQUOISE=0;const C_EMERALD=1;const C_PETERRIVER=2;const C_WETASPHALT=3;const C_SUNFLOWER=4;const C_CARROT=5;const C_ALIZARIN=6;const C_DARK=7;const C_NONE=255;var graphData=new Array();var hasAccel=false;var sliderContinuous=false;function colorClass(colorId){colorId=Number(colorId);switch(colorId){case C_TURQUOISE:return"turquoise";case C_EMERALD:return"emerald";case C_PETERRIVER:return"peterriver";case C_WETASPHALT:return"wetasphalt";case C_SUNFLOWER:return"sunflower";case C_CARROT:return"carrot";case C_ALIZARIN:return"alizarin";case C_NONE:return"dark";default:return"";}} +const UI_INITIAL_GUI=200;const UI_RELOAD=201;const UPDATE_OFFSET=100;const UI_EXTEND_GUI=210;const UI_TITEL=0;const UI_PAD=1;const UPDATE_PAD=101;const UI_CPAD=2;const UPDATE_CPAD=102;const UI_BUTTON=3;const UPDATE_BUTTON=103;const UI_LABEL=4;const UPDATE_LABEL=104;const UI_SWITCHER=5;const UPDATE_SWITCHER=105;const UI_SLIDER=6;const UPDATE_SLIDER=106;const UI_NUMBER=7;const UPDATE_NUMBER=107;const UI_TEXT_INPUT=8;const UPDATE_TEXT_INPUT=108;const UI_GRAPH=9;const ADD_GRAPH_POINT=10;const CLEAR_GRAPH=109;const UI_TAB=11;const UPDATE_TAB=111;const UI_SELECT=12;const UPDATE_SELECT=112;const UI_OPTION=13;const UPDATE_OPTION=113;const UI_MIN=14;const UPDATE_MIN=114;const UI_MAX=15;const UPDATE_MAX=115;const UI_STEP=16;const UPDATE_STEP=116;const UI_GAUGE=17;const UPDATE_GAUGE=117;const UI_ACCEL=18;const UPTDATE_ACCEL=117;const UP=0;const DOWN=1;const LEFT=2;const RIGHT=3;const CENTER=4;const C_TURQUOISE=0;const C_EMERALD=1;const C_PETERRIVER=2;const C_WETASPHALT=3;const C_SUNFLOWER=4;const C_CARROT=5;const C_ALIZARIN=6;const C_DARK=7;const C_NONE=255;var graphData=new Array();var hasAccel=false;var sliderContinuous=false;function colorClass(colorId){colorId=Number(colorId);switch(colorId){case C_TURQUOISE:return"turquoise";case C_EMERALD:return"emerald";case C_PETERRIVER:return"peterriver";case C_WETASPHALT:return"wetasphalt";case C_SUNFLOWER:return"sunflower";case C_CARROT:return"carrot";case C_ALIZARIN:return"alizarin";case C_NONE:return"dark";default:return"";}} var websock;var websockConnected=false;function requestOrientationPermission(){} function saveGraphData(){localStorage.setItem("espuigraphs",JSON.stringify(graphData));} function restoreGraphData(id){var savedData=localStorage.getItem("espuigraphs",graphData);if(savedData!=null){savedData=JSON.parse(savedData);return savedData[id];} @@ -8,7 +8,7 @@ function conStatusError(){websockConnected=false;$("#conStatus").removeClass("co function handleVisibilityChange(){if(!websockConnected&&!document.hidden){restart();}} function start(){document.addEventListener("visibilitychange",handleVisibilityChange,false);if(window.location.port!=""||window.location.port!=80||window.location.port!=443){websock=new WebSocket("ws://"+window.location.hostname+":"+window.location.port+"/ws");}else{websock=new WebSocket("ws://"+window.location.hostname+"/ws");} websock.onopen=function(evt){console.log("websock open");$("#conStatus").addClass("color-green");$("#conStatus").text("Connected");websockConnected=true;};websock.onclose=function(evt){console.log("websock close");conStatusError();};websock.onerror=function(evt){console.log(evt);conStatusError();};var handleEvent=function(evt){console.log(evt);var data=JSON.parse(evt.data);var e=document.body;var center="";switch(data.type){case UI_INITIAL_GUI:$("#row").html("");$("#tabsnav").html("");$("#tabscontent").html("");if(data.sliderContinuous){sliderContinuous=data.sliderContinuous;} -data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});break;case UI_RELOAD:window.location.reload();break;case UI_TITEL:document.title=data.label;$("#mainHeader").html(data.label);break;case UI_LABEL:var parent;if(data.parentControl){parent=$("#tab"+data.parentControl);}else{parent=$("#row");} +data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});break;case UI_EXTEND_GUI:data.controls.forEach(element=>{var fauxEvent={data:JSON.stringify(element),};handleEvent(fauxEvent);});break;case UI_RELOAD:window.location.reload();break;case UI_TITEL:document.title=data.label;$("#mainHeader").html(data.label);break;case UI_LABEL:var parent;if(data.parentControl){parent=$("#tab"+data.parentControl);}else{parent=$("#row");} if(data.visible){parent.append("" @@ -307,7 +310,7 @@ function start() { parent.append( "
" + "
" + @@ -315,7 +318,7 @@ function start() { "

" + "