From 334bf16b09352a8780d78800f5ca038c32d39d99 Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Fri, 21 Jan 2022 23:30:08 +0000 Subject: [PATCH 1/8] Initial support for vertical switchers and sliders. Documentation to be added in a later commit. --- data/css/style.css | 20 ++++++++++++++++++++ data/css/style.min.css | 2 +- data/js/controls.js | 39 ++++++++++++++++++++++----------------- data/js/controls.min.js | 37 +++++++++++++++++++++---------------- src/ESPUI.cpp | 10 ++++++++++ src/ESPUI.h | 3 +++ src/dataControlsJS.h | 39 ++++++++++++++++++++++----------------- 7 files changed, 99 insertions(+), 51 deletions(-) diff --git a/data/css/style.css b/data/css/style.css index 30ae24a..11e9ee1 100644 --- a/data/css/style.css +++ b/data/css/style.css @@ -1128,3 +1128,23 @@ svg { text { text-anchor: end; } + + +/* Styles to implement vertical orientations */ + +.vert-switcher { + transform: rotate(270deg); + margin-top: 15px; + margin-bottom: 25px; +} + +.vert-slider { + width: 150px; + transform: rotate(270deg); + display: inline-block; + margin: 50px -45px 70px -45px; +} + +.vert-slider span { + transform: rotate(90deg); +} diff --git a/data/css/style.min.css b/data/css/style.min.css index 1d83c6b..48fe30c 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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -45px 70px -45px}.vert-slider span{transform:rotate(90deg)} \ No newline at end of file diff --git a/data/js/controls.js b/data/js/controls.js index 2b5ff1c..595b686 100644 --- a/data/js/controls.js +++ b/data/js/controls.js @@ -700,7 +700,6 @@ var rangeSlider = function (isDiscrete) { var addToHTML = function(data) { panelStyle = data.hasOwnProperty('panelStyle') ? " style='" + data.panelStyle + "' " : ""; - elementStyle = data.hasOwnProperty('elementStyle') ? " style='" + data.elementStyle + "' " : ""; panelwide = data.hasOwnProperty('wide') ? "wide" : ""; if(!data.hasOwnProperty('parentControl') || $("#tab" + data.parentControl).length > 0) { @@ -725,7 +724,7 @@ var addToHTML = function(data) { case UI_ACCEL: html = "
" + data.label + "

" + - elementHTML(data.type, data.id, data.value, data.label, elementStyle) + + elementHTML(data) + "
"; break; case UI_SEPARATOR: @@ -742,26 +741,30 @@ var addToHTML = function(data) { } else { //We are adding to an existing panel so we only need the HTML for the element var parent = $("#id" + data.parentControl); - parent.append(elementHTML(data.type, data.id, data.value, data.label, elementStyle)); + parent.append(elementHTML(data)); } } -var elementHTML = function(type, id, value, label, elementStyle) { - switch(type) { +var elementHTML = function(data) { + var id = data.id + var elementStyle = data.hasOwnProperty('elementStyle') ? " style='" + data.elementStyle + "' " : ""; + switch(data.type) { case UI_LABEL: return "" + value + ""; + " class='label label-wrap'>" + data.value + ""; case UI_BUTTON: return ""; + data.value + ""; case UI_SWITCHER: return ""; + (data.value == "1" ? "checked" : "") + "/>"; case UI_CPAD: case UI_PAD: return ""; case UI_SLIDER: - return "
" + - "" + + "" + - value + "
"; + data.value + ""; case UI_NUMBER: return ""; + "' type='number' value='" + data.value + "' onchange='numberchange(" + id + ")' />"; case UI_TEXT_INPUT: return ""; + "' value='" + data.value + "' onchange='textchange(" + id + ")' />"; case UI_SELECT: return ""; + "' type='number' value='" + data.value + "' onchange='numberchange(" + id + ")' />"; case UI_ACCEL: return "ACCEL // Not implemented fully!
";
diff --git a/data/js/controls.min.js b/data/js/controls.min.js
index 60ee074..9fae5d1 100644
--- a/data/js/controls.min.js
+++ b/data/js/controls.min.js
@@ -52,21 +52,24 @@ function buttonclick(number,isdown){if(isdown)websock.send("bdown:"+number);else
 function padclick(type,number,isdown){switch(type){case CENTER:if(isdown)websock.send("pcdown:"+number);else websock.send("pcup:"+number);break;case UP:if(isdown)websock.send("pfdown:"+number);else websock.send("pfup:"+number);break;case DOWN:if(isdown)websock.send("pbdown:"+number);else websock.send("pbup:"+number);break;case LEFT:if(isdown)websock.send("pldown:"+number);else websock.send("plup:"+number);break;case RIGHT:if(isdown)websock.send("prdown:"+number);else websock.send("prup:"+number);break;}}
 function switcher(number,state){if(state==null){if(!$("#sl"+number).hasClass("checked")){websock.send("sactive:"+number);$("#sl"+number).addClass("checked");}else{websock.send("sinactive:"+number);$("#sl"+number).removeClass("checked");}}else if(state==1){$("#sl"+number).addClass("checked");$("#sl"+number).prop("checked",true);}else if(state==0){$("#sl"+number).removeClass("checked");$("#sl"+number).prop("checked",false);}}
 var rangeSlider=function(isDiscrete){var range=$(".range-slider__range");var slidercb=function(){sliderchange($(this).attr("id").replace(/^\D+/g,""));};range.on({input:function(){$(this).next().html(this.value)}});range.each(function(){$(this).next().html(this.value);if($(this).attr("callbackSet")!="true"){if(!isDiscrete){$(this).on({input:slidercb});}else{$(this).on({change:slidercb});}
-$(this).attr("callbackSet","true");}});};var addToHTML=function(data){panelStyle=data.hasOwnProperty('panelStyle')?" style='"+data.panelStyle+"' ":"";elementStyle=data.hasOwnProperty('elementStyle')?" style='"+data.elementStyle+"' ":"";panelwide=data.hasOwnProperty('wide')?"wide":"";if(!data.hasOwnProperty('parentControl')||$("#tab"+data.parentControl).length>0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
"+data.label+"

"+ -elementHTML(data.type,data.id,data.value,data.label,elementStyle)+ +elementHTML(data)+ "
";break;case UI_SEPARATOR:html="
"+ "
"+data.label+"

";break;case UI_TIME:break;} -parent.append(html);}else{var parent=$("#id"+data.parentControl);parent.append(elementHTML(data.type,data.id,data.value,data.label,elementStyle));}} -var elementHTML=function(type,id,value,label,elementStyle){switch(type){case UI_LABEL:return""+value+"";case UI_BUTTON:return"";case UI_SWITCHER:return"
";case UI_CPAD:case UI_PAD:return"";case UI_SLIDER:return"
"+ -"";case UI_SLIDER:return"
"+ +""+ -value+"
";case UI_NUMBER:return"";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";default:return"";}}
\ No newline at end of file
diff --git a/src/ESPUI.cpp b/src/ESPUI.cpp
index a3b74fa..89a4a32 100644
--- a/src/ESPUI.cpp
+++ b/src/ESPUI.cpp
@@ -855,6 +855,14 @@ void ESPUIClass::setPanelWide(uint16_t id, bool wide) {
     }
 }
 
+void ESPUIClass::setVertical(uint16_t id, bool vert) {
+    Control* control = getControl(id);
+    if (control)
+    {
+        control->vertical = vert;
+    }
+}
+
 void ESPUIClass::updateControl(uint16_t id, int clientId)
 {
     Control* control = getControl(id);
@@ -1097,6 +1105,8 @@ void ESPUIClass::prepareJSONChunk(AsyncWebSocketClient* client, uint16_t startin
             item["elementStyle"] = String(control->elementStyle);
         if (control->wide == true)
             item["wide"] = true;
+        if (control->vertical == true)
+            item["vertical"] = true;
 
         if (control->parentControl != Control::noParent)
         {
diff --git a/src/ESPUI.h b/src/ESPUI.h
index a850097..5643352 100644
--- a/src/ESPUI.h
+++ b/src/ESPUI.h
@@ -141,6 +141,7 @@ public:
     ControlColor color;
     bool visible;
     bool wide;
+    bool vertical;
     uint16_t parentControl;
     String panelStyle;
     String elementStyle;
@@ -157,6 +158,7 @@ public:
           color(color),
           visible(visible),
           wide(false),
+          vertical(false),
           parentControl(parentControl),
           next(nullptr)
     {
@@ -298,6 +300,7 @@ public:
     void setElementStyle(uint16_t id, String style, int clientId = -1);
 
     void setPanelWide(uint16_t id, bool wide);
+    void setVertical(uint16_t id, bool vert = true);
 
     // Variables
     const char* ui_title = "ESPUI"; // Store UI Title and Header Name
diff --git a/src/dataControlsJS.h b/src/dataControlsJS.h
index 06c02cc..c091fc5 100644
--- a/src/dataControlsJS.h
+++ b/src/dataControlsJS.h
@@ -53,21 +53,24 @@ function buttonclick(number,isdown){if(isdown)websock.send("bdown:"+number);else
 function padclick(type,number,isdown){switch(type){case CENTER:if(isdown)websock.send("pcdown:"+number);else websock.send("pcup:"+number);break;case UP:if(isdown)websock.send("pfdown:"+number);else websock.send("pfup:"+number);break;case DOWN:if(isdown)websock.send("pbdown:"+number);else websock.send("pbup:"+number);break;case LEFT:if(isdown)websock.send("pldown:"+number);else websock.send("plup:"+number);break;case RIGHT:if(isdown)websock.send("prdown:"+number);else websock.send("prup:"+number);break;}}
 function switcher(number,state){if(state==null){if(!$("#sl"+number).hasClass("checked")){websock.send("sactive:"+number);$("#sl"+number).addClass("checked");}else{websock.send("sinactive:"+number);$("#sl"+number).removeClass("checked");}}else if(state==1){$("#sl"+number).addClass("checked");$("#sl"+number).prop("checked",true);}else if(state==0){$("#sl"+number).removeClass("checked");$("#sl"+number).prop("checked",false);}}
 var rangeSlider=function(isDiscrete){var range=$(".range-slider__range");var slidercb=function(){sliderchange($(this).attr("id").replace(/^\D+/g,""));};range.on({input:function(){$(this).next().html(this.value)}});range.each(function(){$(this).next().html(this.value);if($(this).attr("callbackSet")!="true"){if(!isDiscrete){$(this).on({input:slidercb});}else{$(this).on({change:slidercb});}
-$(this).attr("callbackSet","true");}});};var addToHTML=function(data){panelStyle=data.hasOwnProperty('panelStyle')?" style='"+data.panelStyle+"' ":"";elementStyle=data.hasOwnProperty('elementStyle')?" style='"+data.elementStyle+"' ":"";panelwide=data.hasOwnProperty('wide')?"wide":"";if(!data.hasOwnProperty('parentControl')||$("#tab"+data.parentControl).length>0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
0){var parent=data.hasOwnProperty('parentControl')?$("#tab"+data.parentControl):$("#row");var html="";switch(data.type){case UI_LABEL:case UI_BUTTON:case UI_SWITCHER:case UI_CPAD:case UI_PAD:case UI_SLIDER:case UI_NUMBER:case UI_TEXT_INPUT:case UI_SELECT:case UI_GRAPH:case UI_GAUGE:case UI_ACCEL:html="
"+data.label+"

"+ -elementHTML(data.type,data.id,data.value,data.label,elementStyle)+ +elementHTML(data)+ "
";break;case UI_SEPARATOR:html="
"+ "
"+data.label+"

";break;case UI_TIME:break;} -parent.append(html);}else{var parent=$("#id"+data.parentControl);parent.append(elementHTML(data.type,data.id,data.value,data.label,elementStyle));}} -var elementHTML=function(type,id,value,label,elementStyle){switch(type){case UI_LABEL:return""+value+"";case UI_BUTTON:return"";case UI_SWITCHER:return"
";case UI_CPAD:case UI_PAD:return"";case UI_SLIDER:return"
"+ -"";case UI_SLIDER:return"
"+ +""+ -value+"
";case UI_NUMBER:return"";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";case UI_TEXT_INPUT:return"";case UI_SELECT:return"";case UI_ACCEL:return"ACCEL // Not implemented fully!
";default:return"";}}
 )=====";
 
-const uint8_t JS_CONTROLS_GZIP[3927] PROGMEM = { 31,139,8,0,20,216,233,97,2,255,197,27,105,119,218,72,242,187,127,133,172,204,139,197,66,56,114,77,6,44,231,17,76,18,118,176,241,26,60,153,183,153,172,159,16,141,209,179,144,52,146,240,49,14,255,125,171,171,15,117,11,129,25,60,179,251,37,70,213,213,213,213,85,213,93,87,199,13,131,36,53,46,122,151,189,211,222,168,215,238,95,126,186,232,217,47,235,245,150,43,6,206,187,253,65,251,24,96,13,1,59,59,110,143,186,151,131,143,31,135,221,145,221,80,113,187,191,142,186,167,199,140,70,67,129,143,122,163,110,223,86,0,103,64,49,71,15,65,217,34,189,203,14,133,188,212,145,58,12,235,101,134,245,225,98,52,26,156,218,175,116,60,14,109,212,95,101,152,253,246,7,96,226,181,142,200,128,141,250,235,12,111,248,165,55,234,124,238,158,219,111,116,84,9,111,212,223,40,216,253,222,49,192,222,230,112,25,180,81,127,155,97,158,94,156,124,0,216,143,58,38,135,54,234,63,42,226,2,57,130,66,206,46,70,246,59,29,91,25,105,212,223,101,51,62,157,183,207,62,219,63,113,64,251,248,152,65,46,207,6,189,83,138,202,7,58,253,110,251,156,35,55,234,63,41,43,182,63,216,141,156,66,24,76,81,200,176,219,239,118,128,90,78,39,2,220,80,180,50,56,27,245,168,252,115,106,17,224,134,162,150,147,30,0,114,90,65,88,67,209,201,73,251,87,187,145,211,7,194,26,170,42,70,221,51,187,145,215,4,2,27,138,30,62,181,47,62,117,237,70,78,15,28,218,80,212,208,238,116,168,109,228,84,192,161,141,119,170,96,206,218,231,237,209,0,212,248,83,94,54,114,164,161,138,187,119,210,133,19,149,147,55,5,54,20,168,60,48,199,131,47,167,242,184,244,187,31,71,242,88,156,247,62,125,30,73,227,239,116,79,71,96,75,66,110,157,203,209,197,249,191,46,6,189,97,87,146,234,92,118,79,186,231,237,126,118,252,58,151,103,93,152,117,222,251,5,166,190,148,192,47,221,81,123,120,246,185,221,87,200,95,14,47,78,63,246,7,95,180,53,58,237,243,243,193,72,30,150,206,101,187,223,251,119,251,28,52,248,86,130,142,219,231,63,75,195,239,92,158,14,78,97,251,111,222,180,110,156,216,184,138,157,104,118,236,164,142,29,144,91,163,29,199,206,189,85,194,145,153,147,180,93,151,248,246,212,241,19,130,160,196,247,38,36,238,132,65,234,5,139,112,145,240,161,233,34,112,83,47,12,12,55,244,195,184,227,59,73,98,225,207,222,164,244,192,127,216,167,139,249,152,196,18,222,74,110,189,212,157,41,120,78,66,84,153,53,99,146,46,226,192,132,127,126,95,132,94,66,204,22,71,225,34,20,8,100,78,98,199,159,200,225,76,158,2,35,34,41,137,99,239,134,196,18,41,147,175,64,186,37,169,147,68,51,199,79,37,146,148,183,192,73,22,193,212,15,111,21,58,76,252,98,220,117,226,56,204,230,11,85,136,97,199,247,254,112,98,47,144,8,84,49,77,254,155,106,69,32,78,156,248,218,108,77,200,212,89,248,169,0,154,173,229,114,143,106,225,150,140,147,208,189,110,41,191,65,37,1,113,83,50,201,107,36,38,191,47,72,146,14,98,143,4,169,67,65,103,36,158,123,73,2,191,172,210,195,114,79,98,38,206,13,249,36,140,1,134,252,208,117,252,97,26,198,206,21,169,38,36,237,165,100,110,153,36,137,22,30,218,76,98,86,254,57,28,156,86,147,20,118,116,229,77,239,45,105,74,165,82,75,33,28,195,250,97,172,208,246,64,219,104,77,176,226,4,77,79,91,235,170,112,173,140,120,203,155,90,114,234,190,29,44,124,191,244,144,209,66,166,34,39,78,72,134,85,106,49,25,102,75,126,245,38,223,128,73,6,254,250,45,207,175,19,167,32,130,31,172,73,232,46,230,32,185,82,213,153,76,44,243,31,102,169,26,78,167,112,64,126,176,204,103,113,120,11,223,179,116,238,91,166,89,106,113,85,84,93,63,132,181,193,192,25,21,149,52,156,192,33,104,97,145,116,193,78,98,88,97,141,250,40,117,137,11,107,196,100,30,222,16,118,176,76,60,49,47,174,98,66,2,179,180,130,10,124,106,120,49,153,20,96,49,166,145,11,163,102,156,134,6,231,128,50,249,252,217,187,183,175,222,180,10,102,101,91,215,160,129,245,224,250,158,123,221,228,146,171,44,181,77,207,156,96,226,147,95,188,196,27,123,190,151,222,119,0,112,5,2,122,0,61,238,231,5,240,252,249,190,144,121,117,230,77,38,36,40,61,72,133,208,3,144,217,43,87,146,68,135,157,119,111,224,71,223,75,82,18,192,85,99,222,200,53,93,92,211,172,20,243,82,65,169,163,97,221,122,193,36,188,173,82,131,164,171,84,163,48,78,247,109,211,252,254,189,120,228,93,125,221,200,235,215,175,164,126,241,110,253,66,198,67,248,77,82,203,188,77,154,181,154,89,206,79,156,133,73,26,56,115,82,54,155,171,131,148,106,217,172,221,130,200,91,75,2,252,238,76,156,211,216,19,6,27,6,97,68,2,91,72,214,34,55,41,189,182,131,36,244,9,204,191,2,146,12,211,160,120,91,216,220,58,219,76,201,29,240,39,117,157,157,153,204,254,211,120,65,90,203,86,198,26,158,166,109,120,67,68,32,153,63,99,26,53,66,97,27,168,81,64,17,5,230,15,169,237,160,137,61,70,129,162,79,114,151,17,12,84,39,120,23,209,81,98,75,187,29,135,147,123,132,185,240,69,98,48,54,225,27,41,122,53,189,143,8,247,142,122,158,208,44,184,131,40,40,117,198,73,224,220,20,129,129,81,56,26,169,58,4,54,143,203,228,93,59,92,169,121,103,95,136,7,118,132,112,74,58,14,253,164,58,13,227,174,3,204,19,159,208,237,217,71,120,215,131,39,187,99,162,123,160,232,205,156,235,224,200,165,202,178,165,136,217,146,179,64,7,25,171,105,152,58,190,88,239,200,210,151,247,73,112,149,206,94,52,74,242,240,129,243,10,224,238,94,120,225,53,28,171,181,232,176,145,113,76,156,235,150,16,117,150,77,53,255,191,59,100,114,167,215,29,28,105,114,87,222,105,199,219,204,95,149,1,203,62,155,249,187,36,38,126,232,76,224,100,232,216,152,103,54,165,97,167,94,234,19,102,53,190,51,38,62,154,225,220,241,130,207,196,1,27,18,86,152,33,228,233,97,118,216,20,95,44,85,147,159,89,46,38,65,44,21,146,159,152,83,40,131,60,23,104,10,41,163,123,240,73,9,174,175,81,248,121,116,210,183,216,249,212,153,96,185,236,202,164,135,252,44,186,185,113,26,152,101,68,131,24,7,29,99,26,46,220,25,202,190,153,221,25,165,7,82,141,98,66,213,126,204,98,60,42,202,69,154,210,235,14,28,169,197,73,84,232,109,8,74,169,32,21,208,233,46,52,184,111,91,50,175,172,239,77,228,212,143,239,142,221,72,224,84,5,89,134,238,248,200,96,142,44,45,19,72,185,211,223,91,9,47,154,238,44,187,200,153,176,77,95,156,85,118,149,93,17,13,85,118,200,162,255,116,22,105,2,249,116,38,53,42,43,108,198,79,103,19,83,219,167,243,169,147,89,97,116,252,116,70,105,118,254,116,62,53,42,43,108,186,79,103,147,21,7,158,206,104,142,206,198,211,141,85,176,199,15,95,76,99,224,33,250,117,107,127,37,14,88,33,59,106,127,88,165,169,7,30,78,20,161,7,58,244,189,163,67,199,8,131,57,80,34,139,200,62,0,28,182,15,41,209,178,89,58,48,102,49,153,218,7,148,130,2,63,56,226,31,120,205,148,205,195,154,115,116,88,3,146,133,17,141,92,115,226,221,24,222,4,151,210,136,29,214,96,132,206,165,243,108,32,80,213,9,192,215,152,76,58,236,219,130,252,55,140,154,84,77,203,18,198,109,150,233,68,30,91,217,1,236,169,231,67,176,102,73,181,209,52,5,83,204,31,172,116,230,37,192,79,154,66,10,66,55,102,150,108,219,134,72,152,238,251,69,26,190,96,119,41,164,243,104,76,38,194,205,138,106,0,52,158,0,118,236,40,14,231,17,132,204,35,103,108,164,161,193,38,210,95,86,128,213,20,3,210,55,176,201,247,44,142,219,167,251,169,50,36,152,97,193,39,196,4,142,79,98,74,98,230,164,148,166,49,9,73,98,4,97,106,144,59,72,148,140,230,111,191,97,50,80,96,115,5,38,197,42,136,82,253,16,217,194,140,14,139,36,24,219,12,68,197,251,44,129,152,199,77,185,14,116,212,22,251,204,148,22,70,152,212,81,189,177,159,102,121,79,232,110,207,60,48,208,4,236,3,1,101,22,65,7,4,132,45,70,40,246,145,128,97,80,1,128,195,26,163,121,100,174,238,232,164,183,237,118,188,73,209,86,202,166,225,5,209,34,101,42,224,219,74,188,63,32,193,45,61,136,93,162,41,204,189,192,212,221,230,10,47,237,95,255,62,94,168,129,104,252,208,196,194,92,97,210,185,99,241,96,142,85,76,56,243,152,249,237,172,92,64,163,238,217,255,72,184,144,242,71,143,72,23,235,238,143,223,134,178,208,244,149,219,223,55,123,165,130,37,156,65,11,56,128,219,18,7,134,55,87,214,234,220,138,137,176,204,127,232,6,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,160,8,59,166,133,177,145,55,135,95,181,70,189,94,47,226,180,26,45,146,153,245,112,215,76,147,202,125,51,147,6,156,228,92,121,111,23,206,21,190,149,78,70,179,64,96,95,191,253,197,235,137,118,0,85,159,168,75,151,216,184,44,83,99,233,224,113,103,183,177,32,154,187,30,148,38,21,102,219,106,248,151,229,46,220,224,196,210,192,208,224,54,56,139,195,8,46,222,123,235,128,103,126,195,244,222,39,7,37,230,42,85,66,194,128,97,152,91,176,58,163,152,37,25,184,111,136,203,193,231,212,205,247,245,102,227,207,177,150,60,153,55,22,118,172,161,133,172,105,39,117,143,133,28,151,180,196,105,105,119,1,204,82,16,43,38,152,189,169,212,234,254,119,91,226,169,39,165,5,142,87,33,6,140,237,108,3,58,165,93,216,82,82,96,140,135,200,93,250,23,241,150,35,181,147,25,176,100,124,37,16,120,42,107,43,196,118,97,142,39,245,171,57,123,158,179,85,12,44,98,238,202,188,78,106,23,206,179,212,58,107,201,55,87,209,88,237,131,46,121,229,44,174,200,95,36,251,60,173,93,54,192,238,241,2,99,238,157,116,209,255,197,55,182,226,244,210,176,55,28,12,177,140,102,101,61,22,86,224,74,193,27,54,205,114,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,152,180,220,147,37,56,24,63,178,181,199,22,207,159,203,145,67,189,20,203,194,25,81,15,204,223,97,107,69,28,57,1,241,53,1,171,211,10,164,155,77,40,229,88,181,109,237,246,133,28,146,49,163,183,142,216,77,251,66,182,84,121,67,247,5,111,161,138,207,172,95,42,32,89,115,84,64,100,43,84,0,88,239,83,124,201,86,103,169,37,56,201,186,4,28,199,44,43,253,98,94,147,132,239,146,8,55,11,183,144,241,46,152,86,184,85,217,148,252,113,198,54,113,180,150,143,229,30,205,19,49,65,126,193,221,212,37,126,65,6,72,104,13,88,201,255,120,226,247,181,254,141,251,95,61,19,100,142,143,222,40,12,26,208,123,132,135,17,133,152,44,1,83,154,23,115,146,36,206,21,177,149,250,177,218,103,99,252,177,78,23,207,15,153,93,2,61,91,184,65,14,199,91,32,127,156,18,31,87,134,163,4,127,241,72,113,236,214,159,22,130,238,236,243,146,225,169,165,228,156,45,179,129,115,116,149,155,88,15,214,113,174,172,66,47,238,13,107,48,151,183,105,145,116,155,69,68,125,163,112,9,90,145,216,184,130,51,222,98,13,230,1,55,41,154,187,200,141,202,222,98,33,181,156,204,134,43,94,50,129,219,19,179,73,254,83,39,59,166,48,133,26,61,200,70,14,101,17,21,47,39,107,92,244,66,171,228,22,228,45,49,165,27,198,42,97,205,117,156,68,238,227,172,68,174,198,139,230,148,214,19,158,110,65,120,186,142,48,45,52,174,39,189,133,248,162,241,58,210,180,38,188,158,180,191,5,105,127,29,105,44,227,174,167,29,111,65,59,46,160,173,245,243,69,38,195,21,159,64,118,70,208,208,240,151,205,31,122,208,50,70,254,50,3,191,42,250,207,51,226,94,211,206,114,190,23,150,56,176,202,13,209,239,52,141,136,210,196,22,68,244,62,187,160,228,5,143,210,210,223,107,100,228,144,158,145,109,169,145,229,39,155,216,200,227,68,16,65,100,227,162,150,156,163,93,95,165,189,134,173,71,200,139,18,51,123,124,164,20,139,179,46,184,151,28,123,137,27,147,148,215,46,17,201,94,235,53,148,183,100,238,216,86,188,135,230,194,116,87,2,145,17,221,64,228,59,46,177,106,255,249,237,184,92,187,170,152,232,37,89,1,27,11,243,88,45,106,22,248,35,213,219,82,8,119,68,203,37,47,127,175,117,100,107,38,210,152,78,103,208,117,124,127,236,184,215,67,2,225,228,190,109,82,173,152,204,94,85,241,136,73,25,183,66,16,75,97,111,42,10,147,133,134,179,183,126,221,10,95,181,181,92,138,87,11,178,254,145,201,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,150,105,13,182,105,154,45,53,242,183,183,200,40,86,104,170,195,146,42,46,116,11,155,47,38,73,71,40,41,250,23,241,169,184,215,108,71,169,43,30,148,190,127,151,14,185,160,58,201,123,226,71,117,173,78,185,13,221,247,155,200,102,47,54,216,131,18,176,169,205,175,61,244,6,56,79,90,87,154,183,107,219,174,185,70,208,238,141,116,172,243,21,183,213,89,58,199,182,34,91,47,74,26,131,154,44,171,246,98,184,244,2,178,15,210,219,144,62,24,93,204,131,68,96,80,53,82,4,39,158,24,41,123,14,67,11,252,197,225,57,246,116,102,111,68,147,136,21,251,205,195,26,128,14,103,113,141,118,1,184,73,201,242,31,138,183,178,90,42,171,100,20,42,90,6,139,205,3,108,27,229,170,145,217,107,130,93,182,158,176,167,118,72,82,200,128,118,187,96,181,13,27,42,230,4,243,102,145,189,234,109,21,202,154,184,84,182,170,183,231,251,50,79,150,159,116,27,10,165,236,34,66,106,64,136,209,40,152,94,16,245,201,83,193,95,197,30,38,32,96,148,60,120,48,33,115,237,42,217,147,98,199,21,12,252,247,197,109,236,68,84,228,178,183,72,233,28,153,249,103,31,98,21,22,10,227,58,88,195,89,183,18,111,117,210,120,8,48,149,248,153,77,169,24,232,172,105,31,203,84,219,162,69,152,204,239,162,89,72,38,25,158,194,166,188,4,4,163,108,143,148,207,228,113,129,240,134,162,89,182,68,197,184,97,190,151,158,31,238,211,18,235,194,238,49,251,230,179,188,128,195,208,127,97,37,197,62,192,73,227,240,238,128,173,45,150,14,131,14,221,148,88,138,190,202,100,219,195,104,14,219,119,27,214,22,54,127,88,195,109,41,251,94,185,235,196,254,3,71,242,201,95,56,193,45,177,240,25,195,90,59,154,233,72,125,246,97,232,74,162,204,153,138,146,10,81,185,150,112,215,244,5,11,235,53,63,127,246,211,219,55,245,86,214,177,126,108,117,246,78,98,91,6,114,216,26,15,241,206,60,224,155,146,109,89,208,145,53,14,252,157,57,192,87,24,219,114,160,35,107,28,140,55,114,80,99,230,96,241,186,25,51,166,247,38,112,149,25,206,212,139,231,7,107,184,228,79,48,182,100,147,99,23,51,234,10,70,7,63,83,30,153,217,83,22,193,140,213,83,206,28,184,176,113,229,44,170,241,181,118,42,245,27,128,157,81,68,62,48,230,30,236,166,14,127,157,59,251,160,81,175,43,221,117,126,209,224,110,244,120,172,104,65,30,208,195,1,195,75,184,16,3,41,234,151,24,222,180,194,153,229,130,18,177,69,182,9,30,32,162,191,111,142,33,244,191,110,173,220,102,38,110,21,43,68,252,173,0,219,44,203,102,138,246,6,23,45,70,213,2,135,231,27,76,86,160,153,154,194,150,18,28,237,202,26,43,44,229,223,49,20,112,163,20,168,10,121,225,81,153,116,124,88,229,249,19,140,136,178,16,103,37,91,88,43,40,21,46,205,34,64,177,242,212,187,90,196,4,105,242,158,45,127,97,3,3,174,195,159,90,148,101,252,162,64,241,3,230,170,164,49,156,228,164,191,244,250,125,227,67,215,104,27,8,54,54,9,27,151,103,13,137,191,65,241,44,174,229,108,225,135,81,163,255,83,2,78,214,60,98,178,37,19,99,10,94,236,126,95,61,144,14,237,69,147,56,156,211,170,52,99,18,65,146,201,35,21,123,12,201,155,148,30,115,117,17,72,182,136,86,184,72,233,75,8,137,28,161,20,11,254,143,208,127,1,0,108,136,56,84,58,0,0 };
+const uint8_t JS_CONTROLS_GZIP[3941] PROGMEM = { 31,139,8,0,255,63,235,97,2,255,197,91,91,119,218,72,18,126,247,175,80,148,57,65,172,49,151,220,38,3,150,115,8,38,9,59,216,120,13,158,204,217,76,214,71,136,198,232,88,72,26,73,248,50,14,255,125,171,171,47,234,22,2,51,120,102,247,37,70,213,165,234,175,171,186,187,110,138,27,6,73,106,92,244,46,123,167,189,81,175,221,191,252,116,209,179,95,214,235,45,87,12,156,119,251,131,246,49,208,26,130,118,118,220,30,117,47,7,31,63,14,187,35,187,161,242,118,127,29,117,79,143,153,140,134,66,31,245,70,221,190,173,16,206,64,98,78,30,146,178,73,122,151,29,74,121,169,51,117,24,215,203,140,235,195,197,104,52,56,181,95,233,124,156,218,168,191,202,56,251,237,15,0,226,181,206,200,136,141,250,235,140,111,248,165,55,234,124,238,158,219,111,116,86,73,111,212,223,40,220,253,222,49,208,222,230,120,25,181,81,127,155,113,158,94,156,124,0,218,143,58,39,167,54,234,63,42,234,2,61,130,65,206,46,70,246,59,157,91,25,105,212,223,101,111,124,58,111,159,125,182,127,226,132,246,241,49,163,92,158,13,122,167,148,149,15,116,250,221,246,57,103,110,212,127,82,102,108,127,176,27,57,131,48,154,98,144,97,183,223,237,128,180,156,77,4,185,161,88,101,112,54,234,81,253,231,204,34,200,13,197,44,39,61,32,228,172,130,180,134,98,147,147,246,175,118,35,103,15,164,53,84,83,140,186,103,118,35,111,9,36,54,20,59,124,106,95,124,234,218,141,156,29,56,181,161,152,161,221,233,208,189,145,51,1,167,54,222,169,138,57,107,159,183,71,3,48,227,79,121,221,200,145,134,170,238,222,73,23,78,84,78,223,148,216,80,168,242,192,28,15,190,156,202,227,210,239,126,28,201,99,113,222,251,244,121,36,55,127,167,123,58,130,189,36,244,214,185,28,93,156,255,235,98,208,27,118,165,168,206,101,247,164,123,222,238,103,199,175,115,121,214,133,183,206,123,191,192,171,47,37,241,75,119,212,30,158,125,110,247,21,241,151,195,139,211,143,253,193,23,109,142,78,251,252,124,48,146,135,165,115,217,238,247,254,221,62,7,11,190,149,164,227,246,249,207,114,227,119,46,79,7,167,176,252,55,111,90,55,78,108,92,197,78,52,59,118,82,199,14,200,173,209,142,99,231,222,42,227,200,204,73,218,174,75,124,123,234,248,9,65,82,226,123,19,18,119,194,32,245,130,69,184,72,248,208,116,17,184,169,23,6,134,27,250,97,220,241,157,36,177,240,103,111,82,126,224,63,236,211,197,124,76,98,73,111,37,183,94,234,206,20,62,39,33,170,206,154,49,73,23,113,96,194,63,191,47,66,47,33,102,139,179,112,21,10,6,50,39,177,227,79,228,112,166,79,193,17,145,148,196,177,119,67,98,201,148,233,87,48,221,146,212,73,162,153,227,167,146,73,234,91,240,36,139,96,234,135,183,138,28,166,126,49,238,58,113,28,102,239,11,83,136,97,199,247,254,112,98,47,144,12,212,48,77,254,155,90,69,48,78,156,248,218,108,77,200,212,89,248,169,32,154,173,229,114,143,90,225,150,140,147,208,189,110,41,191,193,36,1,113,83,50,201,91,36,38,191,47,72,146,14,98,143,4,169,67,73,103,36,158,123,73,2,191,172,242,195,114,79,114,38,206,13,249,36,54,3,12,249,161,235,248,195,52,140,157,43,82,77,72,218,75,201,220,50,73,18,45,60,220,51,137,89,249,231,112,112,90,77,82,88,209,149,55,189,183,228,86,42,151,91,138,224,24,230,15,99,69,182,7,214,198,221,4,51,78,112,235,105,115,93,21,206,149,9,111,121,83,75,190,250,204,14,22,190,95,126,200,100,33,168,200,137,19,146,113,149,91,76,135,217,148,95,189,201,55,0,201,200,95,191,229,241,58,113,10,42,248,193,154,132,238,98,14,154,43,87,157,201,196,50,255,97,150,171,225,116,10,7,228,7,203,124,30,135,183,240,60,75,231,190,101,154,229,22,55,69,213,245,67,152,27,54,56,147,162,138,134,19,56,4,43,44,146,46,236,147,24,102,88,99,62,42,93,242,194,28,49,153,135,55,132,29,44,19,79,204,193,85,76,72,96,150,87,88,1,167,198,23,147,73,1,23,3,141,40,140,154,113,26,26,28,1,5,249,226,249,187,183,175,222,180,10,222,202,150,174,81,3,235,193,245,61,247,186,201,53,87,89,106,139,158,57,193,196,39,191,120,137,55,246,124,47,189,239,0,225,10,20,244,0,118,124,150,87,192,139,23,207,132,206,171,51,111,50,33,65,249,65,26,132,30,128,108,191,114,35,73,118,88,121,247,6,126,244,189,36,37,1,92,53,230,141,156,211,197,57,205,74,49,150,10,106,29,55,214,173,23,76,194,219,42,221,144,116,150,106,20,198,233,51,219,52,191,127,47,30,121,87,95,55,242,250,245,43,105,95,188,91,191,144,241,16,126,147,212,50,111,147,102,173,102,238,231,95,156,133,73,26,56,115,178,111,54,87,7,169,212,125,179,118,11,42,111,45,9,224,221,89,56,151,177,39,54,108,24,132,17,9,108,161,89,139,220,164,244,218,14,146,208,39,240,254,21,136,100,156,6,229,219,98,207,173,219,155,41,185,3,124,210,214,217,153,201,246,127,26,47,72,107,217,202,160,225,105,218,6,27,50,130,200,252,25,211,164,17,74,219,32,141,18,138,36,48,127,72,247,14,110,177,199,36,80,246,73,238,50,130,129,234,4,239,34,58,74,108,185,111,199,225,228,30,105,46,60,145,24,54,155,240,141,148,189,154,222,71,132,123,71,61,79,104,22,220,65,148,148,58,227,36,112,110,138,200,0,20,142,70,170,14,193,158,199,105,242,174,29,174,212,188,179,47,228,131,125,132,116,42,58,14,253,164,58,13,227,174,3,224,137,79,232,242,236,35,188,235,193,147,221,49,213,61,80,246,102,206,117,112,230,114,101,217,82,212,108,201,183,192,6,25,212,52,76,29,95,204,119,100,233,211,251,36,184,74,103,7,141,178,60,124,224,188,2,184,187,23,94,120,13,199,106,45,59,44,100,28,19,231,186,37,84,157,101,83,205,255,239,10,153,222,233,117,7,71,154,220,237,239,180,226,109,222,95,213,1,203,62,155,249,187,36,38,126,232,76,224,100,232,220,152,103,54,229,198,78,189,212,39,108,215,248,206,152,248,184,13,231,142,23,124,38,14,236,33,177,11,51,134,188,60,204,14,155,226,137,165,106,242,49,203,197,36,137,165,66,242,17,115,10,101,144,231,2,77,161,101,116,15,62,41,195,245,53,10,63,143,78,250,22,59,159,58,8,150,203,174,188,244,144,127,139,46,110,156,6,230,62,178,65,140,131,142,49,13,23,238,12,117,223,204,238,140,242,3,169,70,49,161,102,63,102,49,30,85,229,34,77,233,117,7,142,212,226,34,42,244,54,4,163,84,80,10,216,116,23,25,220,183,45,153,87,214,215,38,114,234,199,87,199,110,36,112,170,66,44,99,119,124,4,152,19,75,203,4,82,239,244,247,86,202,139,166,59,235,46,114,38,108,209,23,103,149,93,117,87,36,67,213,29,66,244,159,14,145,38,144,79,7,169,73,89,129,25,63,29,38,166,182,79,199,169,139,89,1,58,126,58,80,154,157,63,29,167,38,101,5,166,251,116,152,172,56,240,116,160,57,57,27,79,55,86,193,30,63,124,49,141,129,135,232,215,173,103,43,113,192,138,216,81,251,195,170,76,61,240,112,162,8,61,208,161,239,29,29,58,70,24,204,65,18,89,68,118,9,120,216,58,164,70,247,205,114,201,152,197,100,106,151,168,4,133,94,58,226,15,120,205,236,155,135,53,231,232,176,6,34,11,35,26,57,231,196,187,49,188,9,78,165,9,59,172,193,8,125,151,190,103,131,128,170,46,0,158,198,100,210,97,207,22,228,191,97,212,164,102,90,150,49,110,179,76,39,242,216,204,14,112,79,61,31,130,53,75,154,141,166,41,152,98,254,96,165,51,47,1,60,105,10,41,8,93,152,89,182,109,27,34,97,186,238,131,52,60,96,119,41,164,243,184,153,76,164,155,21,117,3,208,120,2,224,216,81,28,206,35,8,153,71,206,216,72,67,131,189,72,127,89,1,86,83,12,72,223,96,79,190,103,113,220,51,186,158,42,99,130,55,44,120,132,152,192,241,73,76,69,204,156,148,202,52,38,33,73,140,32,76,13,114,7,137,146,209,252,237,55,76,6,10,246,92,193,150,98,21,68,105,126,136,108,225,141,14,139,36,24,108,70,162,234,125,158,64,204,227,166,220,6,58,107,139,61,102,70,11,35,76,234,168,221,216,79,115,127,79,216,110,207,44,25,184,5,236,146,160,178,29,65,7,4,133,77,70,40,247,145,160,97,80,1,132,195,26,147,121,100,174,174,232,164,183,237,114,188,73,209,82,246,77,195,11,162,69,202,76,192,151,149,120,127,64,130,91,126,16,171,196,173,48,247,2,83,119,155,43,88,218,191,254,125,88,232,6,209,240,208,196,194,92,1,233,220,177,120,48,7,21,19,206,60,103,126,57,43,23,208,168,123,246,63,82,46,164,252,209,35,218,197,186,251,227,183,161,44,52,125,229,251,239,155,189,82,193,18,206,160,5,8,224,182,196,129,225,205,149,181,250,110,197,68,90,230,63,244,13,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,144,8,43,166,133,177,145,55,135,95,181,70,189,94,47,66,90,141,22,201,204,122,184,107,166,73,229,190,153,105,3,78,114,174,188,183,11,114,5,183,210,201,104,22,40,236,235,183,191,120,62,209,14,160,230,19,117,233,50,27,151,101,106,44,29,60,238,236,54,22,68,115,215,131,210,164,194,108,91,13,255,178,220,133,111,56,49,53,0,26,220,6,103,113,24,193,197,123,111,149,120,230,55,76,239,125,82,42,51,87,169,10,18,27,24,134,249,14,86,223,40,134,36,3,247,13,113,57,248,156,186,249,190,222,108,252,57,104,201,147,177,177,176,99,141,44,132,166,157,212,61,22,114,92,210,18,167,165,221,5,240,150,194,88,49,97,219,155,74,173,238,127,183,36,158,122,82,89,224,120,21,97,0,108,231,61,160,75,218,5,150,146,2,99,60,68,238,210,191,8,91,78,212,78,219,128,37,227,43,129,192,83,161,173,8,219,5,28,79,234,87,115,246,60,178,85,14,44,98,238,10,94,23,181,11,242,44,181,206,90,242,205,85,54,86,251,160,83,94,57,139,43,242,23,233,62,47,107,151,5,176,123,188,96,51,247,78,186,232,255,226,27,91,113,122,105,216,27,14,134,88,70,179,178,30,11,43,112,165,224,13,155,230,126,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,120,105,185,39,75,112,48,126,100,107,31,91,188,120,33,71,14,245,82,44,11,103,68,61,48,127,135,173,85,113,228,4,196,215,20,172,190,86,160,221,236,133,114,14,170,109,107,183,47,228,144,12,140,222,58,98,55,237,129,108,169,242,134,238,1,111,161,138,199,172,95,42,40,89,115,84,80,100,43,84,16,88,239,83,60,201,86,103,185,37,144,100,93,2,206,99,238,43,253,98,94,147,132,231,178,8,55,11,151,144,97,23,160,21,180,42,76,137,143,3,219,132,104,45,142,229,30,205,19,49,65,62,224,110,234,18,159,32,3,36,180,6,172,228,127,60,241,251,90,255,198,253,175,158,9,50,199,71,111,20,70,13,232,61,194,195,136,66,78,150,128,41,205,139,57,73,18,231,138,216,74,253,88,237,179,49,124,172,211,197,243,67,182,47,65,158,45,220,32,167,227,45,144,63,78,137,143,51,195,81,130,191,120,164,56,119,235,79,43,65,119,246,121,205,240,212,82,34,103,211,108,64,142,174,114,19,244,96,29,114,101,22,122,113,111,152,131,185,188,77,147,164,219,76,34,234,27,133,83,208,138,196,198,25,156,241,22,115,48,15,184,201,208,220,69,110,52,246,22,19,169,229,100,54,92,241,146,9,220,158,152,77,242,159,186,216,49,165,41,210,232,65,54,114,44,139,168,120,58,89,227,162,23,90,37,55,33,111,137,41,221,48,86,9,107,174,67,18,185,143,67,137,92,13,139,230,148,214,11,158,110,33,120,186,78,48,45,52,174,23,189,133,250,162,241,58,209,180,38,188,94,180,191,133,104,127,157,104,44,227,174,151,29,111,33,59,46,144,173,245,243,69,38,195,13,159,64,118,70,112,163,225,47,155,127,232,65,203,24,249,203,12,252,170,232,63,207,136,123,77,59,203,249,94,88,226,192,44,55,68,191,211,52,33,74,19,91,8,209,251,236,66,146,23,60,42,75,255,94,35,19,135,242,140,108,73,141,44,63,217,4,35,207,19,65,4,145,141,139,90,114,78,118,125,85,246,26,88,143,136,23,37,102,246,241,145,82,44,206,186,224,94,114,236,37,110,76,82,94,187,68,38,123,173,215,80,190,37,115,199,182,226,61,52,23,166,187,18,136,140,232,2,34,223,113,137,85,251,207,111,199,251,181,171,138,137,94,146,21,176,177,48,143,213,162,102,129,63,82,189,45,165,112,71,180,92,242,242,247,90,71,182,230,69,26,211,233,0,93,199,247,199,142,123,61,36,16,78,62,179,77,106,21,147,237,87,85,61,226,165,12,173,80,196,82,236,55,149,133,233,66,227,217,91,63,111,133,207,218,90,46,197,87,11,178,254,145,233,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,238,211,26,108,211,52,91,72,186,5,152,197,226,232,8,21,68,255,34,63,85,204,154,137,149,10,96,169,252,253,187,116,157,5,117,68,222,189,62,170,107,21,197,109,228,190,223,36,54,251,182,130,125,250,1,214,223,252,93,134,222,170,230,233,229,74,155,117,109,131,52,215,178,217,189,229,141,21,185,226,6,56,75,188,216,82,100,147,68,73,56,208,146,251,170,101,13,151,94,21,118,41,189,13,233,167,157,139,121,144,8,14,106,70,202,224,196,19,35,101,31,174,208,82,124,113,32,141,221,151,217,27,209,206,97,101,121,243,176,6,164,195,89,92,163,245,122,30,146,103,133,58,44,219,99,195,38,87,7,204,250,248,187,44,37,97,31,185,161,72,177,38,218,103,130,217,54,0,44,70,130,25,171,200,27,245,134,6,133,38,142,243,86,149,238,124,71,100,69,31,242,2,86,70,242,71,154,14,131,38,184,18,84,238,13,231,92,207,243,87,78,186,58,44,207,250,99,231,128,127,177,122,152,128,9,208,54,224,93,132,85,52,129,123,210,48,168,115,3,255,61,184,141,157,104,181,249,71,133,29,153,249,239,50,196,84,44,86,197,201,176,200,178,110,58,222,139,164,1,11,112,42,1,46,123,165,98,160,55,165,141,38,83,237,91,22,113,50,199,88,58,210,155,82,128,148,49,43,88,229,5,32,208,178,213,82,176,201,227,170,225,109,63,241,37,143,40,238,54,204,247,210,73,131,81,224,196,20,87,25,32,49,78,61,240,18,104,92,250,112,32,66,45,131,191,103,242,19,64,79,18,159,211,11,56,13,125,20,86,75,236,18,206,54,14,239,74,12,185,0,30,6,29,170,23,1,148,126,121,201,52,132,17,27,182,232,30,65,110,138,35,118,88,67,205,40,170,91,185,42,133,10,3,71,130,229,159,50,193,37,179,240,25,106,173,239,204,108,173,126,223,97,232,198,166,8,77,197,216,133,172,220,218,184,116,250,169,10,107,42,191,120,254,211,219,55,245,86,214,154,126,108,118,246,65,196,182,0,114,220,26,134,120,103,12,248,241,200,182,16,116,102,13,129,191,51,2,252,220,98,91,4,58,179,134,96,188,17,65,141,109,7,173,74,198,118,212,123,19,160,101,187,103,234,197,243,210,26,168,252,131,139,45,177,114,238,98,180,174,64,59,248,153,2,21,167,239,176,6,123,89,189,45,88,16,32,54,186,114,42,213,104,58,59,86,91,28,120,254,134,126,220,217,209,214,47,33,118,208,113,158,146,49,247,64,17,117,248,235,220,217,165,70,189,174,180,225,213,11,15,181,161,251,137,34,192,60,252,135,83,138,110,161,144,3,37,22,220,168,120,247,11,47,156,139,142,132,158,216,114,184,247,194,192,163,57,134,108,225,186,181,114,181,154,184,104,44,42,241,207,11,216,178,89,2,180,118,149,112,255,99,52,46,24,121,158,194,84,7,54,174,41,216,148,80,109,87,124,172,32,149,255,254,97,29,36,165,186,85,8,136,7,138,210,51,99,137,232,79,160,17,53,37,142,39,155,88,171,70,21,78,205,130,82,49,243,212,187,90,196,4,101,242,134,47,255,60,7,6,92,135,127,167,145,139,195,148,33,124,0,1,170,124,12,115,185,252,47,189,126,223,248,208,53,218,6,146,141,77,106,71,12,172,165,241,119,237,3,22,116,115,108,248,96,212,232,127,184,128,115,55,143,152,150,201,196,152,130,163,188,127,166,158,116,135,182,180,73,28,206,105,113,155,33,69,146,68,122,164,114,143,33,7,148,122,100,142,52,2,29,23,201,10,23,41,253,160,66,50,71,168,202,130,255,106,244,95,91,230,122,124,155,58,0,0 };

From 64b30d13a695d77d12d59aa5f58d49b9a8f1c9da Mon Sep 17 00:00:00 2001
From: Ian Gray 
Date: Tue, 25 Jan 2022 21:32:34 +0000
Subject: [PATCH 2/8] Major documentation rework

---
 README.md                 | 606 ++++++++++++++++++++------------------
 docs/ui_colours.png       | Bin 0 -> 34563 bytes
 docs/ui_complete.png      | Bin 107603 -> 60210 bytes
 docs/ui_inlinestyles2.png | Bin 0 -> 40525 bytes
 docs/ui_number.png        | Bin 21611 -> 6951 bytes
 docs/ui_slider.png        | Bin 10458 -> 5674 bytes
 docs/ui_text.png          | Bin 21963 -> 7374 bytes
 7 files changed, 322 insertions(+), 284 deletions(-)
 create mode 100644 docs/ui_colours.png
 create mode 100644 docs/ui_inlinestyles2.png

diff --git a/README.md b/README.md
index 98bf7f0..c14ea5f 100644
--- a/README.md
+++ b/README.md
@@ -1,8 +1,8 @@
 # ESPUI
 
-![ESPUI](https://github.com/s00500/ESPUI/blob/master/docs/ui_complete.png)
+![ESPUI](docs/ui_complete.png)
 
-ESPUI is a simple library to make a web user interface for your projects using
+ESPUI is a simple library to make a web-based user interface for your projects using
 the **ESP8266** or the **ESP32** It uses web sockets and lets you create,
 control, and update elements on your GUI through multiple devices like phones
 and tablets.
@@ -14,37 +14,58 @@ So if you either don't know how or just don't want to waste time: this is your
 simple solution user interface without the need of internet connectivity or any
 additional servers.
 
-The Library runs fine on any kind of **ESP8266** and **ESP32** (NodeMCU Boards, usw)
+The Library runs on any kind of **ESP8266** and **ESP32** (NodeMCU, AI Thinker, etc.).
 
-## Changelog for 2.0:
+- [Dependencies](#dependencies)
+- [How to Install](#how-to-install)
+- [Getting started](#getting-started)
+- [UI Elements](#documentation)
+  * [Button](#button)
+  * [Switch](#switch)
+  * [Buttonpad](#buttonpad)
+  * [Labels](#labels)
+  * [Slider](#slider)
+  * [Number Input](#number-input)
+  * [Text Input](#text-input)
+  * [Select control](#select-control)
+  * [Getting the Time](#getting-the-time)
+  * [Separators](#separators)
+- [Initialisation of the UI](#initialisation-of-the-ui)
+- [Tabs](#tabs)
+- [Log output](#log-output)
+- [Colours](#colours)
+- [Advanced Features](#advanced-features)
+  * [Inline Styles](#inline-styles)
+  * [Grouped controls](#grouped-controls)
+  * [Wide controls](#wide-controls)
+  * [Graph (Experimental)](#graph--experimental-)
+- [Notes for Development](#notes-for-development)
+- [Contribute](#contribute)
 
-- ArduinoJSON 6.10.0 Support
-- split pad into pad and padWithCenter
-- Cleaned Order or parameters on switch
-- cleaned Order of parameters on pad
-- Changes all numbers to actually be numbers (slider value, number value, min and max)
 
-### Added features
+### Contributed features
 
-- Tabs by @eringerli #45
+- Tabs by @eringerli
 - Generic API by @eringerli
 - Min Max on slider by @eringerli
 - OptionList by @eringerli
 - Public Access to ESPAsyncServer
-- Graph Widget (Persist save graph in local storage #10)
 - Inline CSS styles by @iangray001
 - Separators by @iangray001
 - Grouped and wide controls by @iangray001
+- Transport layer rework by @iangray001
+- Time control by @iangray001
+- Vertical controls by @iangray001
 
-## Further Roadmap
+## Roadmap
 
-- Slider css issues
-- implement Gauge
-- File upload ?
+- Fully implement graphs
+- Expand number input features (floats etc.)
+- Support for enabling and disabling controls
 
 ## Dependencies
 
-This library is dependent on the following libraries to function properly.
+This library is dependent on the following libraries.
 
 - [ESPAsyncWebserver](https://github.com/me-no-dev/ESPAsyncWebServer)
 - [ArduinoJson](https://github.com/bblanchon/ArduinoJson) (Last tested with
@@ -58,37 +79,25 @@ This library is dependent on the following libraries to function properly.
 
 Make sure all the dependencies are installed, then install like so:
 
-#### Using PlattformIO (_recommended_)
+#### Using PlatformIO (_recommended_)
 
-Just include this library as a dependency on lib_deps like so:
+Just include this library as a dependency in `lib_deps` like so:
 
 ```
 lib_deps =
     ESPUI
-    ESPAsyncWebserver
-    ESPAsyncTCP # or AsyncTCP on ESP32
+    ESP Async WebServer
+    ESPAsyncTCP # (or AsyncTCP on ESP32)
+    LittleFS_esp32 # (ESP32 only)
 ```
 
-#### Directly Through Arduino IDE (_recommended_)
+#### Using the Arduino IDE (_recommended_)
 
-You can find this Library in the Arduino IDE library manager Go to Sketch >
-Include Library > Library Manager > Search for "ESPUI" > Install
+You can find this Library in the Arduino IDE library manager. Go to 
+`Sketch > Include Library > Library Manager` search for `ESPUI` and install.
 
-#### Manual Install Arduino IDE
-
-_For Windows:_ Download the
-[Repository](https://github.com/s00500/ESPUI/archive/master.zip) and extract the
-.zip in Documents>Arduino>Libraries>{Place "ESPUI" folder Here}
-
-_For Linux:_ Download the
-[Repository](https://github.com/s00500/ESPUI/archive/master.zip) and extract the
-.zip in Sketchbook/Libraries/{Place "ESPUI" folder Here}
-
-_For macOs:_ Download the
-[Repository](https://github.com/s00500/ESPUI/archive/master.zip) and extract the
-.zip in ~/Documents/Arduino/libraries/{Place "ESPUI" folder Here}
-
-Go to Sketch>Include Library>Add .zip Library> Select the Downloaded .zip File.
+If you cannot use the Library Manager, you can download the [repository](https://github.com/s00500/ESPUI/archive/master.zip) and follow
+the [instructions to manually install libraries](https://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use/how-to-install-a-library).
 
 ## Getting started
 
@@ -120,36 +129,22 @@ more program memory to work with.
 - Button
 - Switch
 - Control pad
-- Control pad with center button
 - Slider
 - Text Input
 - Numberinput
-- Graph
 - Option select
+- Separator
+- Time
+- Graph (partial implementation)
 
-Checkout the example for the usage or see the detailed info below
-
-## Available colors:
-
-- Turquoise
-- Emerald
-- Peterriver
-- Wetasphalt
-- Sunflower
-- Carrot
-- Alizarin
-- Dark
-- None
-
-(Use like `ControlColor::Sunflower`)
 
 ## Documentation
 
 The heart of ESPUI is
 [ESPAsyncWebserver](https://github.com/me-no-dev/ESPAsyncWebServer). ESPUI's
 frontend is based on [Skeleton CSS](http://getskeleton.com/) and jQuery-like
-lightweight [zepto.js](https://zeptojs.com/) for Handling Click Events Etc. The
-communication between the _ESP_ and the client browser works using web
+lightweight [zepto.js](https://zeptojs.com/) for handling events. The
+communication between the ESP and the client browser works using web
 sockets. ESPUI does not need network access and can be used in standalone access
 point mode, all resources are loaded directly from the ESPs memory.
 
@@ -162,60 +157,58 @@ items call their callback whenever there is a state change from them. This means
 the button will call the callback when it is pressed and also again when it is
 released. To separate different events an integer number with the event name is
 passed to the callback function that can be handled in a `switch(){}case{}`
-statement. Here is an overview of the currently implemented different elements
-of the UI library:
+statement.
+
 
 #### Button
 
-![Buttons](https://github.com/s00500/ESPUI/blob/master/docs/ui_button.png)
+![Buttons](docs/ui_button.png)
 
-Buttons have a name and a callback value. They have one event for press (`B_DOWN`) and one
-for release (`B_UP`).
+Buttons have a name and a callback value. Their text can be changed at runtime using `ESPUI.updateButton()`.
 
-- B_DOWN
-- B_UP
+Events:
+- `B_DOWN` - Fired when button is pressed.
+- `B_UP` - Fired when button is released.
 
 #### Switch
 
-![Switches](https://github.com/s00500/ESPUI/blob/master/docs/ui_switches.png)
+![Switches](docs/ui_switches.png)
 
 Switches sync their state on all connected devices. This means when you change
-their value they change visibly on all tablets or computers that currently
-display the interface. They also have two types of events: one when turning on (`S_ACTIVE`)
-and one when turning off (`S_INACTIVE`).
+their value (either by pressing them, or programmatically using `ESPUI.updateSwitcher()`) they change visibly 
+on all tablets or computers that currently display the interface.
 
-- S_ACTIVE
-- S_INACTIVE
+Events:
+- `S_ACTIVE` - Fired when turning on.
+- `S_INACTIVE` - Fired when turning off.
 
 #### Buttonpad
 
-![control pads](https://github.com/s00500/ESPUI/blob/master/docs/ui_controlpad.png)
+![control pads](docs/ui_controlpad.png)
 
-Button pads come in two flavours: with or without a center button. They are very
-useful for con-trolling all kinds of movements of vehicles or also of course our
-walking robots. They use a single callback per pad and have 8 or 10 different
-event types to differentiate the button actions.
+Button pads come in two flavours: with or without a center button. They are
+useful for controlling movements of vehicles/cameras etc. They use a single 
+callback per pad and have 8 or 10 different event types to differentiate the 
+button actions.
 
-- P_LEFT_DOWN
-- P_LEFT_UP
-- P_RIGHT_DOWN
-- P_RIGHT_UP
-- P_FOR_DOWN
-- P_FOR_UP
-- P_BACK_DOWN
-- P_BACK_UP
-- P_CENTER_DOWN
-- P_CENTER_UP
+- `P_LEFT_DOWN`
+- `P_LEFT_UP`
+- `P_RIGHT_DOWN`
+- `P_RIGHT_UP`
+- `P_FOR_DOWN`
+- `P_FOR_UP`
+- `P_BACK_DOWN`
+- `P_BACK_UP`
+- `P_CENTER_DOWN`
+- `P_CENTER_UP`
 
 #### Labels
 
-![labels](https://github.com/s00500/ESPUI/blob/master/docs/ui_labels.png)
+![labels](docs/ui_labels.png)
 
-Labels are a nice tool to get information from the robot to the user interface.
-This can be done to show states, values of sensors and configuration parameters.
-To send data from the code use `ESP.print(labelId, "Text");` . Labels get a name
-on creation and a initial value. The name is not changeable once the UI
-initialised.
+Labels are used to display textual information (i.e. states, values of sensors, 
+configuration parameters etc.). To send data from the code use `ESP.updateLabel()` . 
+Labels get a name on creation and a initial value.
 
 Labels automatically wrap your text. If you want them to have multiple lines use
 the normal `
` tag in the string you print to the label. @@ -232,250 +225,107 @@ This requires that the client has access to the image in question, either from t #### Slider -![slider](https://github.com/s00500/ESPUI/blob/master/docs/ui_slider.png) +![slider](docs/ui_slider.png) -The Slider can be used to slide through a value from 1 to 100. Slides provide -realtime data, are touch compatible and can be used to for example control a -Servo. The current value is shown while the slider is dragged in a little bubble -over the handle. In the Callback the slider does not return an int but a String. -Use the .toInt function to convert the value, see the **gui** example to check how it works. +Sliders can be used to select (or display) a numerical value. Sliders provide +realtime data and are touch compatible. Note that like all ESPUI functions, the callback does not return an `int` +but a `String` so should be converted with the `.toInt()` function. See the examples for more details. Sliders can +be updated from code using `ESP.updateSlider()`. -A slider usually only sends a new value when it is released to save the esps from being spammed with values. This behaviour can be cahnged globally using a property of the ESPUI object before `begin()`: +A slider usually only sends a new value when it is released to save network bandwidth. +This behaviour can be changed globally by setting `sliderContinuous` before `begin()`: ``` - ESPUI.sliderContinuous = true; - ESPUI.begin("ESPUI Control"); +ESPUI.sliderContinuous = true; +ESPUI.begin("ESPUI Control"); ``` +Events: + - `SL_VALUE` - Fired when a slider value changes. + #### Number Input -![number](https://github.com/s00500/ESPUI/blob/master/docs/ui_number.png) +![number](docs/ui_number.png) -The numberinput can be used to directly input numbers to your program. You can -enter a Value into it and when you are done with your change it is sent to the -ESP. - -A number box needs to have a min and a max value. To set it up just use: +The number input can be used to receive numbers from the user. You can +enter a value into it and when you are done with your change it is sent to the +ESP. A number box needs to have a min and a max value. To set it up just use: `ESPUI.number("Numbertest", &numberCall, ControlColor::Alizarin, 5, 0, 10);` +Number inputs can be updated from code using `ESP.updateNumber()`. + Note that HTML number boxes will respect their min and max when the user clicks the up and down arrows, but it is possible on most clients to simply type any number in. As with all user input, numbers should be validated in callback code because all client side checks can be skipped. If any value from the UI might cause a problem, validate it. +Events: + - `N_VALUE` - Fired when a number value changes. + + #### Text Input -![text](https://github.com/s00500/ESPUI/blob/master/docs/ui_text.png) - -The textinput works very similar like the number input but with a string. You -can enter a String into it and when you are done with your change it is sent to -the ESP. +![text](docs/ui_text.png) +The text input works very similar like the number input but allows any string to be entered. If you attach a Max control to the text input then a max length will be applied to the control. ``` - text = ESPUI.text("Label", callback, ControlColor::Dark, "Initial value"); - ESPUI.addControl(ControlType::Max, "", "32", ControlColor::None, text); +text = ESPUI.text("Label", callback, ControlColor::Dark, "Initial value"); +ESPUI.addControl(ControlType::Max, "", "32", ControlColor::None, text); ``` +Text inputs can be updated from code using `ESP.updateText()`. + However even with a set maximum length, user input should still be validated because it is easy to bypass client-side checks. Never trust user input. -#### Graph +Events: + - `T_VALUE` - Fired when a text value changes. -![graph](https://github.com/s00500/ESPUI/blob/master/docs/ui_graph.png) -The graph widget can display graph points with timestamp at wich they arrive +#### Select control -Use `ESPUI.addGraphPoint(graphId, random(1, 50));` to add a new value at the current time, use `ESPUI.clearGraph(graphId)` to clear the entire graph. -Graph points are saved in the browser in **localstorage** to be persistant, clear local storageto remove the points or use clearGraph() from a bbutton callback to provide a clear button. +![option1](docs/ui_select1.png) +![option2](docs/ui_select2.png) -#### Option select - -![option1](https://github.com/s00500/ESPUI/blob/master/docs/ui_select1.png) -![option2](https://github.com/s00500/ESPUI/blob/master/docs/ui_select2.png) - -The option select works by first creating a select widget like so - -`uint16_t select1 = ESPUI.addControl( ControlType::Select, "Select:", "", ControlColor::Alizarin, tab1, &selectExample );` - -And then adding Options to it like seperate widgets, specifying the select as the parent: +The Select control lets the user select from a predefined list of options. First create a select widget like so ``` -ESPUI.addControl( ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1 ); -ESPUI.addControl( ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1 ); -ESPUI.addControl( ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1 ); +uint16_t select1 = ESPUI.addControl( ControlType::Select, "Select Title", "Initial Value", ControlColor::Alizarin, tab1, &selectExample ); ``` -Check the **tabbedGui** example for a working demo - -### Using Tabs - -![tabs](https://github.com/s00500/ESPUI/blob/master/docs/ui_tabs.png) - -Tabs can be used to organize your widgets in pages. Check the tabbedGui example. -Tabs can be created using the generic functions like so: -`ESPUI.addControl( ControlType::Tab, "Settings 1", "Settings 1" );` - -Then all widgets for the tab need to be added to it by specifying the tab as the parrent (widgets not added to a tab will be shown above the tab selctor) - -`ESPUI.addControl( ControlType::Text, "Text Title:", "a Text Field", ControlColor::Alizarin, tab1, &textCall );` - -### Separators - -![separators](docs/ui_separators.png) - -You can use separators to break up the UI and better organise your controls. Adding a separator will force any following controls onto the subsequent line. Add separators as follows: +Then add Options to it, specifying the Select as the parent: ``` -ESPUI.separator("Separator name"); -//or -ESPUI.addControl(ControlType::Separator, "Separator name", "", ControlColor::None, maintab); +ESPUI.addControl( ControlType::Option, "Option1", "Opt1", ControlColor::Alizarin, select1); +ESPUI.addControl( ControlType::Option, "Option2", "Opt2", ControlColor::Alizarin, select1); +ESPUI.addControl( ControlType::Option, "Option3", "Opt3", ControlColor::Alizarin, select1); ``` -### Initialisation of the UI +Check the **tabbedGui** example for a working demo. Selectors can be updated from code using `ESP.updateSelect()`. -After all the elements are configured you can use `ESPUI.begin("Some Title");` -to start the UI interface. (Or `ESPUI.beginLITTLEFS("Some Title");` respectively) -Make sure you setup a working network connection or AccesPoint **before** (See -gui.ino example). The web interface can then be used from multiple devices at once and -also shows an connection status in the top bar. +Events: + - `S_VALUE` - Fired when a select value changes. -### Advanced: Generic creation and updates of control widgets +#### Getting the Time -There are 2 generic functions to create and update controls, to see them in action check the **gui-generic-api** example. +ESPUI can create an invisible control that can be used to fetch the current time from the client +when they are connected to the UI. This could be used to intermittently provide an accurate time +source to your ESP. Remember that clients cannot be relied upon to be correct or truthful. -To create a generic control use: -`uint16_t switchOne = ESPUI.addControl(ControlType::Switcher, "Switch one", "", ControlColor::Alizarin, Control::noParent, &switchExample);` - -Then its value can be updated by doing: - -`ESPUI.updateControlValue(status, "Start");` - -You can also update other parameters of the control like its color using: - -``` - ESPUI.getControl(switchOne)->color = ControlColor::Carrot; - ESPUI.updateControl(switchOne); -``` - -### Log output - -ESPUI has several different log levels. You can set them using the -`ESPUI.setVerbosity(Verbosity::VerboseJSON)` function. - -Loglevels are: - -- `Verbosity::Quiet` (default) -- `Verbosity::Verbose` -- `Verbosity::VerboseJSON` - -VerboseJSON outputs the most debug information. - -### Advanced properties - -If you have many different widgets it might be necessary to adjust the JSON Buffers used internally in ESPUI before .begin() : - -``` - ESPUI.jsonUpdateDocumentSize = 2000; // This is the default, and this value is not affected by the amount of widgets - ESPUI.jsonInitialDocumentSize = 8000; // This is the default, adjust when you have too many widgets or options - ESPUI.begin("ESPUI Control"); -``` - -### Inline Styles - -You can add custom CSS styles to controls. This allows you to style the UI with custom colors, drop shadows, -or other CSS effects. Add styles with the following functions: - -``` - setPanelStyle(uint16_t id, String style); - setElementStyle(uint16_t id, String style) -``` - -A panel style is applied to the panel on which the UI element is placed, an element style is applied to the element itself. -Because CSS inline styles can only style one specific DOM element, for controls made up of multiple elements (like the pad) -this is limited. Element styles can be applied to all controls, but will only work correctly for the Button, Label, Slider, -Switcher, Number, Text, and Selector. - -Dynamic update of styles is supported. When either of the above functions are called, the control is updated live. This could -be used to refect a warning state by changing the color of a button, or for similar effects. - -For example, this code will set a control's panel to a random background color: - -``` - char stylecol[30]; - sprintf(stylecol, "background-color: #%06X;", (unsigned int) random(0x0, 0xFFFFFF)); - ESPUI.setPanelStyle(switch1, stylecol); -``` - -You can get quite creative with this. - -![Inline Styles](docs/inlinestyles.gif) - -Note: The images in this example are formed by setting a Label to contain an `` tag: - -``` - ESPUI.addControl(ControlType::Label, "Label", "", ControlColor::Peterriver); -``` - -### Grouped controls - -Normally, whenever a control is added to the UI, a new panel is generated with a title. However, you can instead -set the "parent" of a new control to be an existing control. This allows you to add multiple widgets into the same -panel. For example: - -``` - panel1 = ESPUI.addControl(ControlType::Button, "Button Set", "Button A", ControlColor::Turquoise, Control::noParent, btncallback); - ESPUI.addControl(ControlType::Button, "", "Button B", ControlColor::None, panel1, btncallback); - ESPUI.addControl(ControlType::Button, "", "Button C", ControlColor::None, panel1, btncallback); -``` - -The first call to `addControl` has no parent (or it could be set to a tab if you are using a tabbed UI), so therefore a new panel is added containing one button -with the value `Button A`. The two subsequent calls have their parent set to the first control we added, so instead of creating -a new panel, the result is the following: - -![Grouped buttons](docs/ui_groupedbuttons.png) - -The grouped controls operate entirely independently, and can be assigned different callbacks, or updated separately. The grouping -is purely visual. - -Most controls can be grouped this way, but the result is not always visually pleasant. This works best with labels, sliders, switchers, -and buttons. - -![Other grouped elements](docs/ui_groupedbuttons2.png) - -If you group too many elements it might throw the layout of the rest of the UI out of line. Consider adding separators to correct this. - -### Advanced: Wide controls - -Controls can be set to be displayed "wide" with the function: - -``` - ESPUI.setPanelWide(controlid, true); -``` - -*Important!* This function should be called _before_ `ESPUI.begin` or results will be unreliable. - -Setting a control to wide tells ESPUI to lay out that control as if there was only a single column, even on wide displays. -This can be applied to every element to force a single column layout, or to individual elements to customise the display. - -![Wide controls](docs/ui_widecontrols.png) - -Note that this will have no effect on small screens. - -### Advanced: Getting the Time - -ESPUI can create an invisible control that can be used to fetch the current time from the client when they are connected to the UI. This could be used to intermittently provide an accurate time source to your ESP. Remember that clients cannot be relied upon to be correct or truthful. If this is not a concern, you can do the following: +Create a Time control with the following: ``` //Add the invisible "Time" control auto timeId = ESPUI.addControl(Time, "", "", None, 0, timeCallback); ``` -After creating the UI, sending an update to the Time control will cause it to fetch the current time from the client and then fire its callback with the result. +After creating the UI, sending an update to the Time control will cause it to fetch the current +time from the client and then fire its callback with the result. ``` //Request an update to the time @@ -495,6 +345,177 @@ void timeCallback(Control *sender, int type) { The returned string will be an [ISO string](https://www.w3schools.com/jsref/jsref_toisostring.asp) as returned by the Javascript `new Date().toISOString()`. The format is `YYYY-MM-DDTHH:mm:ss.sssZ` so for example: `2022-01-20T21:44:22.913Z`. +Events: + - `TM_VALUE` - Fires when the control is updated with `updateTime()` + +#### Separators + +![separators](docs/ui_separators.png) + +You can use separators to break up the UI and better organise your controls. Adding a separator will force any following controls onto the subsequent line. Add separators as follows: + +``` +ESPUI.separator("Separator name"); +//or +ESPUI.addControl(ControlType::Separator, "Separator name", "", ControlColor::None, maintab); +``` + +Separators fire no events. + +### Initialisation of the UI + +After all the elements are configured, call `ESPUI.begin("Some Title");` +to start the UI interface. (Or `ESPUI.beginLITTLEFS("Some Title");` respectively) +Make sure you setup a working network connection or AccessPoint **before** (see +the `gui.ino` example). The web interface can then be used from multiple devices at once and +also shows connection status in the top bar. + + + +### Tabs + +![tabs](docs/ui_tabs.png) + +Tabs can be used to organize your controls into pages. Check the **tabbedGui** example to see +how this is done. Tabs can be created as follows: + +``` +ESPUI.addControl(ControlType::Tab, "Settings 1", "Settings 1"); +``` + +Then all widgets for the tab need to be added to it by specifying the tab as the parent. Widgets not +added to a tab will be shown above the tab selctor. + +``` +ESPUI.addControl(ControlType::Text, "Text Title", "a Text Field", ControlColor::Alizarin, tab1, &textCall); +``` + +Note that the basic functions to add controls like `ESPUI.button()` or `ESPUI.slider()` do not add to any tab, +so they are good for building small UIs. However if you need to use tabs then you will have to add all your +controls using the full `ESPUI.addControl()` function. + + + +### Log output + +ESPUI has several different log levels. You can set them using the +`ESPUI.setVerbosity(Verbosity::VerboseJSON)` function. + +Loglevels are: + +- `Verbosity::Quiet` (default) +- `Verbosity::Verbose` +- `Verbosity::VerboseJSON` + +VerboseJSON outputs the most debug information. + +### Colours + +A selection of basic colours are available to use: + +![Colours](docs/ui_colours.png) + +If you want more control over the UI design, see the Inline Styles section below. + + +## Advanced Features + +ESPUI includes a range of advanced features that can customise your UIs. + + +### Inline Styles + +You can add custom CSS styles to controls. This allows you to style the UI with custom colors, drop shadows, +or other CSS effects. Add styles with the following functions: + +``` +setPanelStyle(uint16_t id, String style); +setElementStyle(uint16_t id, String style) +``` + +A panel style is applied to the panel on which the UI element is placed, an element style is applied to the element itself. +Because CSS inline styles can only style one specific DOM element, for controls made up of multiple elements (like the pad) +this is limited. Element styles can be applied to all controls, but will only work correctly for the Button, Label, Slider, +Switcher, Number, Text, and Selector. + +Dynamic update of styles is supported. When either of the above functions are called, the control is updated live. This could +be used to refect a warning state by changing the color of a button, or for similar effects. + +For example, this code will set a control's panel to a random background color: + +``` +char stylecol[30]; +sprintf(stylecol, "background-color: #%06X;", (unsigned int) random(0x0, 0xFFFFFF)); +ESPUI.setPanelStyle(switch1, stylecol); +``` + +You can get quite creative with this. + +![Inline Styles](docs/inlinestyles.gif) + +The **completeExample** example includes a range of examples that you can do with inline styles. + +![More Inline Styles](docs/ui_inlinestyles2.png) + + + +### Grouped controls + +Normally, whenever a control is added to the UI, a new panel is generated with a title. However, you can instead +set the "parent" of a new control to be an existing control. This allows you to add multiple widgets into the same +panel. For example: + +``` +panel1 = ESPUI.addControl(ControlType::Button, "Button Set", "Button A", ControlColor::Turquoise, Control::noParent, btncallback); +ESPUI.addControl(ControlType::Button, "", "Button B", ControlColor::None, panel1, btncallback); +ESPUI.addControl(ControlType::Button, "", "Button C", ControlColor::None, panel1, btncallback); +``` + +The first call to `addControl` has no parent (or it could be set to a tab if you are using a tabbed UI), so therefore a new panel is added containing one button +with the value `Button A`. The two subsequent calls have their parent set to the first control we added, so instead of creating +a new panel, the result is the following: + +![Grouped buttons](docs/ui_groupedbuttons.png) + +The grouped controls operate entirely independently, and can be assigned different callbacks, or updated separately. The grouping +is purely visual. + +Most controls can be grouped this way, but the result is not always visually pleasant. This works best with labels, sliders, switchers, +and buttons. + +![Other grouped elements](docs/ui_groupedbuttons2.png) + +If you group too many elements it might throw the layout of the rest of the UI out of line. Consider adding separators to correct this. + +### Wide controls + +Controls can be set to be displayed "wide" with the function: + +``` +ESPUI.setPanelWide(controlid, true); +``` + +*Important!* This function should be called _before_ `ESPUI.begin` or results will be unreliable. + +Setting a control to wide tells ESPUI to lay out that control as if there was only a single column, even on wide displays. +This can be applied to every element to force a single column layout, or to individual elements to customise the display. + +![Wide controls](docs/ui_widecontrols.png) + +Note that this will have no effect on small screens. + + +### Graph (Experimental) + +![graph](docs/ui_graph.png) + +The graph widget can display graph points with timestamp at wich they arrive + +Use `ESPUI.addGraphPoint(graphId, random(1, 50));` to add a new value at the current time, use `ESPUI.clearGraph(graphId)` to clear the entire graph. +Graph points are saved in the browser in **localstorage** to be persistant, clear local storageto remove the points or use clearGraph() from a bbutton callback to provide a clear button. + +_There are many issues with the graph component currently and work is ongoing. Consider helping us out with development!_ + # Notes for Development If you want to work on the HTML/CSS/JS files, do make changes in the _data_ @@ -514,6 +535,23 @@ If you change something in HTML/CSS/JS and want to create a pull request, please do include the minified versions and corresponding C header files in your commits. (Do **NOT** commit all the minified versions for the non changed files) +## Changelog for 2.1: + + - Adds the ability to have inline styles for widgets and panels + - Adds LittleFS on the ESP32 + - Cleans up examples + - Adds Button Animation + - Adds chunking for the widgets so you can add even more of them + - Fixes lots of bugs related to invisible UI elements and sliders + - Adds the ability to change port + +## Changelog for 2.0: + +- ArduinoJSON 6.10.0 Support +- Split pad into pad and padWithCenter +- Cleaned order of parameters on switch and pad +- Changes all numbers to actually be numbers (slider value, number value, min and max) + # Contribute Liked this Library? You can **support** me by sending me a :coffee: diff --git a/docs/ui_colours.png b/docs/ui_colours.png new file mode 100644 index 0000000000000000000000000000000000000000..a9c4cc7aa5a2fad4f9f06e47c3abda7ddec44697 GIT binary patch literal 34563 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%0AqbAO*cMm&@Oj_PCU%Wfj%%(t;U-4krS2Uzv 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 D5B84* literal 0 HcmV?d00001 diff --git a/docs/ui_complete.png b/docs/ui_complete.png index bef992ddc298b42835ae2cc025c1ad42cdfb6f7c..0445fff73d80fa19c6b64ead411207a498038032 100644 GIT binary patch literal 60210 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 lsCy0DINmrWPG+F*`vMyyX8x5tNTX{|!Dzno$4% literal 107603 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 bG=Ye;kzVZ)Xf)qm26*kaJ+!aL+9T@!F|z2E diff --git a/docs/ui_inlinestyles2.png b/docs/ui_inlinestyles2.png new file mode 100644 index 0000000000000000000000000000000000000000..0ffa76aaa4f5aea9008c32f5f1e9ab6e49f16f9f GIT binary patch literal 40525 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

v>s?p8OyE9q;Aib4j4r1z43EhV?f16px(al8Le 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

    &0%0SYIlOY(a4ZNDmM2#nfO=X#zJFQ$){45 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 literal 21611 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 b$RX3-%1*)QN1JR%pA0px-&D<4M&0`#N+->9 literal 10458 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 H8wdR__s$1m diff --git a/docs/ui_text.png b/docs/ui_text.png index 063774762680c6bd3ef02a942fe1190317b44616..f6e4930ebf26b3b475c089687e12a62dbf74d62d 100644 GIT binary patch literal 7374 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 From ba048185dbb394bddcb6458c05b55c1ccc9ab462 Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Tue, 25 Jan 2022 21:35:33 +0000 Subject: [PATCH 3/8] Add major new example --- examples/completeExample/completeExample.cpp | 502 +++++++++++++++++++ 1 file changed, 502 insertions(+) create mode 100644 examples/completeExample/completeExample.cpp diff --git a/examples/completeExample/completeExample.cpp b/examples/completeExample/completeExample.cpp new file mode 100644 index 0000000..4a44f11 --- /dev/null +++ b/examples/completeExample/completeExample.cpp @@ -0,0 +1,502 @@ +/** + * @file completeExample.cpp + * @author Ian Gray @iangray1000 + * + * This is an example GUI to show off all of the features of ESPUI. + * This can be built using the Arduino IDE, or Platform IO. + * + * --------------------------------------------------------------------------------------- + * If you just want to see examples of the ESPUI code, jump down to the setUpUI() function + * --------------------------------------------------------------------------------------- + * + * When this program boots, it will load an SSID and password from the EEPROM. + * The SSID is a null-terminated C string stored at EEPROM addresses 0-31 + * The password is a null-terminated C string stored at EEPROM addresses 32-95. + * If these credentials do not work for some reason, the ESP will create an Access + * Point wifi with the SSID HOSTNAME (defined below). You can then connect and use + * the controls on the "Wifi Credentials" tab to store credentials into the EEPROM. + * + */ + +#include +#include +#include + +#if defined(ESP32) +#include +#include +#else +#include +#include +#endif + +//Settings +#define SLOW_BOOT 0 +#define HOSTNAME "ESPUITest" +#define FORCE_USE_HOTSPOT 0 + + +//Function Prototypes +void connectWifi(); +void setUpUI(); +void enterWifiDetailsCallback(Control *sender, int type); +void textCallback(Control *sender, int type); +void generalCallback(Control *sender, int type); +void scrambleCallback(Control *sender, int type); +void styleCallback(Control *sender, int type); +void updateCallback(Control *sender, int type); +void getTimeCallback(Control *sender, int type); +void graphAddCallback(Control *sender, int type); +void graphClearCallback(Control *sender, int type); +void randomString(char *buf, int len); + +//UI handles +uint16_t wifi_ssid_text, wifi_pass_text; +uint16_t mainLabel, mainSwitcher, mainSlider, mainText, mainNumber, mainScrambleButton, mainTime; +uint16_t styleButton, styleLabel, styleSwitcher, styleSlider, styleButton2, styleLabel2, styleSlider2; +uint16_t graph; +volatile bool updates = false; + + + +void setup() { + randomSeed(0); + Serial.begin(115200); + while(!Serial); + if(SLOW_BOOT) delay(5000); //Delay booting to give time to connect a serial monitor + connectWifi(); + #if defined(ESP32) + WiFi.setSleep(false); //For the ESP32: turn off sleeping to increase UI responsivness (at the cost of power use) + #endif + setUpUI(); +} + +void loop() { + static long unsigned lastTime = 0; + + //Send periodic updates if switcher is turned on + if(updates && millis() > lastTime + 500) { + static uint16_t sliderVal = 10; + + //Flick this switcher on and off + ESPUI.updateSwitcher(mainSwitcher, ESPUI.getControl(mainSwitcher)->value.toInt() ? false : true); + sliderVal += 10; + if(sliderVal > 400) sliderVal = 10; + + //Sliders, numbers, and labels can all be updated at will + ESPUI.updateSlider(mainSlider, sliderVal); + ESPUI.updateNumber(mainNumber, random(100000)); + ESPUI.updateLabel(mainLabel, String(sliderVal)); + lastTime = millis(); + } + + //Simple debug UART interface + if(Serial.available()) { + switch(Serial.read()) { + case 'w': //Print IP details + Serial.println(WiFi.localIP()); + break; + case 'W': //Reconnect wifi + connectWifi(); + break; + case 'C': //Force a crash (for testing exception decoder) + #if !defined(ESP32) + ((void (*)())0xf00fdead)(); + #endif + default: + Serial.print('#'); + break; + } + } + + #if !defined(ESP32) + //We don't need to call this explicitly on ESP32 but we do on 8266 + MDNS.update(); + #endif + +} + + + +// This is the main function which builds our GUI +void setUpUI() { + //Turn off verbose debugging + ESPUI.setVerbosity(Verbosity::Quiet); + + //Make sliders continually report their position as they are being dragged. + ESPUI.sliderContinuous = true; + + //This GUI is going to be a tabbed GUI, so we are adding most controls using ESPUI.addControl + //which allows us to set a parent control. If we didn't need tabs we could use the simpler add + //functions like: + // ESPUI.button() + // ESPUI.label() + + + /* + * Tab: Basic Controls + * This tab contains all the basic ESPUI controls, and shows how to read and update them at runtime. + *-----------------------------------------------------------------------------------------------------------*/ + auto maintab = ESPUI.addControl(Tab, "", "Basic controls"); + + ESPUI.addControl(Separator, "General controls", "", None, maintab); + ESPUI.addControl(Button, "Button", "Button 1", Alizarin, maintab, generalCallback); + mainLabel = ESPUI.addControl(Label, "Label", "Label text", Emerald, maintab, generalCallback); + mainSwitcher = ESPUI.addControl(Switcher, "Switcher", "", Sunflower, maintab, generalCallback); + + //Sliders default to being 0 to 100, but if you want different limits you can add a Min and Max control + mainSlider = ESPUI.addControl(Slider, "Slider", "200", Turquoise, maintab, generalCallback); + ESPUI.addControl(Min, "", "10", None, mainSlider); + ESPUI.addControl(Max, "", "400", None, mainSlider); + + //These are the values for the selector's options. (Note that they *must* be declared static + //so that the storage is allocated in global memory and not just on the stack of this function.) + static String optionValues[] {"Value 1", "Value 2", "Value 3", "Value 4", "Value 5"}; + auto mainselector = ESPUI.addControl(Select, "Selector", "Selector", Wetasphalt, maintab, generalCallback); + for(auto const& v : optionValues) { + ESPUI.addControl(Option, v.c_str(), v, None, mainselector); + } + + mainText = ESPUI.addControl(Text, "Text Input", "Initial value", Alizarin, maintab, generalCallback); + + //Number inputs also accept Min and Max components, but you should still validate the values. + mainNumber = ESPUI.addControl(Number, "Number Input", "42", Emerald, maintab, generalCallback); + ESPUI.addControl(Min, "", "10", None, mainNumber); + ESPUI.addControl(Max, "", "50", None, mainNumber); + + ESPUI.addControl(Separator, "Updates", "", None, maintab); + + //This button will update all the updatable controls on this tab to random values + mainScrambleButton = ESPUI.addControl(Button, "Scramble Values", "Scramble Values", Carrot, maintab, scrambleCallback); + ESPUI.addControl(Switcher, "Constant updates", "0", Carrot, maintab, updateCallback); + mainTime = ESPUI.addControl(Time, "", "", None, 0, generalCallback); + ESPUI.addControl(Button, "Get Time", "Get Time", Carrot, maintab, getTimeCallback); + + ESPUI.addControl(Separator, "Control Pads", "", None, maintab); + ESPUI.addControl(Pad, "Normal", "", Peterriver, maintab, generalCallback); + ESPUI.addControl(PadWithCenter, "With center", "", Peterriver, maintab, generalCallback); + + + /* + * Tab: Colours + * This tab shows all the basic colours + *-----------------------------------------------------------------------------------------------------------*/ + auto colourtab = ESPUI.addControl(Tab, "", "Colours"); + ESPUI.addControl(Button, "Alizarin", "Alizarin", Alizarin, colourtab, generalCallback); + ESPUI.addControl(Button, "Turquoise", "Turquoise", Turquoise, colourtab, generalCallback); + ESPUI.addControl(Button, "Emerald", "Emerald", Emerald, colourtab, generalCallback); + ESPUI.addControl(Button, "Peterriver", "Peterriver", Peterriver, colourtab, generalCallback); + ESPUI.addControl(Button, "Wetasphalt", "Wetasphalt", Wetasphalt, colourtab, generalCallback); + ESPUI.addControl(Button, "Sunflower", "Sunflower", Sunflower, colourtab, generalCallback); + ESPUI.addControl(Button, "Carrot", "Carrot", Carrot, colourtab, generalCallback); + ESPUI.addControl(Button, "Dark", "Dark", Dark, colourtab, generalCallback); + + + /* + * Tab: Styled controls + * This tab shows off how inline CSS styles can be applied to elements and panels in order + * to customise the look of the UI. + *-----------------------------------------------------------------------------------------------------------*/ + auto styletab = ESPUI.addControl(Tab, "", "Styled controls"); + styleButton = ESPUI.addControl(Button, "Styled Button", "Button", Alizarin, styletab, generalCallback); + styleLabel = ESPUI.addControl(Label, "Styled Label", "This is a label", Alizarin, styletab, generalCallback); + styleSwitcher = ESPUI.addControl(Switcher, "Styled Switcher", "1", Alizarin, styletab, generalCallback); + styleSlider = ESPUI.addControl(Slider, "Styled Slider", "0", Alizarin, styletab, generalCallback); + + //This button will randomise the colours of the above controls to show updating of inline styles + ESPUI.addControl(Button, "Randomise Colours", "Randomise Colours", Sunflower, styletab, styleCallback); + + ESPUI.addControl(Separator, "Other styling examples", "", None, styletab); + styleButton2 = ESPUI.addControl(Button, "Styled Button", "Button", Alizarin, styletab, generalCallback); + ESPUI.setPanelStyle(styleButton2, "background: linear-gradient(90deg, rgba(131,58,180,1) 0%, rgba(253,29,29,1) 50%, rgba(252,176,69,1) 100%); border-bottom: #555;"); + ESPUI.setElementStyle(styleButton2, "border-radius: 2em; border: 3px solid black; width: 30%; background-color: #8df;"); + + styleSlider2 = ESPUI.addControl(Slider, "Styled Slider", "0", Dark, styletab, generalCallback); + ESPUI.setElementStyle(styleSlider2, "background: linear-gradient(to right, red, orange, yellow, green, blue);"); + + styleLabel2 = ESPUI.addControl(Label, "Styled Label", "This is a label", Dark, styletab, generalCallback); + ESPUI.setElementStyle(styleLabel2, "text-shadow: 3px 3px #74b1ff, 6px 6px #c64ad7; font-size: 60px; font-variant-caps: small-caps; background-color: unset; color: #c4f0bb; -webkit-text-stroke: 1px black;"); + + + /* + * Tab: Grouped controls + * This tab shows how multiple control can be grouped into the same panel through the use of the + * parentControl value. + *-----------------------------------------------------------------------------------------------------------*/ + auto grouptab = ESPUI.addControl(Tab, "", "Grouped controls"); + + //The parent of this button is a tab, so it will create a new panel with one control. + auto groupbutton = ESPUI.addControl(Button, "Button Group", "Button A", Dark, grouptab, generalCallback); + //However the parent of this button is another control, so therefore no new panel is + //created and the button is added to the existing panel. + ESPUI.addControl(Button, "", "Button B", Alizarin, groupbutton, generalCallback); + ESPUI.addControl(Button, "", "Button C", Alizarin, groupbutton, generalCallback); + + //Sliders can be grouped as well + String clearLabelStyle = "background-color: unset; width: 100%;"; + auto groupsliders = ESPUI.addControl(Slider, "Slider Group", "10", Dark, grouptab, generalCallback); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, groupsliders), clearLabelStyle); + ESPUI.addControl(Slider, "", "20", None, groupsliders, generalCallback); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, groupsliders), clearLabelStyle); + ESPUI.addControl(Slider, "", "30", None, groupsliders, generalCallback); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, groupsliders), clearLabelStyle); + + //We can put 4 switchers next to each other, but as they lack labels it can be hard to see + //which is which. We can add labels to them with some label controls and styling. + auto groupswitcher = ESPUI.addControl(Switcher, "Switcher Group", "0", Dark, grouptab, generalCallback); + ESPUI.addControl(Switcher, "", "1", Sunflower, groupswitcher, generalCallback); + ESPUI.addControl(Switcher, "", "0", Sunflower, groupswitcher, generalCallback); + ESPUI.addControl(Switcher, "", "1", Sunflower, groupswitcher, generalCallback); + //This label does nothing apart from put the next 4 onto the next line + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "", None, groupswitcher), clearLabelStyle); + //They are set to the same width as a switcher so appear below them + String labelStyle = "width: 60px; margin-left: .3rem; margin-right: .3rem; background-color: unset;"; + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, groupswitcher), labelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, groupswitcher), labelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, groupswitcher), labelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "D", None, groupswitcher), labelStyle); + + //You can mix and match different control types, but the results might sometimes + //need additional styling to lay out nicely. + auto grouplabel = ESPUI.addControl(Label, "Mixed Group", "Main label", Dark, grouptab); + auto grouplabel2 = ESPUI.addControl(Label, "", "Secondary label", Emerald, grouplabel); + ESPUI.addControl(Button, "", "Button D", Alizarin, grouplabel, generalCallback); + ESPUI.addControl(Switcher, "", "1", Sunflower, grouplabel, generalCallback); + ESPUI.setElementStyle(grouplabel2, "font-size: x-large; font-family: serif;"); + + //Some controls can even support vertical orientation, currently Switchers and Sliders + ESPUI.addControl(Separator, "Vertical controls", "", None, grouptab); + auto vertgroupswitcher = ESPUI.addControl(Switcher, "Vertical Switcher Group", "0", Dark, grouptab, generalCallback); + ESPUI.setVertical(vertgroupswitcher); + //On the following lines we wrap the value returned from addControl and send it straight to setVertical + ESPUI.setVertical(ESPUI.addControl(Switcher, "", "0", None, vertgroupswitcher, generalCallback)); + ESPUI.setVertical(ESPUI.addControl(Switcher, "", "0", None, vertgroupswitcher, generalCallback)); + ESPUI.setVertical(ESPUI.addControl(Switcher, "", "0", None, vertgroupswitcher, generalCallback)); + + auto vertgroupslider = ESPUI.addControl(Slider, "Vertical Slider Group", "15", Dark, grouptab, generalCallback); + ESPUI.setVertical(vertgroupslider); + ESPUI.setVertical(ESPUI.addControl(Slider, "", "25", None, vertgroupslider, generalCallback)); + ESPUI.setVertical(ESPUI.addControl(Slider, "", "35", None, vertgroupslider, generalCallback)); + ESPUI.setVertical(ESPUI.addControl(Slider, "", "45", None, vertgroupslider, generalCallback)); + //Note that combining vertical and horizontal sliders is going to result in very messy layout! + + + /* + * Tab: Example UI + * An example UI for the documentation + *-----------------------------------------------------------------------------------------------------------*/ + auto exampletab = ESPUI.addControl(Tab, "Example", "Example"); + ESPUI.addControl(Separator, "Control and Status", "", None, exampletab); + ESPUI.addControl(Switcher, "Power", "1", Alizarin, exampletab, generalCallback); + ESPUI.addControl(Label, "Status", "System status: OK", Wetasphalt, exampletab, generalCallback); + + ESPUI.addControl(Separator, "Settings", "", None, exampletab); + ESPUI.addControl(PadWithCenter, "Attitude Control", "", Dark, exampletab, generalCallback); + auto examplegroup1 = ESPUI.addControl(Button, "Activate Features", "Feature A", Carrot, exampletab, generalCallback); + ESPUI.addControl(Button, "Activate Features", "Feature B", Carrot, examplegroup1, generalCallback); + ESPUI.addControl(Button, "Activate Features", "Feature C", Carrot, examplegroup1, generalCallback); + ESPUI.addControl(Slider, "Value control", "45", Peterriver, exampletab, generalCallback); + + /* + * Tab: WiFi Credentials + * You use this tab to enter the SSID and password of a wifi network to autoconnect to. + *-----------------------------------------------------------------------------------------------------------*/ + auto wifitab = ESPUI.addControl(Tab, "", "WiFi Credentials"); + wifi_ssid_text = ESPUI.addControl(Text, "SSID", "", Alizarin, wifitab, textCallback); + //Note that adding a "Max" control to a text control sets the max length + ESPUI.addControl(Max, "", "32", None, wifi_ssid_text); + wifi_pass_text = ESPUI.addControl(Text, "Password", "", Alizarin, wifitab, textCallback); + ESPUI.addControl(Max, "", "64", None, wifi_pass_text); + ESPUI.addControl(Button, "Save", "Save", Peterriver, wifitab, enterWifiDetailsCallback); + + + //Finally, start up the UI. + //This should only be called once we are connected to WiFi. + ESPUI.begin(HOSTNAME); +} + +//This callback generates and applies inline styles to a bunch of controls to change their colour. +//The styles created are of the form: +// "border-bottom: #999 3px solid; background-color: #aabbcc;" +// "background-color: #aabbcc;" +void styleCallback(Control *sender, int type) { + //Declare space for style strings. These have to be static so that they are always available + //to the websocket layer. If we'd not made them static they'd be allocated on the heap and + //will be unavailable when we leave this function. + static char stylecol1[60], stylecol2[30]; + if(type == B_UP) { + //Generate two random HTML hex colour codes, and print them into CSS style rules + sprintf(stylecol1, "border-bottom: #999 3px solid; background-color: #%06X;", (unsigned int) random(0x0, 0xFFFFFF)); + sprintf(stylecol2, "background-color: #%06X;", (unsigned int) random(0x0, 0xFFFFFF)); + + //Apply those styles to various elements to show how controls react to styling + ESPUI.setPanelStyle(styleButton, stylecol1); + ESPUI.setElementStyle(styleButton, stylecol2); + ESPUI.setPanelStyle(styleLabel, stylecol1); + ESPUI.setElementStyle(styleLabel, stylecol2); + ESPUI.setPanelStyle(styleSwitcher, stylecol1); + ESPUI.setElementStyle(styleSwitcher, stylecol2); + ESPUI.setPanelStyle(styleSlider, stylecol1); + ESPUI.setElementStyle(styleSlider, stylecol2); + } +} + + +//This callback updates the "values" of a bunch of controls +void scrambleCallback(Control *sender, int type) { + static char rndString1[10]; + static char rndString2[20]; + static bool scText = false; + + if(type == B_UP) { //Button callbacks generate events for both UP and DOWN. + //Generate some random text + randomString(rndString1, 10); + randomString(rndString2, 20); + + //Set the various controls to random value to show how controls can be updated at runtime + ESPUI.updateLabel(mainLabel, String(rndString1)); + ESPUI.updateSwitcher(mainSwitcher, ESPUI.getControl(mainSwitcher)->value.toInt() ? false : true); + ESPUI.updateSlider(mainSlider, random(10, 400)); + ESPUI.updateText(mainText, String(rndString2)); + ESPUI.updateNumber(mainNumber, random(100000)); + ESPUI.updateButton(mainScrambleButton, scText ? "Scrambled!" : "Scrambled."); + scText = !scText; + } +} + +void updateCallback(Control *sender, int type) { + updates = (sender->value.toInt() > 0); +} + +void getTimeCallback(Control *sender, int type) { + if(type == B_UP) { + ESPUI.updateTime(mainTime); + } +} + +void graphAddCallback(Control *sender, int type) { + if(type == B_UP) { + ESPUI.addGraphPoint(graph, random(1, 50)); + } +} + +void graphClearCallback(Control *sender, int type) { + if(type == B_UP) { + ESPUI.clearGraph(graph); + } +} + + +//Most elements in this test UI are assigned this generic callback which prints some +//basic information. Event types are defined in ESPUI.h +void generalCallback(Control *sender, int type) { + Serial.print("CB: id("); + Serial.print(sender->id); + Serial.print(") Type("); + Serial.print(type); + Serial.print(") '"); + Serial.print(sender->label); + Serial.print("' = "); + Serial.println(sender->value); +} + + +//Utilities +// +//If you are here just to see examples of how to use ESPUI, you can ignore the following functions +//------------------------------------------------------------------------------------------------ +void readStringFromEEPROM(String& buf, int baseaddress, int size) { + buf.reserve(size); + for (int i = baseaddress; i < baseaddress+size; i++) { + char c = EEPROM.read(i); + buf += c; + if(!c) break; + } +} + +void connectWifi() { + int connect_timeout; + +#if defined(ESP32) + WiFi.setHostname(HOSTNAME); +#else + WiFi.hostname(HOSTNAME); +#endif + Serial.println("Begin wifi..."); + + //Load credentials from EEPROM + if(!(FORCE_USE_HOTSPOT)) { + yield(); + EEPROM.begin(100); + String stored_ssid, stored_pass; + readStringFromEEPROM(stored_ssid, 0, 32); + readStringFromEEPROM(stored_pass, 32, 96); + EEPROM.end(); + + //Try to connect with stored credentials, fire up an access point if they don't work. + #if defined(ESP32) + WiFi.begin(stored_ssid.c_str(), stored_pass.c_str()); + #else + WiFi.begin(stored_ssid, stored_pass); + #endif + connect_timeout = 28; //7 seconds + while (WiFi.status() != WL_CONNECTED && connect_timeout > 0) { + delay(250); + Serial.print("."); + connect_timeout--; + } + } + + if (WiFi.status() == WL_CONNECTED) { + Serial.println(WiFi.localIP()); + Serial.println("Wifi started"); + + if (!MDNS.begin(HOSTNAME)) { + Serial.println("Error setting up MDNS responder!"); + } + } else { + Serial.println("\nCreating access point..."); + WiFi.mode(WIFI_AP); + WiFi.softAPConfig(IPAddress(192, 168, 1, 1), IPAddress(192, 168, 1, 1), IPAddress(255, 255, 255, 0)); + WiFi.softAP(HOSTNAME); + + connect_timeout = 20; + do { + delay(250); + Serial.print(","); + connect_timeout--; + } while(connect_timeout); + } +} + +void enterWifiDetailsCallback(Control *sender, int type) { + if(type == B_UP) { + Serial.println("Saving credentials to EPROM..."); + Serial.println(ESPUI.getControl(wifi_ssid_text)->value); + Serial.println(ESPUI.getControl(wifi_pass_text)->value); + unsigned int i; + EEPROM.begin(100); + for(i = 0; i < ESPUI.getControl(wifi_ssid_text)->value.length(); i++) { + EEPROM.write(i, ESPUI.getControl(wifi_ssid_text)->value.charAt(i)); + if(i==30) break; //Even though we provided a max length, user input should never be trusted + } + EEPROM.write(i, '\0'); + + for(i = 0; i < ESPUI.getControl(wifi_pass_text)->value.length(); i++) { + EEPROM.write(i + 32, ESPUI.getControl(wifi_pass_text)->value.charAt(i)); + if(i==94) break; //Even though we provided a max length, user input should never be trusted + } + EEPROM.write(i + 32, '\0'); + EEPROM.end(); + } +} + +void textCallback(Control *sender, int type) { + //This callback is needed to handle the changed values, even though it doesn't do anything itself. +} + +void randomString(char *buf, int len) { + for(auto i = 0; i < len-1; i++) + buf[i] = random(0, 26) + 'A'; + buf[len-1] = '\0'; +} From df0c6faa4d223a549533372488d5870935cbc06d Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Fri, 28 Jan 2022 15:31:53 +0000 Subject: [PATCH 4/8] Add updated style header --- src/dataStyleCSS.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dataStyleCSS.h b/src/dataStyleCSS.h index 4615248..1c0182b 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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -45px 70px -45px}.vert-slider span{transform:rotate(90deg)} )====="; -const uint8_t CSS_STYLE_GZIP[3424] PROGMEM = { 31,139,8,0,160,250,217,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,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,156,188,148,89,95,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,191,151,245,83,124,104,218,12,183,22,140,12,118,218,84,231,99,109,142,127,187,11,67,118,29,231,33,201,171,6,245,113,133,243,30,192,80,155,93,142,101,109,21,184,124,42,122,2,64,105,82,66,45,202,202,115,23,71,211,44,5,202,154,151,216,49,130,211,43,253,105,159,14,232,209,115,2,211,221,111,77,119,23,154,142,29,110,146,19,202,50,224,198,34,19,48,22,167,145,150,78,65,135,152,4,192,106,223,55,199,56,160,67,240,153,113,25,82,38,128,243,166,141,239,243,60,31,254,114,196,89,137,30,23,8,215,115,194,211,235,230,98,195,71,188,8,49,9,185,133,135,131,6,107,187,119,214,177,162,208,225,177,208,235,248,32,242,25,146,4,191,223,61,12,131,221,225,148,24,233,208,98,244,60,235,154,113,126,168,80,250,172,135,48,138,246,194,116,28,59,201,168,121,143,104,25,48,158,218,230,92,103,214,40,125,20,69,131,221,159,219,255,156,155,178,195,151,5,32,190,119,209,33,221,167,201,108,116,170,201,123,55,66,206,46,52,124,48,79,215,84,101,54,216,248,136,91,84,101,2,174,135,211,116,235,202,184,222,22,225,200,225,113,79,184,199,109,11,206,215,10,232,126,176,223,101,7,5,125,191,115,14,123,30,253,5,247,168,59,21,168,234,37,244,96,31,98,5,61,245,113,40,204,222,157,107,240,213,23,105,242,220,77,3,39,151,177,113,116,56,56,57,143,13,246,106,27,113,98,28,109,177,231,201,168,153,31,6,142,48,49,170,202,223,81,91,214,34,242,54,72,125,69,223,169,227,239,189,3,143,156,161,246,89,64,12,130,96,23,110,101,68,54,202,35,86,232,128,171,139,54,158,147,151,162,236,177,213,157,80,138,227,186,121,105,209,73,10,82,219,195,199,41,208,98,219,133,79,134,29,144,95,46,252,78,122,252,218,91,32,213,83,29,167,184,6,155,114,209,149,228,144,115,172,23,230,133,91,199,73,42,200,63,115,62,176,125,41,86,33,180,146,172,236,78,21,122,139,203,154,194,30,170,38,125,214,177,8,126,211,151,41,170,198,169,15,168,195,4,33,81,115,91,223,156,98,203,118,67,224,85,13,130,253,126,47,49,225,146,80,101,10,179,200,76,99,122,219,67,118,227,217,56,181,152,62,78,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,15,169,23,237,68,216,166,69,245,147,142,133,12,35,55,12,68,224,55,92,65,96,104,128,241,62,139,2,137,223,211,185,61,85,58,202,251,124,231,131,112,74,158,12,156,49,227,205,139,17,27,223,5,15,154,172,58,231,71,9,154,36,72,101,25,26,205,200,86,2,159,164,233,241,81,156,151,109,215,91,105,81,86,217,12,206,15,78,168,116,89,113,6,187,169,241,76,125,121,63,45,116,129,29,205,255,182,192,71,255,210,200,75,161,111,251,243,63,2,81,128,177,36,24,207,131,7,121,115,110,165,113,223,177,5,234,57,184,176,12,178,23,201,119,229,171,204,34,209,79,135,191,227,90,122,16,70,34,117,26,137,18,76,20,138,228,235,82,81,193,54,32,82,41,212,119,158,68,189,210,176,176,119,37,229,188,224,74,17,145,22,19,170,85,172,190,40,219,108,132,93,81,24,152,131,129,117,34,156,44,22,33,7,203,71,46,66,81,205,53,121,222,225,222,58,188,89,130,39,104,70,59,193,117,118,146,103,44,24,139,143,152,218,81,145,142,187,149,88,93,48,56,79,50,87,198,69,90,94,36,16,224,60,206,212,15,139,232,126,96,175,136,196,57,166,169,31,22,41,5,254,154,80,139,255,154,218,81,145,78,232,137,200,156,139,153,43,227,34,129,200,89,19,137,143,6,115,101,92,162,181,95,19,138,139,26,83,63,44,82,218,138,142,215,107,133,234,87,68,218,69,171,34,85,43,250,145,98,147,167,182,15,215,132,146,67,208,124,231,217,173,126,164,196,171,249,222,195,91,213,47,69,183,185,254,72,245,174,161,232,143,213,133,150,46,80,45,225,56,242,236,240,97,56,52,217,219,8,10,149,245,242,212,181,73,101,33,20,54,66,217,3,43,30,251,156,163,99,89,189,197,119,127,59,225,218,248,21,213,221,157,217,193,111,240,212,182,204,167,162,201,35,53,164,186,244,166,185,147,187,67,225,154,133,103,22,190,89,4,102,17,154,69,52,177,78,74,28,71,170,99,236,176,5,190,120,78,124,199,1,18,156,96,65,43,115,110,123,73,133,123,40,226,104,149,67,234,61,168,156,0,106,40,60,14,207,183,35,13,102,184,134,234,243,168,42,162,191,134,23,112,120,158,173,97,214,215,76,233,236,40,110,120,225,45,180,83,113,117,168,33,69,141,4,212,80,69,141,100,84,103,181,114,17,212,29,42,138,12,108,79,213,16,85,174,40,189,175,200,228,173,176,58,12,39,193,41,6,52,110,25,239,93,140,112,118,24,80,92,52,100,207,53,142,58,57,114,82,60,28,206,224,51,245,69,91,124,79,149,191,171,110,223,125,97,47,173,47,175,71,218,49,74,73,53,126,209,238,67,147,30,42,212,46,111,218,99,76,223,65,229,142,255,241,24,128,6,141,249,243,63,233,231,225,254,8,133,224,95,49,2,46,180,236,14,247,80,44,254,218,163,254,220,45,125,142,178,46,32,200,122,46,106,237,45,68,237,200,154,105,143,226,75,27,1,98,121,62,55,216,62,55,194,202,76,58,52,216,103,43,63,87,21,51,61,95,193,172,52,80,206,22,105,1,112,40,75,71,224,125,180,19,65,161,51,95,88,167,133,190,159,159,16,46,47,124,11,166,103,59,178,139,178,71,27,138,150,119,19,230,229,146,248,212,55,39,131,51,238,156,233,35,65,114,167,237,165,113,143,93,242,26,150,58,61,70,57,204,98,218,109,243,50,189,61,91,105,126,33,0,192,64,124,119,55,111,244,122,116,168,112,146,86,24,181,32,109,95,48,42,109,83,233,246,43,89,198,59,89,121,68,79,56,38,182,71,100,67,4,62,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,158,28,78,106,103,141,168,178,134,197,194,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,30,208,126,54,112,236,195,222,29,157,251,38,89,235,3,238,137,79,143,86,48,206,213,101,105,224,61,204,217,192,225,98,182,109,32,222,240,99,16,102,248,105,179,96,86,229,69,84,50,33,96,16,118,29,85,215,22,17,193,186,69,215,26,25,181,121,107,228,154,88,150,100,60,210,238,137,139,50,203,112,157,76,189,192,7,94,76,224,55,174,251,130,109,9,31,189,205,69,17,112,239,136,2,202,56,190,6,199,186,134,20,104,144,220,157,138,132,38,51,120,212,12,106,155,67,153,153,217,99,20,150,96,45,244,198,85,192,228,6,242,38,133,148,169,196,156,206,229,56,58,23,53,140,198,88,133,138,108,182,11,51,8,201,190,16,226,85,102,184,248,248,103,223,224,170,31,181,137,68,71,50,156,54,45,162,114,214,80,182,177,193,185,87,188,234,44,193,134,105,131,105,200,118,195,110,225,152,188,129,173,255,241,71,101,151,80,147,94,64,69,155,31,158,77,188,255,121,54,217,65,164,177,34,25,172,204,151,68,83,31,47,182,88,49,60,59,39,58,192,2,113,238,89,15,142,96,141,91,118,62,191,76,6,145,61,114,30,95,113,204,123,140,241,96,119,47,101,159,22,218,74,192,248,83,121,60,53,109,143,234,94,83,153,28,48,121,73,171,64,32,30,71,76,118,115,168,54,232,145,4,104,131,188,108,127,195,23,62,233,185,237,224,253,169,41,169,239,170,110,63,150,104,132,254,20,197,209,114,84,241,110,117,177,154,165,35,82,143,65,109,127,120,46,123,139,243,119,89,86,195,246,58,3,163,14,91,64,184,57,247,137,117,108,126,255,24,66,243,65,250,221,135,224,63,0,59,25,220,78,11,156,62,107,155,165,219,40,243,220,108,2,52,202,250,116,238,255,213,191,157,240,207,119,20,9,236,123,247,219,236,48,52,173,72,230,155,151,59,208,47,235,199,144,3,20,189,83,239,224,201,84,185,145,142,99,89,95,214,1,23,98,26,179,145,135,6,108,95,222,183,213,10,84,115,11,165,238,58,208,53,0,89,255,70,86,126,191,176,13,254,142,136,63,42,29,212,16,31,48,44,70,226,177,146,184,71,136,169,108,114,126,5,93,153,4,208,112,224,143,67,94,6,201,78,27,1,113,212,222,140,196,136,152,148,101,66,128,190,97,117,172,201,26,213,29,12,63,58,148,242,134,31,162,153,111,156,104,163,157,228,83,12,54,159,67,3,19,125,6,79,197,153,132,215,99,178,227,65,174,126,167,134,17,50,161,39,31,204,58,203,177,172,144,3,231,122,126,138,154,221,106,172,88,225,20,3,214,126,14,27,146,7,5,191,161,219,5,209,109,40,243,55,122,14,19,148,89,250,199,122,14,243,17,141,243,128,75,125,192,115,174,48,216,124,14,109,213,115,222,199,123,207,115,116,152,82,57,79,183,255,138,7,120,243,202,22,211,130,158,56,15,121,163,113,139,233,200,157,248,64,251,124,204,172,14,252,145,219,217,143,29,8,101,5,228,214,84,178,142,10,253,181,191,55,32,66,195,55,215,4,218,194,138,64,15,198,96,57,144,55,8,171,156,46,11,56,121,219,144,6,80,255,70,78,39,174,204,240,147,125,163,100,92,27,96,170,20,182,74,223,197,245,181,39,250,172,166,153,154,81,227,114,22,231,96,227,205,229,102,6,199,89,3,101,82,103,184,89,74,99,252,107,229,101,85,173,137,44,169,214,73,248,109,230,185,35,253,53,92,225,180,103,107,244,239,176,2,101,248,53,118,63,206,68,129,234,172,194,23,105,149,215,231,40,234,188,236,196,105,50,69,200,217,60,148,138,54,107,167,168,137,148,185,220,50,138,170,106,46,98,214,165,242,190,102,52,89,84,150,109,109,122,85,229,26,141,24,204,67,90,48,217,236,1,26,199,114,200,139,43,168,63,78,85,112,9,243,243,232,162,49,51,156,163,115,213,95,41,245,127,48,247,243,7,122,18,254,101,89,68,114,98,101,250,199,11,99,151,157,197,90,179,95,22,100,33,197,57,224,173,81,244,195,196,248,193,214,89,35,44,217,73,159,2,104,59,134,0,12,95,101,99,110,159,47,53,25,161,203,59,254,50,99,151,162,10,63,186,155,53,47,153,72,195,156,105,139,251,89,50,57,200,212,213,73,159,133,111,164,39,41,112,165,72,116,183,246,92,39,6,179,255,144,227,148,201,127,124,101,227,75,164,182,26,216,52,67,201,1,202,167,213,74,178,254,68,181,150,66,109,209,161,212,77,187,14,161,217,219,9,139,192,202,248,245,21,224,115,106,102,17,230,233,84,54,138,64,122,79,215,196,212,192,12,95,247,1,163,59,161,181,13,243,86,89,136,157,165,185,56,223,45,91,106,64,181,133,168,202,43,52,170,215,26,216,75,85,55,83,80,214,109,186,1,209,140,118,234,160,60,240,7,217,153,169,146,211,137,39,47,254,55,146,149,178,184,35,102,106,111,142,72,174,151,21,72,233,251,195,51,73,46,203,242,192,178,91,244,212,2,56,36,109,210,249,151,179,110,235,209,89,151,115,196,71,15,138,103,211,242,200,37,223,228,99,224,63,82,72,102,175,201,213,222,207,167,211,231,249,178,174,164,47,181,74,96,87,117,111,34,58,222,225,189,74,146,221,224,253,242,189,221,27,56,90,102,184,206,20,165,255,229,219,192,55,48,181,204,112,157,41,74,255,171,119,140,111,224,105,158,224,42,75,140,252,151,46,46,223,192,15,163,126,149,25,70,251,139,87,161,111,96,103,162,127,149,33,70,125,160,101,217,124,197,135,30,145,26,236,20,124,60,46,29,143,62,201,233,11,87,217,174,158,216,39,243,61,252,47,156,50,112,186,97,223,137,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,119,32,34,124,28,153,164,252,115,11,59,61,22,17,238,52,145,227,68,190,18,112,199,155,90,164,49,253,203,185,178,107,244,189,124,162,39,136,203,221,45,241,158,131,207,125,141,100,145,121,122,184,244,72,201,53,21,169,77,52,8,19,144,243,238,170,236,128,147,254,173,194,108,241,95,46,99,136,39,59,100,197,148,145,167,147,175,78,184,219,33,67,25,232,162,200,255,238,181,29,98,29,218,213,24,157,125,183,219,37,205,185,39,144,228,16,95,119,204,42,164,43,159,188,110,233,161,146,94,161,51,181,15,243,182,57,62,146,35,186,141,217,55,240,38,32,47,169,77,170,107,226,18,20,115,2,127,175,83,41,2,90,167,18,228,190,17,90,213,252,184,64,163,203,88,148,89,228,110,100,223,141,167,67,84,111,244,238,191,160,25,226,16,159,83,11,152,128,169,5,72,220,162,19,128,55,41,236,187,10,89,160,174,106,99,6,29,32,76,236,30,234,238,177,141,251,11,57,207,153,131,129,22,87,195,61,121,14,250,138,241,241,212,191,9,251,94,72,195,100,251,58,117,109,167,8,147,134,151,132,35,62,248,246,141,125,47,97,210,28,58,157,128,77,84,167,99,240,48,60,216,126,164,180,211,110,88,6,84,232,80,134,109,132,19,58,105,51,71,186,178,179,119,47,97,173,103,237,219,183,239,136,124,57,67,31,64,43,189,89,95,252,6,153,112,18,78,191,128,166,238,68,212,91,115,19,103,225,152,148,133,43,219,180,156,86,217,28,143,70,174,156,47,90,219,57,199,207,45,85,135,107,211,15,49,243,50,54,1,212,185,233,243,252,133,49,150,149,71,0,122,238,14,251,253,26,183,166,58,14,74,198,203,55,205,134,238,251,147,212,231,85,27,217,204,3,222,44,244,90,118,198,9,245,133,105,191,46,31,46,29,36,191,103,28,131,151,190,37,236,253,116,39,46,33,29,158,209,225,72,67,31,119,19,112,215,99,92,145,239,215,136,24,62,143,145,161,30,89,52,176,59,35,45,219,180,194,87,176,61,134,77,35,94,68,39,150,149,2,64,165,62,94,176,164,52,86,102,136,214,241,126,18,230,16,110,54,210,39,204,185,234,180,0,247,195,117,54,252,23,184,125,141,214,215,57,0,0 }; +const uint8_t CSS_STYLE_GZIP[3483] PROGMEM = { 31,139,8,0,255,63,235,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,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,156,188,148,89,95,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,191,151,245,83,124,104,218,12,183,22,140,12,118,218,84,231,99,109,142,127,187,11,67,118,29,231,33,201,171,6,245,113,133,243,30,192,80,155,93,142,101,109,21,184,124,42,122,2,64,105,82,66,45,202,202,115,23,71,211,44,5,202,154,151,216,49,130,211,43,253,105,159,14,232,209,115,2,211,221,111,77,119,23,154,142,29,110,146,19,202,50,224,198,34,19,48,22,167,145,150,78,65,135,152,4,192,106,223,55,199,56,160,67,240,153,113,25,82,38,128,243,166,141,239,243,60,31,254,114,196,89,137,30,23,8,215,115,194,211,235,230,98,195,71,188,8,49,9,185,133,135,131,6,107,187,119,214,177,162,208,225,177,208,235,248,32,242,25,146,4,191,223,61,12,131,221,225,148,24,233,208,98,244,60,235,154,113,126,168,80,250,172,135,48,138,246,194,116,28,59,201,168,121,143,104,25,48,158,218,230,92,103,214,40,125,20,69,131,221,159,219,255,156,155,178,195,151,5,32,190,119,209,33,221,167,201,108,116,170,201,123,55,66,206,46,52,124,48,79,215,84,101,54,216,248,136,91,84,101,2,174,135,211,116,235,202,184,222,22,225,200,225,113,79,184,199,109,11,206,215,10,232,126,176,223,101,7,5,125,191,115,14,123,30,253,5,247,168,59,21,168,234,37,244,96,31,98,5,61,245,113,40,204,222,157,107,240,213,23,105,242,220,77,3,39,151,177,113,116,56,56,57,143,13,246,106,27,113,98,28,109,177,231,201,168,153,31,6,142,48,49,170,202,223,81,91,214,34,242,54,72,125,69,223,169,227,239,189,3,143,156,161,246,89,64,12,130,96,23,110,101,68,54,202,35,86,232,128,171,139,54,158,147,151,162,236,177,213,157,80,138,227,186,121,105,209,73,10,82,219,195,199,41,208,98,219,133,79,134,29,144,95,46,252,78,122,252,218,91,32,213,83,29,167,184,6,155,114,209,149,228,144,115,172,23,230,133,91,199,73,42,200,63,115,62,176,125,41,86,33,180,146,172,236,78,21,122,139,203,154,194,30,170,38,125,214,177,8,126,211,151,41,170,198,169,15,168,195,4,33,81,115,91,223,156,98,203,118,67,224,85,13,130,253,126,47,49,225,146,80,101,10,179,200,76,99,122,219,67,118,227,217,56,181,152,62,78,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,15,169,23,237,68,216,166,69,245,147,142,133,12,35,55,12,68,224,55,92,65,96,104,128,241,62,139,2,137,223,211,185,61,85,58,202,251,124,231,131,112,74,158,12,156,49,227,205,139,17,27,223,5,15,154,172,58,231,71,9,154,36,72,101,25,26,205,200,86,2,159,164,233,241,81,156,151,109,215,91,105,81,86,217,12,206,15,78,168,116,89,113,6,187,169,241,76,125,121,63,45,116,129,29,205,255,182,192,71,255,210,200,75,161,111,251,243,63,2,81,128,177,36,24,207,131,7,121,115,110,165,113,223,177,5,234,57,184,176,12,178,23,201,119,229,171,204,34,209,79,135,191,227,90,122,16,70,34,117,26,137,18,76,20,138,228,235,82,81,193,54,32,82,41,212,119,158,68,189,210,176,176,119,37,229,188,224,74,17,145,22,19,170,85,172,190,40,219,108,132,93,81,24,152,131,129,117,34,156,44,22,33,7,203,71,46,66,81,205,53,121,222,225,222,58,188,89,130,39,104,70,59,193,117,118,146,103,44,24,139,143,152,218,81,145,142,187,149,88,93,48,56,79,50,87,198,69,90,94,36,16,224,60,206,212,15,139,232,126,96,175,136,196,57,166,169,31,22,41,5,254,154,80,139,255,154,218,81,145,78,232,137,200,156,139,153,43,227,34,129,200,89,19,137,143,6,115,101,92,162,181,95,19,138,139,26,83,63,44,82,218,138,142,215,107,133,234,87,68,218,69,171,34,85,43,250,145,98,147,167,182,15,215,132,146,67,208,124,231,217,173,126,164,196,171,249,222,195,91,213,47,69,183,185,254,72,245,174,161,232,143,213,133,150,46,80,45,225,56,242,236,240,97,56,52,217,219,8,10,149,245,242,212,181,73,101,33,20,54,66,217,3,43,30,251,156,163,99,89,189,197,119,127,59,225,218,248,21,213,221,157,217,193,111,240,212,182,204,167,162,201,35,53,164,186,244,166,185,147,187,67,225,154,133,103,22,190,89,4,102,17,154,69,52,177,78,74,28,71,170,99,236,176,5,190,120,78,124,199,1,18,156,96,65,43,115,110,123,73,133,123,40,226,104,149,67,234,61,168,156,0,106,40,60,14,207,183,35,13,102,184,134,234,243,168,42,162,191,134,23,112,120,158,173,97,214,215,76,233,236,40,110,120,225,45,180,83,113,117,168,33,69,141,4,212,80,69,141,100,84,103,181,114,17,212,29,42,138,12,108,79,213,16,85,174,40,189,175,200,228,173,176,58,12,39,193,41,6,52,110,25,239,93,140,112,118,24,80,92,52,100,207,53,142,58,57,114,82,60,28,206,224,51,245,69,91,124,79,149,191,171,110,223,125,97,47,173,47,175,71,218,49,74,73,53,126,209,238,67,147,30,42,212,46,111,218,99,76,223,65,229,142,255,241,24,128,6,141,249,243,63,233,231,225,254,8,133,224,95,49,2,46,180,236,14,247,80,44,254,218,163,254,220,45,125,142,178,46,32,200,122,46,106,237,45,68,237,200,154,105,143,226,75,27,1,98,121,62,55,216,62,55,194,202,76,58,52,216,103,43,63,87,21,51,61,95,193,172,52,80,206,22,105,1,112,40,75,71,224,125,180,19,65,161,51,95,88,167,133,190,159,159,16,46,47,124,11,166,103,59,178,139,178,71,27,138,150,119,19,230,229,146,248,212,55,39,131,51,238,156,233,35,65,114,167,237,165,113,143,93,242,26,150,58,61,70,57,204,98,218,109,243,50,189,61,91,105,126,33,0,192,64,124,119,55,111,244,122,116,168,112,146,86,24,181,32,109,95,48,42,109,83,233,246,43,89,198,59,89,121,68,79,56,38,182,71,100,67,4,62,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,158,28,78,106,103,141,168,178,134,197,194,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,30,208,126,54,112,236,195,222,29,157,251,38,89,235,3,238,137,79,143,86,48,206,213,101,105,224,61,204,217,192,225,98,182,109,32,222,240,99,16,102,248,105,179,96,86,229,69,84,50,33,96,16,118,29,85,215,22,17,193,186,69,215,26,25,181,121,107,228,154,88,150,100,60,210,238,137,139,50,203,112,157,76,189,192,7,94,76,224,55,174,251,130,109,9,31,189,205,69,17,112,239,136,2,202,56,190,6,199,186,134,20,104,144,220,157,138,132,38,51,120,212,12,106,155,67,153,153,217,99,20,150,96,45,244,198,85,192,228,6,242,38,133,148,169,196,156,206,229,56,58,23,53,140,198,88,133,138,108,182,11,51,8,201,190,16,226,85,102,184,248,248,103,223,224,170,31,181,137,68,71,50,156,54,45,162,114,214,80,182,177,193,185,87,188,234,44,193,134,105,131,105,200,118,195,110,225,152,188,129,173,255,241,71,101,151,80,147,94,64,69,155,31,158,77,188,255,121,54,217,65,164,177,34,25,172,204,151,68,83,31,47,182,88,49,60,59,39,58,192,2,113,238,89,15,142,96,141,91,118,62,191,76,6,145,61,114,30,95,113,204,123,140,241,96,119,47,101,159,22,218,74,192,248,83,121,60,53,109,143,234,94,83,153,28,48,121,73,171,64,32,30,71,76,118,115,168,54,232,145,4,104,131,188,108,127,195,23,62,233,185,237,224,253,169,41,169,239,170,110,63,150,104,132,254,20,197,209,114,84,241,110,117,177,154,165,35,82,143,65,109,127,120,46,123,139,243,119,89,86,195,246,58,3,163,14,91,64,184,57,247,137,117,108,126,255,24,66,243,65,250,221,135,224,63,0,59,25,220,78,11,156,62,107,155,165,219,40,243,220,108,2,52,202,250,116,238,255,213,191,157,240,207,119,20,9,236,123,247,219,236,48,52,173,72,230,155,151,59,208,47,235,199,144,3,20,189,83,239,224,201,84,185,145,142,99,89,95,214,1,23,98,26,179,145,135,6,108,95,222,183,213,10,84,115,11,165,238,58,208,53,0,89,255,70,86,126,191,176,13,254,142,136,63,42,29,212,16,31,48,44,70,226,177,146,184,71,136,169,108,114,126,5,93,153,4,208,112,224,143,67,94,6,201,78,27,1,113,212,222,140,196,136,152,148,101,66,128,190,97,117,172,201,26,213,29,12,63,58,148,242,134,31,162,153,111,156,104,163,157,228,83,12,54,159,67,3,19,125,6,79,197,153,132,215,99,178,227,65,174,126,167,134,17,50,161,39,31,204,58,203,177,172,144,3,231,122,126,138,154,221,106,172,88,225,20,3,214,126,14,27,146,7,5,191,161,219,5,209,109,40,243,55,122,14,19,148,89,250,199,122,14,243,17,141,243,128,75,125,192,115,174,48,216,124,14,109,213,115,222,199,123,207,115,116,152,82,57,79,183,255,138,7,120,243,202,22,211,130,158,56,15,121,163,113,139,233,200,157,248,64,251,124,204,172,14,252,145,219,217,143,29,8,101,5,228,214,84,178,142,10,253,181,191,55,32,66,195,55,215,4,218,194,138,64,15,198,96,57,144,55,8,171,156,46,11,56,121,219,144,6,80,255,70,78,39,174,204,240,147,125,163,100,92,27,96,170,20,182,74,223,197,245,181,39,250,172,166,153,154,81,227,114,22,231,96,227,205,229,102,6,199,89,3,101,82,103,184,89,74,99,252,107,229,101,85,173,137,44,169,214,73,248,109,230,185,35,253,53,92,225,180,103,107,244,239,176,2,101,248,53,118,63,206,68,129,234,172,194,23,105,149,215,231,40,234,188,236,196,105,50,69,200,217,60,148,138,54,107,167,168,137,148,185,220,50,138,170,106,46,98,214,165,242,190,102,52,89,84,150,109,109,122,85,229,26,141,24,204,67,90,48,217,236,1,26,199,114,200,139,43,168,63,78,85,112,9,243,243,232,162,49,51,156,163,115,213,95,41,245,127,48,247,243,7,122,18,254,101,89,68,114,98,101,250,199,11,99,151,157,197,90,179,95,22,100,33,197,57,224,173,81,244,195,196,248,193,214,89,35,44,217,73,159,2,104,59,134,0,12,95,101,99,110,159,47,53,25,161,203,59,254,50,99,151,162,10,63,186,155,53,47,153,72,195,156,105,139,251,89,50,57,200,212,213,73,159,133,111,164,39,41,112,165,72,116,183,246,92,39,6,179,255,144,227,148,201,127,124,101,227,75,164,182,26,216,52,67,201,1,202,167,213,74,178,254,68,181,150,66,109,209,161,212,77,187,14,161,217,219,9,139,192,202,248,245,21,224,115,106,102,17,230,233,84,54,138,64,122,79,215,196,212,192,12,95,247,1,163,59,161,181,13,243,86,89,136,157,165,185,56,223,45,91,106,64,181,133,168,202,43,52,170,215,26,216,75,85,55,83,80,214,109,186,1,209,140,118,234,160,60,240,7,217,153,169,146,211,137,39,47,254,55,146,149,178,184,35,102,106,111,142,72,174,151,21,72,233,251,195,51,73,46,203,242,192,178,91,244,212,2,56,36,109,210,249,151,179,110,235,209,89,151,115,196,71,15,138,103,211,242,200,37,223,228,99,224,63,82,72,102,175,201,213,222,207,167,211,231,249,178,174,164,47,181,74,96,87,117,111,34,58,222,225,189,74,146,221,224,253,242,189,221,27,56,90,102,184,206,20,165,255,229,219,192,55,48,181,204,112,157,41,74,255,171,119,140,111,224,105,158,224,42,75,140,252,151,46,46,223,192,15,163,126,149,25,70,251,139,87,161,111,96,103,162,127,149,33,70,125,160,101,217,124,197,135,30,145,26,236,20,124,60,46,29,143,62,201,233,11,87,217,174,158,216,39,243,61,252,47,156,50,112,186,97,223,137,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,119,32,34,124,28,153,164,252,115,11,59,61,22,17,238,52,145,227,68,190,18,112,199,155,90,164,49,253,203,185,178,107,244,189,124,162,39,136,203,221,45,241,158,131,207,125,141,100,145,121,122,184,244,72,201,53,21,169,77,52,8,19,144,243,238,170,236,128,147,254,173,194,108,241,95,46,99,136,39,59,100,197,148,145,167,147,175,78,184,219,33,67,25,232,162,200,255,238,181,29,98,29,218,213,24,157,125,183,219,37,205,185,39,144,228,16,95,119,204,42,164,43,159,188,110,233,161,146,94,161,51,181,15,243,182,57,62,146,35,186,141,217,55,240,38,32,47,169,77,170,107,226,18,20,115,2,127,175,83,41,2,90,167,18,228,190,17,90,213,252,184,64,163,203,88,148,89,228,110,100,223,141,167,67,84,111,244,238,191,160,25,226,16,159,83,11,152,128,169,5,72,220,162,19,128,55,41,236,187,10,89,160,174,106,99,6,29,32,76,236,30,234,238,177,141,251,11,57,207,153,131,129,22,87,195,61,121,14,250,138,241,241,212,191,9,251,94,72,195,100,251,58,117,109,167,8,147,134,151,132,35,62,248,246,141,125,47,97,210,28,58,157,128,77,84,167,99,240,48,60,216,126,164,180,211,110,88,6,84,232,80,134,109,132,19,58,105,51,71,186,178,179,119,47,97,173,103,237,219,183,239,136,124,57,67,31,64,43,189,89,95,252,6,153,112,18,78,191,128,166,238,68,212,91,115,19,103,225,152,148,133,43,219,180,156,86,217,28,143,70,174,156,47,90,219,57,199,207,45,85,135,107,211,15,49,243,50,54,1,212,185,233,243,252,133,49,150,149,71,0,122,238,14,251,253,26,183,166,58,14,74,198,203,55,205,134,238,251,147,212,231,85,27,217,204,3,222,44,244,90,118,198,9,245,133,105,191,46,31,46,29,36,191,103,28,131,151,190,37,236,253,116,39,46,33,29,158,209,225,72,67,31,119,19,112,215,99,92,145,239,215,136,24,62,143,145,161,30,89,52,176,59,35,45,219,180,194,87,176,61,134,77,35,94,68,39,150,149,2,64,165,62,94,176,164,52,86,102,136,214,241,126,18,230,16,110,54,210,39,204,185,234,180,0,247,195,53,20,66,228,139,80,22,59,63,35,55,253,228,13,141,183,165,87,137,18,238,182,31,223,127,27,215,57,143,126,93,134,145,18,130,54,164,14,189,70,84,27,55,99,168,17,76,195,34,1,107,108,231,183,194,28,108,11,180,118,203,234,191,69,123,190,155,176,58,0,0 }; From c12f97de48200e0d8096d48af37929e1ea322168 Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Fri, 28 Jan 2022 16:45:26 +0000 Subject: [PATCH 5/8] Update documentation to explain vertical layout Also explains how to label groups of sliders/switchers. Also makes a tiny tweak to the width of vertical sliders so they are the same width as switchers. --- README.md | 23 ++++++++++++++++++++--- data/css/style.css | 2 +- data/css/style.min.css | 2 +- docs/ui_groupedbuttons3.png | Bin 0 -> 44312 bytes src/dataStyleCSS.h | 4 ++-- 5 files changed, 24 insertions(+), 7 deletions(-) create mode 100644 docs/ui_groupedbuttons3.png diff --git a/README.md b/README.md index c14ea5f..4aa0db7 100644 --- a/README.md +++ b/README.md @@ -453,7 +453,7 @@ You can get quite creative with this. ![Inline Styles](docs/inlinestyles.gif) -The **completeExample** example includes a range of examples that you can do with inline styles. +The [completeExample](examples/completeExample/completeExample.cpp) example includes a range of things that you can do with inline styles. ![More Inline Styles](docs/ui_inlinestyles2.png) @@ -483,9 +483,26 @@ is purely visual. Most controls can be grouped this way, but the result is not always visually pleasant. This works best with labels, sliders, switchers, and buttons. -![Other grouped elements](docs/ui_groupedbuttons2.png) +![Other grouped controls](docs/ui_groupedbuttons2.png) -If you group too many elements it might throw the layout of the rest of the UI out of line. Consider adding separators to correct this. +For sliders and switchers, you can also set the controls to be displayed vertically. + +``` +auto vertswitcher = ESPUI.addControl(Switcher, "Vertical Switcher", "0", Dark, tab1); +ESPUI.setVertical(vertswitcher); +``` + +This must be done before `ESPUI.begin()` is called. Vertical layouts are currently only supported for sliders and switchers, and it +is a purely visual change. Behaviour is identical. Mixing horizontal and vertical controls can result in some unpredictable layouts. + +When you add multiple buttons to a single panel, the buttons have a title so they can be differentiated. For sliders and switchers this is +not the case. Therefore you might want to add additional labels so that the controls can be distinguished. There is not yet automatic +support for doing this, so the approach is to add labels that have been styled using [inline styles](#inline-styles). By doing this +you can acheieve effects such as this: + +![Labelling grouped controls](docs/ui_groupedbuttons3.png) + +The code to do this is in the [completeExample](examples/completeExample/completeExample.cpp) example. ### Wide controls diff --git a/data/css/style.css b/data/css/style.css index 11e9ee1..cf04a55 100644 --- a/data/css/style.css +++ b/data/css/style.css @@ -1142,7 +1142,7 @@ text { width: 150px; transform: rotate(270deg); display: inline-block; - margin: 50px -45px 70px -45px; + margin: 50px -42px 70px -42px; } .vert-slider span { diff --git a/data/css/style.min.css b/data/css/style.min.css index 48fe30c..aafda4b 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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -45px 70px -45px}.vert-slider span{transform:rotate(90deg)} \ 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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -42px 70px -42px}.vert-slider span{transform:rotate(90deg)} \ No newline at end of file diff --git a/docs/ui_groupedbuttons3.png b/docs/ui_groupedbuttons3.png new file mode 100644 index 0000000000000000000000000000000000000000..db6090e8f0c6588bb466bc5c80e5c071d17b460d GIT binary patch literal 44312 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 CQ2Va{ literal 0 HcmV?d00001 diff --git a/src/dataStyleCSS.h b/src/dataStyleCSS.h index 1c0182b..b5690b7 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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -45px 70px -45px}.vert-slider span{transform:rotate(90deg)} +.container{position:relative;width:79%;margin:20px;box-sizing:border-box}.column,.columns{width:100%;float:left}.card{min-height:100px;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -42px 70px -42px}.vert-slider span{transform:rotate(90deg)} )====="; -const uint8_t CSS_STYLE_GZIP[3483] PROGMEM = { 31,139,8,0,255,63,235,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,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,156,188,148,89,95,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,191,151,245,83,124,104,218,12,183,22,140,12,118,218,84,231,99,109,142,127,187,11,67,118,29,231,33,201,171,6,245,113,133,243,30,192,80,155,93,142,101,109,21,184,124,42,122,2,64,105,82,66,45,202,202,115,23,71,211,44,5,202,154,151,216,49,130,211,43,253,105,159,14,232,209,115,2,211,221,111,77,119,23,154,142,29,110,146,19,202,50,224,198,34,19,48,22,167,145,150,78,65,135,152,4,192,106,223,55,199,56,160,67,240,153,113,25,82,38,128,243,166,141,239,243,60,31,254,114,196,89,137,30,23,8,215,115,194,211,235,230,98,195,71,188,8,49,9,185,133,135,131,6,107,187,119,214,177,162,208,225,177,208,235,248,32,242,25,146,4,191,223,61,12,131,221,225,148,24,233,208,98,244,60,235,154,113,126,168,80,250,172,135,48,138,246,194,116,28,59,201,168,121,143,104,25,48,158,218,230,92,103,214,40,125,20,69,131,221,159,219,255,156,155,178,195,151,5,32,190,119,209,33,221,167,201,108,116,170,201,123,55,66,206,46,52,124,48,79,215,84,101,54,216,248,136,91,84,101,2,174,135,211,116,235,202,184,222,22,225,200,225,113,79,184,199,109,11,206,215,10,232,126,176,223,101,7,5,125,191,115,14,123,30,253,5,247,168,59,21,168,234,37,244,96,31,98,5,61,245,113,40,204,222,157,107,240,213,23,105,242,220,77,3,39,151,177,113,116,56,56,57,143,13,246,106,27,113,98,28,109,177,231,201,168,153,31,6,142,48,49,170,202,223,81,91,214,34,242,54,72,125,69,223,169,227,239,189,3,143,156,161,246,89,64,12,130,96,23,110,101,68,54,202,35,86,232,128,171,139,54,158,147,151,162,236,177,213,157,80,138,227,186,121,105,209,73,10,82,219,195,199,41,208,98,219,133,79,134,29,144,95,46,252,78,122,252,218,91,32,213,83,29,167,184,6,155,114,209,149,228,144,115,172,23,230,133,91,199,73,42,200,63,115,62,176,125,41,86,33,180,146,172,236,78,21,122,139,203,154,194,30,170,38,125,214,177,8,126,211,151,41,170,198,169,15,168,195,4,33,81,115,91,223,156,98,203,118,67,224,85,13,130,253,126,47,49,225,146,80,101,10,179,200,76,99,122,219,67,118,227,217,56,181,152,62,78,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,15,169,23,237,68,216,166,69,245,147,142,133,12,35,55,12,68,224,55,92,65,96,104,128,241,62,139,2,137,223,211,185,61,85,58,202,251,124,231,131,112,74,158,12,156,49,227,205,139,17,27,223,5,15,154,172,58,231,71,9,154,36,72,101,25,26,205,200,86,2,159,164,233,241,81,156,151,109,215,91,105,81,86,217,12,206,15,78,168,116,89,113,6,187,169,241,76,125,121,63,45,116,129,29,205,255,182,192,71,255,210,200,75,161,111,251,243,63,2,81,128,177,36,24,207,131,7,121,115,110,165,113,223,177,5,234,57,184,176,12,178,23,201,119,229,171,204,34,209,79,135,191,227,90,122,16,70,34,117,26,137,18,76,20,138,228,235,82,81,193,54,32,82,41,212,119,158,68,189,210,176,176,119,37,229,188,224,74,17,145,22,19,170,85,172,190,40,219,108,132,93,81,24,152,131,129,117,34,156,44,22,33,7,203,71,46,66,81,205,53,121,222,225,222,58,188,89,130,39,104,70,59,193,117,118,146,103,44,24,139,143,152,218,81,145,142,187,149,88,93,48,56,79,50,87,198,69,90,94,36,16,224,60,206,212,15,139,232,126,96,175,136,196,57,166,169,31,22,41,5,254,154,80,139,255,154,218,81,145,78,232,137,200,156,139,153,43,227,34,129,200,89,19,137,143,6,115,101,92,162,181,95,19,138,139,26,83,63,44,82,218,138,142,215,107,133,234,87,68,218,69,171,34,85,43,250,145,98,147,167,182,15,215,132,146,67,208,124,231,217,173,126,164,196,171,249,222,195,91,213,47,69,183,185,254,72,245,174,161,232,143,213,133,150,46,80,45,225,56,242,236,240,97,56,52,217,219,8,10,149,245,242,212,181,73,101,33,20,54,66,217,3,43,30,251,156,163,99,89,189,197,119,127,59,225,218,248,21,213,221,157,217,193,111,240,212,182,204,167,162,201,35,53,164,186,244,166,185,147,187,67,225,154,133,103,22,190,89,4,102,17,154,69,52,177,78,74,28,71,170,99,236,176,5,190,120,78,124,199,1,18,156,96,65,43,115,110,123,73,133,123,40,226,104,149,67,234,61,168,156,0,106,40,60,14,207,183,35,13,102,184,134,234,243,168,42,162,191,134,23,112,120,158,173,97,214,215,76,233,236,40,110,120,225,45,180,83,113,117,168,33,69,141,4,212,80,69,141,100,84,103,181,114,17,212,29,42,138,12,108,79,213,16,85,174,40,189,175,200,228,173,176,58,12,39,193,41,6,52,110,25,239,93,140,112,118,24,80,92,52,100,207,53,142,58,57,114,82,60,28,206,224,51,245,69,91,124,79,149,191,171,110,223,125,97,47,173,47,175,71,218,49,74,73,53,126,209,238,67,147,30,42,212,46,111,218,99,76,223,65,229,142,255,241,24,128,6,141,249,243,63,233,231,225,254,8,133,224,95,49,2,46,180,236,14,247,80,44,254,218,163,254,220,45,125,142,178,46,32,200,122,46,106,237,45,68,237,200,154,105,143,226,75,27,1,98,121,62,55,216,62,55,194,202,76,58,52,216,103,43,63,87,21,51,61,95,193,172,52,80,206,22,105,1,112,40,75,71,224,125,180,19,65,161,51,95,88,167,133,190,159,159,16,46,47,124,11,166,103,59,178,139,178,71,27,138,150,119,19,230,229,146,248,212,55,39,131,51,238,156,233,35,65,114,167,237,165,113,143,93,242,26,150,58,61,70,57,204,98,218,109,243,50,189,61,91,105,126,33,0,192,64,124,119,55,111,244,122,116,168,112,146,86,24,181,32,109,95,48,42,109,83,233,246,43,89,198,59,89,121,68,79,56,38,182,71,100,67,4,62,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,158,28,78,106,103,141,168,178,134,197,194,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,30,208,126,54,112,236,195,222,29,157,251,38,89,235,3,238,137,79,143,86,48,206,213,101,105,224,61,204,217,192,225,98,182,109,32,222,240,99,16,102,248,105,179,96,86,229,69,84,50,33,96,16,118,29,85,215,22,17,193,186,69,215,26,25,181,121,107,228,154,88,150,100,60,210,238,137,139,50,203,112,157,76,189,192,7,94,76,224,55,174,251,130,109,9,31,189,205,69,17,112,239,136,2,202,56,190,6,199,186,134,20,104,144,220,157,138,132,38,51,120,212,12,106,155,67,153,153,217,99,20,150,96,45,244,198,85,192,228,6,242,38,133,148,169,196,156,206,229,56,58,23,53,140,198,88,133,138,108,182,11,51,8,201,190,16,226,85,102,184,248,248,103,223,224,170,31,181,137,68,71,50,156,54,45,162,114,214,80,182,177,193,185,87,188,234,44,193,134,105,131,105,200,118,195,110,225,152,188,129,173,255,241,71,101,151,80,147,94,64,69,155,31,158,77,188,255,121,54,217,65,164,177,34,25,172,204,151,68,83,31,47,182,88,49,60,59,39,58,192,2,113,238,89,15,142,96,141,91,118,62,191,76,6,145,61,114,30,95,113,204,123,140,241,96,119,47,101,159,22,218,74,192,248,83,121,60,53,109,143,234,94,83,153,28,48,121,73,171,64,32,30,71,76,118,115,168,54,232,145,4,104,131,188,108,127,195,23,62,233,185,237,224,253,169,41,169,239,170,110,63,150,104,132,254,20,197,209,114,84,241,110,117,177,154,165,35,82,143,65,109,127,120,46,123,139,243,119,89,86,195,246,58,3,163,14,91,64,184,57,247,137,117,108,126,255,24,66,243,65,250,221,135,224,63,0,59,25,220,78,11,156,62,107,155,165,219,40,243,220,108,2,52,202,250,116,238,255,213,191,157,240,207,119,20,9,236,123,247,219,236,48,52,173,72,230,155,151,59,208,47,235,199,144,3,20,189,83,239,224,201,84,185,145,142,99,89,95,214,1,23,98,26,179,145,135,6,108,95,222,183,213,10,84,115,11,165,238,58,208,53,0,89,255,70,86,126,191,176,13,254,142,136,63,42,29,212,16,31,48,44,70,226,177,146,184,71,136,169,108,114,126,5,93,153,4,208,112,224,143,67,94,6,201,78,27,1,113,212,222,140,196,136,152,148,101,66,128,190,97,117,172,201,26,213,29,12,63,58,148,242,134,31,162,153,111,156,104,163,157,228,83,12,54,159,67,3,19,125,6,79,197,153,132,215,99,178,227,65,174,126,167,134,17,50,161,39,31,204,58,203,177,172,144,3,231,122,126,138,154,221,106,172,88,225,20,3,214,126,14,27,146,7,5,191,161,219,5,209,109,40,243,55,122,14,19,148,89,250,199,122,14,243,17,141,243,128,75,125,192,115,174,48,216,124,14,109,213,115,222,199,123,207,115,116,152,82,57,79,183,255,138,7,120,243,202,22,211,130,158,56,15,121,163,113,139,233,200,157,248,64,251,124,204,172,14,252,145,219,217,143,29,8,101,5,228,214,84,178,142,10,253,181,191,55,32,66,195,55,215,4,218,194,138,64,15,198,96,57,144,55,8,171,156,46,11,56,121,219,144,6,80,255,70,78,39,174,204,240,147,125,163,100,92,27,96,170,20,182,74,223,197,245,181,39,250,172,166,153,154,81,227,114,22,231,96,227,205,229,102,6,199,89,3,101,82,103,184,89,74,99,252,107,229,101,85,173,137,44,169,214,73,248,109,230,185,35,253,53,92,225,180,103,107,244,239,176,2,101,248,53,118,63,206,68,129,234,172,194,23,105,149,215,231,40,234,188,236,196,105,50,69,200,217,60,148,138,54,107,167,168,137,148,185,220,50,138,170,106,46,98,214,165,242,190,102,52,89,84,150,109,109,122,85,229,26,141,24,204,67,90,48,217,236,1,26,199,114,200,139,43,168,63,78,85,112,9,243,243,232,162,49,51,156,163,115,213,95,41,245,127,48,247,243,7,122,18,254,101,89,68,114,98,101,250,199,11,99,151,157,197,90,179,95,22,100,33,197,57,224,173,81,244,195,196,248,193,214,89,35,44,217,73,159,2,104,59,134,0,12,95,101,99,110,159,47,53,25,161,203,59,254,50,99,151,162,10,63,186,155,53,47,153,72,195,156,105,139,251,89,50,57,200,212,213,73,159,133,111,164,39,41,112,165,72,116,183,246,92,39,6,179,255,144,227,148,201,127,124,101,227,75,164,182,26,216,52,67,201,1,202,167,213,74,178,254,68,181,150,66,109,209,161,212,77,187,14,161,217,219,9,139,192,202,248,245,21,224,115,106,102,17,230,233,84,54,138,64,122,79,215,196,212,192,12,95,247,1,163,59,161,181,13,243,86,89,136,157,165,185,56,223,45,91,106,64,181,133,168,202,43,52,170,215,26,216,75,85,55,83,80,214,109,186,1,209,140,118,234,160,60,240,7,217,153,169,146,211,137,39,47,254,55,146,149,178,184,35,102,106,111,142,72,174,151,21,72,233,251,195,51,73,46,203,242,192,178,91,244,212,2,56,36,109,210,249,151,179,110,235,209,89,151,115,196,71,15,138,103,211,242,200,37,223,228,99,224,63,82,72,102,175,201,213,222,207,167,211,231,249,178,174,164,47,181,74,96,87,117,111,34,58,222,225,189,74,146,221,224,253,242,189,221,27,56,90,102,184,206,20,165,255,229,219,192,55,48,181,204,112,157,41,74,255,171,119,140,111,224,105,158,224,42,75,140,252,151,46,46,223,192,15,163,126,149,25,70,251,139,87,161,111,96,103,162,127,149,33,70,125,160,101,217,124,197,135,30,145,26,236,20,124,60,46,29,143,62,201,233,11,87,217,174,158,216,39,243,61,252,47,156,50,112,186,97,223,137,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,119,32,34,124,28,153,164,252,115,11,59,61,22,17,238,52,145,227,68,190,18,112,199,155,90,164,49,253,203,185,178,107,244,189,124,162,39,136,203,221,45,241,158,131,207,125,141,100,145,121,122,184,244,72,201,53,21,169,77,52,8,19,144,243,238,170,236,128,147,254,173,194,108,241,95,46,99,136,39,59,100,197,148,145,167,147,175,78,184,219,33,67,25,232,162,200,255,238,181,29,98,29,218,213,24,157,125,183,219,37,205,185,39,144,228,16,95,119,204,42,164,43,159,188,110,233,161,146,94,161,51,181,15,243,182,57,62,146,35,186,141,217,55,240,38,32,47,169,77,170,107,226,18,20,115,2,127,175,83,41,2,90,167,18,228,190,17,90,213,252,184,64,163,203,88,148,89,228,110,100,223,141,167,67,84,111,244,238,191,160,25,226,16,159,83,11,152,128,169,5,72,220,162,19,128,55,41,236,187,10,89,160,174,106,99,6,29,32,76,236,30,234,238,177,141,251,11,57,207,153,131,129,22,87,195,61,121,14,250,138,241,241,212,191,9,251,94,72,195,100,251,58,117,109,167,8,147,134,151,132,35,62,248,246,141,125,47,97,210,28,58,157,128,77,84,167,99,240,48,60,216,126,164,180,211,110,88,6,84,232,80,134,109,132,19,58,105,51,71,186,178,179,119,47,97,173,103,237,219,183,239,136,124,57,67,31,64,43,189,89,95,252,6,153,112,18,78,191,128,166,238,68,212,91,115,19,103,225,152,148,133,43,219,180,156,86,217,28,143,70,174,156,47,90,219,57,199,207,45,85,135,107,211,15,49,243,50,54,1,212,185,233,243,252,133,49,150,149,71,0,122,238,14,251,253,26,183,166,58,14,74,198,203,55,205,134,238,251,147,212,231,85,27,217,204,3,222,44,244,90,118,198,9,245,133,105,191,46,31,46,29,36,191,103,28,131,151,190,37,236,253,116,39,46,33,29,158,209,225,72,67,31,119,19,112,215,99,92,145,239,215,136,24,62,143,145,161,30,89,52,176,59,35,45,219,180,194,87,176,61,134,77,35,94,68,39,150,149,2,64,165,62,94,176,164,52,86,102,136,214,241,126,18,230,16,110,54,210,39,204,185,234,180,0,247,195,53,20,66,228,139,80,22,59,63,35,55,253,228,13,141,183,165,87,137,18,238,182,31,223,127,27,215,57,143,126,93,134,145,18,130,54,164,14,189,70,84,27,55,99,168,17,76,195,34,1,107,108,231,183,194,28,108,11,180,118,203,234,191,69,123,190,155,176,58,0,0 }; +const uint8_t CSS_STYLE_GZIP[3484] PROGMEM = { 31,139,8,0,139,29,244,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,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,156,188,148,89,95,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,191,151,245,83,124,104,218,12,183,22,140,12,118,218,84,231,99,109,142,127,187,11,67,118,29,231,33,201,171,6,245,113,133,243,30,192,80,155,93,142,101,109,21,184,124,42,122,2,64,105,82,66,45,202,202,115,23,71,211,44,5,202,154,151,216,49,130,211,43,253,105,159,14,232,209,115,2,211,221,111,77,119,23,154,142,29,110,146,19,202,50,224,198,34,19,48,22,167,145,150,78,65,135,152,4,192,106,223,55,199,56,160,67,240,153,113,25,82,38,128,243,166,141,239,243,60,31,254,114,196,89,137,30,23,8,215,115,194,211,235,230,98,195,71,188,8,49,9,185,133,135,131,6,107,187,119,214,177,162,208,225,177,208,235,248,32,242,25,146,4,191,223,61,12,131,221,225,148,24,233,208,98,244,60,235,154,113,126,168,80,250,172,135,48,138,246,194,116,28,59,201,168,121,143,104,25,48,158,218,230,92,103,214,40,125,20,69,131,221,159,219,255,156,155,178,195,151,5,32,190,119,209,33,221,167,201,108,116,170,201,123,55,66,206,46,52,124,48,79,215,84,101,54,216,248,136,91,84,101,2,174,135,211,116,235,202,184,222,22,225,200,225,113,79,184,199,109,11,206,215,10,232,126,176,223,101,7,5,125,191,115,14,123,30,253,5,247,168,59,21,168,234,37,244,96,31,98,5,61,245,113,40,204,222,157,107,240,213,23,105,242,220,77,3,39,151,177,113,116,56,56,57,143,13,246,106,27,113,98,28,109,177,231,201,168,153,31,6,142,48,49,170,202,223,81,91,214,34,242,54,72,125,69,223,169,227,239,189,3,143,156,161,246,89,64,12,130,96,23,110,101,68,54,202,35,86,232,128,171,139,54,158,147,151,162,236,177,213,157,80,138,227,186,121,105,209,73,10,82,219,195,199,41,208,98,219,133,79,134,29,144,95,46,252,78,122,252,218,91,32,213,83,29,167,184,6,155,114,209,149,228,144,115,172,23,230,133,91,199,73,42,200,63,115,62,176,125,41,86,33,180,146,172,236,78,21,122,139,203,154,194,30,170,38,125,214,177,8,126,211,151,41,170,198,169,15,168,195,4,33,81,115,91,223,156,98,203,118,67,224,85,13,130,253,126,47,49,225,146,80,101,10,179,200,76,99,122,219,67,118,227,217,56,181,152,62,78,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,15,169,23,237,68,216,166,69,245,147,142,133,12,35,55,12,68,224,55,92,65,96,104,128,241,62,139,2,137,223,211,185,61,85,58,202,251,124,231,131,112,74,158,12,156,49,227,205,139,17,27,223,5,15,154,172,58,231,71,9,154,36,72,101,25,26,205,200,86,2,159,164,233,241,81,156,151,109,215,91,105,81,86,217,12,206,15,78,168,116,89,113,6,187,169,241,76,125,121,63,45,116,129,29,205,255,182,192,71,255,210,200,75,161,111,251,243,63,2,81,128,177,36,24,207,131,7,121,115,110,165,113,223,177,5,234,57,184,176,12,178,23,201,119,229,171,204,34,209,79,135,191,227,90,122,16,70,34,117,26,137,18,76,20,138,228,235,82,81,193,54,32,82,41,212,119,158,68,189,210,176,176,119,37,229,188,224,74,17,145,22,19,170,85,172,190,40,219,108,132,93,81,24,152,131,129,117,34,156,44,22,33,7,203,71,46,66,81,205,53,121,222,225,222,58,188,89,130,39,104,70,59,193,117,118,146,103,44,24,139,143,152,218,81,145,142,187,149,88,93,48,56,79,50,87,198,69,90,94,36,16,224,60,206,212,15,139,232,126,96,175,136,196,57,166,169,31,22,41,5,254,154,80,139,255,154,218,81,145,78,232,137,200,156,139,153,43,227,34,129,200,89,19,137,143,6,115,101,92,162,181,95,19,138,139,26,83,63,44,82,218,138,142,215,107,133,234,87,68,218,69,171,34,85,43,250,145,98,147,167,182,15,215,132,146,67,208,124,231,217,173,126,164,196,171,249,222,195,91,213,47,69,183,185,254,72,245,174,161,232,143,213,133,150,46,80,45,225,56,242,236,240,97,56,52,217,219,8,10,149,245,242,212,181,73,101,33,20,54,66,217,3,43,30,251,156,163,99,89,189,197,119,127,59,225,218,248,21,213,221,157,217,193,111,240,212,182,204,167,162,201,35,53,164,186,244,166,185,147,187,67,225,154,133,103,22,190,89,4,102,17,154,69,52,177,78,74,28,71,170,99,236,176,5,190,120,78,124,199,1,18,156,96,65,43,115,110,123,73,133,123,40,226,104,149,67,234,61,168,156,0,106,40,60,14,207,183,35,13,102,184,134,234,243,168,42,162,191,134,23,112,120,158,173,97,214,215,76,233,236,40,110,120,225,45,180,83,113,117,168,33,69,141,4,212,80,69,141,100,84,103,181,114,17,212,29,42,138,12,108,79,213,16,85,174,40,189,175,200,228,173,176,58,12,39,193,41,6,52,110,25,239,93,140,112,118,24,80,92,52,100,207,53,142,58,57,114,82,60,28,206,224,51,245,69,91,124,79,149,191,171,110,223,125,97,47,173,47,175,71,218,49,74,73,53,126,209,238,67,147,30,42,212,46,111,218,99,76,223,65,229,142,255,241,24,128,6,141,249,243,63,233,231,225,254,8,133,224,95,49,2,46,180,236,14,247,80,44,254,218,163,254,220,45,125,142,178,46,32,200,122,46,106,237,45,68,237,200,154,105,143,226,75,27,1,98,121,62,55,216,62,55,194,202,76,58,52,216,103,43,63,87,21,51,61,95,193,172,52,80,206,22,105,1,112,40,75,71,224,125,180,19,65,161,51,95,88,167,133,190,159,159,16,46,47,124,11,166,103,59,178,139,178,71,27,138,150,119,19,230,229,146,248,212,55,39,131,51,238,156,233,35,65,114,167,237,165,113,143,93,242,26,150,58,61,70,57,204,98,218,109,243,50,189,61,91,105,126,33,0,192,64,124,119,55,111,244,122,116,168,112,146,86,24,181,32,109,95,48,42,109,83,233,246,43,89,198,59,89,121,68,79,56,38,182,71,100,67,4,62,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,158,28,78,106,103,141,168,178,134,197,194,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,30,208,126,54,112,236,195,222,29,157,251,38,89,235,3,238,137,79,143,86,48,206,213,101,105,224,61,204,217,192,225,98,182,109,32,222,240,99,16,102,248,105,179,96,86,229,69,84,50,33,96,16,118,29,85,215,22,17,193,186,69,215,26,25,181,121,107,228,154,88,150,100,60,210,238,137,139,50,203,112,157,76,189,192,7,94,76,224,55,174,251,130,109,9,31,189,205,69,17,112,239,136,2,202,56,190,6,199,186,134,20,104,144,220,157,138,132,38,51,120,212,12,106,155,67,153,153,217,99,20,150,96,45,244,198,85,192,228,6,242,38,133,148,169,196,156,206,229,56,58,23,53,140,198,88,133,138,108,182,11,51,8,201,190,16,226,85,102,184,248,248,103,223,224,170,31,181,137,68,71,50,156,54,45,162,114,214,80,182,177,193,185,87,188,234,44,193,134,105,131,105,200,118,195,110,225,152,188,129,173,255,241,71,101,151,80,147,94,64,69,155,31,158,77,188,255,121,54,217,65,164,177,34,25,172,204,151,68,83,31,47,182,88,49,60,59,39,58,192,2,113,238,89,15,142,96,141,91,118,62,191,76,6,145,61,114,30,95,113,204,123,140,241,96,119,47,101,159,22,218,74,192,248,83,121,60,53,109,143,234,94,83,153,28,48,121,73,171,64,32,30,71,76,118,115,168,54,232,145,4,104,131,188,108,127,195,23,62,233,185,237,224,253,169,41,169,239,170,110,63,150,104,132,254,20,197,209,114,84,241,110,117,177,154,165,35,82,143,65,109,127,120,46,123,139,243,119,89,86,195,246,58,3,163,14,91,64,184,57,247,137,117,108,126,255,24,66,243,65,250,221,135,224,63,0,59,25,220,78,11,156,62,107,155,165,219,40,243,220,108,2,52,202,250,116,238,255,213,191,157,240,207,119,20,9,236,123,247,219,236,48,52,173,72,230,155,151,59,208,47,235,199,144,3,20,189,83,239,224,201,84,185,145,142,99,89,95,214,1,23,98,26,179,145,135,6,108,95,222,183,213,10,84,115,11,165,238,58,208,53,0,89,255,70,86,126,191,176,13,254,142,136,63,42,29,212,16,31,48,44,70,226,177,146,184,71,136,169,108,114,126,5,93,153,4,208,112,224,143,67,94,6,201,78,27,1,113,212,222,140,196,136,152,148,101,66,128,190,97,117,172,201,26,213,29,12,63,58,148,242,134,31,162,153,111,156,104,163,157,228,83,12,54,159,67,3,19,125,6,79,197,153,132,215,99,178,227,65,174,126,167,134,17,50,161,39,31,204,58,203,177,172,144,3,231,122,126,138,154,221,106,172,88,225,20,3,214,126,14,27,146,7,5,191,161,219,5,209,109,40,243,55,122,14,19,148,89,250,199,122,14,243,17,141,243,128,75,125,192,115,174,48,216,124,14,109,213,115,222,199,123,207,115,116,152,82,57,79,183,255,138,7,120,243,202,22,211,130,158,56,15,121,163,113,139,233,200,157,248,64,251,124,204,172,14,252,145,219,217,143,29,8,101,5,228,214,84,178,142,10,253,181,191,55,32,66,195,55,215,4,218,194,138,64,15,198,96,57,144,55,8,171,156,46,11,56,121,219,144,6,80,255,70,78,39,174,204,240,147,125,163,100,92,27,96,170,20,182,74,223,197,245,181,39,250,172,166,153,154,81,227,114,22,231,96,227,205,229,102,6,199,89,3,101,82,103,184,89,74,99,252,107,229,101,85,173,137,44,169,214,73,248,109,230,185,35,253,53,92,225,180,103,107,244,239,176,2,101,248,53,118,63,206,68,129,234,172,194,23,105,149,215,231,40,234,188,236,196,105,50,69,200,217,60,148,138,54,107,167,168,137,148,185,220,50,138,170,106,46,98,214,165,242,190,102,52,89,84,150,109,109,122,85,229,26,141,24,204,67,90,48,217,236,1,26,199,114,200,139,43,168,63,78,85,112,9,243,243,232,162,49,51,156,163,115,213,95,41,245,127,48,247,243,7,122,18,254,101,89,68,114,98,101,250,199,11,99,151,157,197,90,179,95,22,100,33,197,57,224,173,81,244,195,196,248,193,214,89,35,44,217,73,159,2,104,59,134,0,12,95,101,99,110,159,47,53,25,161,203,59,254,50,99,151,162,10,63,186,155,53,47,153,72,195,156,105,139,251,89,50,57,200,212,213,73,159,133,111,164,39,41,112,165,72,116,183,246,92,39,6,179,255,144,227,148,201,127,124,101,227,75,164,182,26,216,52,67,201,1,202,167,213,74,178,254,68,181,150,66,109,209,161,212,77,187,14,161,217,219,9,139,192,202,248,245,21,224,115,106,102,17,230,233,84,54,138,64,122,79,215,196,212,192,12,95,247,1,163,59,161,181,13,243,86,89,136,157,165,185,56,223,45,91,106,64,181,133,168,202,43,52,170,215,26,216,75,85,55,83,80,214,109,186,1,209,140,118,234,160,60,240,7,217,153,169,146,211,137,39,47,254,55,146,149,178,184,35,102,106,111,142,72,174,151,21,72,233,251,195,51,73,46,203,242,192,178,91,244,212,2,56,36,109,210,249,151,179,110,235,209,89,151,115,196,71,15,138,103,211,242,200,37,223,228,99,224,63,82,72,102,175,201,213,222,207,167,211,231,249,178,174,164,47,181,74,96,87,117,111,34,58,222,225,189,74,146,221,224,253,242,189,221,27,56,90,102,184,206,20,165,255,229,219,192,55,48,181,204,112,157,41,74,255,171,119,140,111,224,105,158,224,42,75,140,252,151,46,46,223,192,15,163,126,149,25,70,251,139,87,161,111,96,103,162,127,149,33,70,125,160,101,217,124,197,135,30,145,26,236,20,124,60,46,29,143,62,201,233,11,87,217,174,158,216,39,243,61,252,47,156,50,112,186,97,223,137,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,119,32,34,124,28,153,164,252,115,11,59,61,22,17,238,52,145,227,68,190,18,112,199,155,90,164,49,253,203,185,178,107,244,189,124,162,39,136,203,221,45,241,158,131,207,125,141,100,145,121,122,184,244,72,201,53,21,169,77,52,8,19,144,243,238,170,236,128,147,254,173,194,108,241,95,46,99,136,39,59,100,197,148,145,167,147,175,78,184,219,33,67,25,232,162,200,255,238,181,29,98,29,218,213,24,157,125,183,219,37,205,185,39,144,228,16,95,119,204,42,164,43,159,188,110,233,161,146,94,161,51,181,15,243,182,57,62,146,35,186,141,217,55,240,38,32,47,169,77,170,107,226,18,20,115,2,127,175,83,41,2,90,167,18,228,190,17,90,213,252,184,64,163,203,88,148,89,228,110,100,223,141,167,67,84,111,244,238,191,160,25,226,16,159,83,11,152,128,169,5,72,220,162,19,128,55,41,236,187,10,89,160,174,106,99,6,29,32,76,236,30,234,238,177,141,251,11,57,207,153,131,129,22,87,195,61,121,14,250,138,241,241,212,191,9,251,94,72,195,100,251,58,117,109,167,8,147,134,151,132,35,62,248,246,141,125,47,97,210,28,58,157,128,77,84,167,99,240,48,60,216,126,164,180,211,110,88,6,84,232,80,134,109,132,19,58,105,51,71,186,178,179,119,47,97,173,103,237,219,183,239,136,124,57,67,31,64,43,189,89,95,252,6,153,112,18,78,191,128,166,238,68,212,91,115,19,103,225,152,148,133,43,219,180,156,86,217,28,143,70,174,156,47,90,219,57,199,207,45,85,135,107,211,15,49,243,50,54,1,212,185,233,243,252,133,49,150,149,71,0,122,238,14,251,253,26,183,166,58,14,74,198,203,55,205,134,238,251,147,212,231,85,27,217,204,3,222,44,244,90,118,198,9,245,133,105,191,46,31,46,29,36,191,103,28,131,151,190,37,236,253,116,39,46,33,29,158,209,225,72,67,31,119,19,112,215,99,92,145,239,215,136,24,62,143,145,161,30,89,52,176,59,35,45,219,180,194,87,176,61,134,77,35,94,68,39,150,149,2,64,165,62,94,176,164,52,86,102,136,214,241,126,18,230,16,110,54,210,39,204,185,234,180,0,247,195,53,20,66,228,139,80,22,59,63,35,55,253,228,13,141,183,165,87,137,18,238,182,31,223,127,27,215,57,143,126,93,134,145,18,130,54,164,14,189,70,84,27,55,99,168,17,76,195,10,72,213,177,157,223,10,115,176,45,208,218,45,171,255,2,193,128,231,116,176,58,0,0 }; From a797ae1afa2dc89bd63c9223f4e344d2526deee4 Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Fri, 28 Jan 2022 16:47:19 +0000 Subject: [PATCH 6/8] Update example with vertical controls and more documentation --- examples/completeExample/completeExample.cpp | 163 +++++++++++-------- 1 file changed, 92 insertions(+), 71 deletions(-) diff --git a/examples/completeExample/completeExample.cpp b/examples/completeExample/completeExample.cpp index 4a44f11..f6d9aa5 100644 --- a/examples/completeExample/completeExample.cpp +++ b/examples/completeExample/completeExample.cpp @@ -3,7 +3,7 @@ * @author Ian Gray @iangray1000 * * This is an example GUI to show off all of the features of ESPUI. - * This can be built using the Arduino IDE, or Platform IO. + * This can be built using the Arduino IDE, or PlatformIO. * * --------------------------------------------------------------------------------------- * If you just want to see examples of the ESPUI code, jump down to the setUpUI() function @@ -59,65 +59,6 @@ volatile bool updates = false; -void setup() { - randomSeed(0); - Serial.begin(115200); - while(!Serial); - if(SLOW_BOOT) delay(5000); //Delay booting to give time to connect a serial monitor - connectWifi(); - #if defined(ESP32) - WiFi.setSleep(false); //For the ESP32: turn off sleeping to increase UI responsivness (at the cost of power use) - #endif - setUpUI(); -} - -void loop() { - static long unsigned lastTime = 0; - - //Send periodic updates if switcher is turned on - if(updates && millis() > lastTime + 500) { - static uint16_t sliderVal = 10; - - //Flick this switcher on and off - ESPUI.updateSwitcher(mainSwitcher, ESPUI.getControl(mainSwitcher)->value.toInt() ? false : true); - sliderVal += 10; - if(sliderVal > 400) sliderVal = 10; - - //Sliders, numbers, and labels can all be updated at will - ESPUI.updateSlider(mainSlider, sliderVal); - ESPUI.updateNumber(mainNumber, random(100000)); - ESPUI.updateLabel(mainLabel, String(sliderVal)); - lastTime = millis(); - } - - //Simple debug UART interface - if(Serial.available()) { - switch(Serial.read()) { - case 'w': //Print IP details - Serial.println(WiFi.localIP()); - break; - case 'W': //Reconnect wifi - connectWifi(); - break; - case 'C': //Force a crash (for testing exception decoder) - #if !defined(ESP32) - ((void (*)())0xf00fdead)(); - #endif - default: - Serial.print('#'); - break; - } - } - - #if !defined(ESP32) - //We don't need to call this explicitly on ESP32 but we do on 8266 - MDNS.update(); - #endif - -} - - - // This is the main function which builds our GUI void setUpUI() { //Turn off verbose debugging @@ -221,7 +162,7 @@ void setUpUI() { /* * Tab: Grouped controls * This tab shows how multiple control can be grouped into the same panel through the use of the - * parentControl value. + * parentControl value. This also shows how to add labels to grouped controls, and how to use vertical controls. *-----------------------------------------------------------------------------------------------------------*/ auto grouptab = ESPUI.addControl(Tab, "", "Grouped controls"); @@ -232,29 +173,36 @@ void setUpUI() { ESPUI.addControl(Button, "", "Button B", Alizarin, groupbutton, generalCallback); ESPUI.addControl(Button, "", "Button C", Alizarin, groupbutton, generalCallback); + //Sliders can be grouped as well + //To label each slider in the group, we are going add additional labels and give them custom CSS styles + //We need this CSS style rule, which will remove the label's background and ensure that it takes up the entire width of the panel String clearLabelStyle = "background-color: unset; width: 100%;"; + //First we add the main slider to create a panel auto groupsliders = ESPUI.addControl(Slider, "Slider Group", "10", Dark, grouptab, generalCallback); + //Then we add a label and set its style to the clearLabelStyle. Here we've just given it the name "A" ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, groupsliders), clearLabelStyle); + //We can now continue to add additional sliders and labels ESPUI.addControl(Slider, "", "20", None, groupsliders, generalCallback); ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, groupsliders), clearLabelStyle); ESPUI.addControl(Slider, "", "30", None, groupsliders, generalCallback); ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, groupsliders), clearLabelStyle); - //We can put 4 switchers next to each other, but as they lack labels it can be hard to see - //which is which. We can add labels to them with some label controls and styling. + //We can also usefully group switchers. auto groupswitcher = ESPUI.addControl(Switcher, "Switcher Group", "0", Dark, grouptab, generalCallback); ESPUI.addControl(Switcher, "", "1", Sunflower, groupswitcher, generalCallback); ESPUI.addControl(Switcher, "", "0", Sunflower, groupswitcher, generalCallback); ESPUI.addControl(Switcher, "", "1", Sunflower, groupswitcher, generalCallback); - //This label does nothing apart from put the next 4 onto the next line + //To label these switchers we need to first go onto a "new line" below the line of switchers + //To do this we add an empty label set to be clear and full width (with our clearLabelStyle) ESPUI.setElementStyle(ESPUI.addControl(Label, "", "", None, groupswitcher), clearLabelStyle); - //They are set to the same width as a switcher so appear below them - String labelStyle = "width: 60px; margin-left: .3rem; margin-right: .3rem; background-color: unset;"; - ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, groupswitcher), labelStyle); - ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, groupswitcher), labelStyle); - ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, groupswitcher), labelStyle); - ESPUI.setElementStyle(ESPUI.addControl(Label, "", "D", None, groupswitcher), labelStyle); + //We will now need another label style. This one sets its width to the same as a switcher (and turns off the background) + String switcherLabelStyle = "width: 60px; margin-left: .3rem; margin-right: .3rem; background-color: unset;"; + //We can now just add the styled labels. + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, groupswitcher), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, groupswitcher), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, groupswitcher), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "D", None, groupswitcher), switcherLabelStyle); //You can mix and match different control types, but the results might sometimes //need additional styling to lay out nicely. @@ -272,14 +220,26 @@ void setUpUI() { ESPUI.setVertical(ESPUI.addControl(Switcher, "", "0", None, vertgroupswitcher, generalCallback)); ESPUI.setVertical(ESPUI.addControl(Switcher, "", "0", None, vertgroupswitcher, generalCallback)); ESPUI.setVertical(ESPUI.addControl(Switcher, "", "0", None, vertgroupswitcher, generalCallback)); + //The mechanism for labelling vertical switchers is the same as we used above for horizontal ones + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "", None, vertgroupswitcher), clearLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, vertgroupswitcher), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, vertgroupswitcher), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, vertgroupswitcher), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "D", None, vertgroupswitcher), switcherLabelStyle); auto vertgroupslider = ESPUI.addControl(Slider, "Vertical Slider Group", "15", Dark, grouptab, generalCallback); ESPUI.setVertical(vertgroupslider); ESPUI.setVertical(ESPUI.addControl(Slider, "", "25", None, vertgroupslider, generalCallback)); ESPUI.setVertical(ESPUI.addControl(Slider, "", "35", None, vertgroupslider, generalCallback)); ESPUI.setVertical(ESPUI.addControl(Slider, "", "45", None, vertgroupslider, generalCallback)); - //Note that combining vertical and horizontal sliders is going to result in very messy layout! + //The mechanism for labelling vertical sliders is the same as we used above for switchers + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "", None, vertgroupslider), clearLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "A", None, vertgroupslider), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "B", None, vertgroupslider), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "C", None, vertgroupslider), switcherLabelStyle); + ESPUI.setElementStyle(ESPUI.addControl(Label, "", "D", None, vertgroupslider), switcherLabelStyle); + //Note that combining vertical and horizontal sliders is going to result in very messy layout! /* * Tab: Example UI @@ -401,6 +361,67 @@ void generalCallback(Control *sender, int type) { } + +void setup() { + randomSeed(0); + Serial.begin(115200); + while(!Serial); + if(SLOW_BOOT) delay(5000); //Delay booting to give time to connect a serial monitor + connectWifi(); + #if defined(ESP32) + WiFi.setSleep(false); //For the ESP32: turn off sleeping to increase UI responsivness (at the cost of power use) + #endif + setUpUI(); +} + +void loop() { + static long unsigned lastTime = 0; + + //Send periodic updates if switcher is turned on + if(updates && millis() > lastTime + 500) { + static uint16_t sliderVal = 10; + + //Flick this switcher on and off + ESPUI.updateSwitcher(mainSwitcher, ESPUI.getControl(mainSwitcher)->value.toInt() ? false : true); + sliderVal += 10; + if(sliderVal > 400) sliderVal = 10; + + //Sliders, numbers, and labels can all be updated at will + ESPUI.updateSlider(mainSlider, sliderVal); + ESPUI.updateNumber(mainNumber, random(100000)); + ESPUI.updateLabel(mainLabel, String(sliderVal)); + lastTime = millis(); + } + + //Simple debug UART interface + if(Serial.available()) { + switch(Serial.read()) { + case 'w': //Print IP details + Serial.println(WiFi.localIP()); + break; + case 'W': //Reconnect wifi + connectWifi(); + break; + case 'C': //Force a crash (for testing exception decoder) + #if !defined(ESP32) + ((void (*)())0xf00fdead)(); + #endif + default: + Serial.print('#'); + break; + } + } + + #if !defined(ESP32) + //We don't need to call this explicitly on ESP32 but we do on 8266 + MDNS.update(); + #endif + +} + + + + //Utilities // //If you are here just to see examples of how to use ESPUI, you can ignore the following functions From f2fa9ba6524f4d22a6983541e97f3842a9e3224e Mon Sep 17 00:00:00 2001 From: Ian Gray Date: Fri, 28 Jan 2022 16:57:04 +0000 Subject: [PATCH 7/8] Update header files --- src/dataControlsJS.h | 2 +- src/dataStyleCSS.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/dataControlsJS.h b/src/dataControlsJS.h index c091fc5..30bbef2 100644 --- a/src/dataControlsJS.h +++ b/src/dataControlsJS.h @@ -95,4 +95,4 @@ data.value+"
";case UI_NUMBER:return"
";default:return"";}}
 )=====";
 
-const uint8_t JS_CONTROLS_GZIP[3941] PROGMEM = { 31,139,8,0,255,63,235,97,2,255,197,91,91,119,218,72,18,126,247,175,80,148,57,65,172,49,151,220,38,3,150,115,8,38,9,59,216,120,13,158,204,217,76,214,71,136,198,232,88,72,26,73,248,50,14,255,125,171,171,47,234,22,2,51,120,102,247,37,70,213,165,234,175,171,186,187,110,138,27,6,73,106,92,244,46,123,167,189,81,175,221,191,252,116,209,179,95,214,235,45,87,12,156,119,251,131,246,49,208,26,130,118,118,220,30,117,47,7,31,63,14,187,35,187,161,242,118,127,29,117,79,143,153,140,134,66,31,245,70,221,190,173,16,206,64,98,78,30,146,178,73,122,151,29,74,121,169,51,117,24,215,203,140,235,195,197,104,52,56,181,95,233,124,156,218,168,191,202,56,251,237,15,0,226,181,206,200,136,141,250,235,140,111,248,165,55,234,124,238,158,219,111,116,86,73,111,212,223,40,220,253,222,49,208,222,230,120,25,181,81,127,155,113,158,94,156,124,0,218,143,58,39,167,54,234,63,42,234,2,61,130,65,206,46,70,246,59,157,91,25,105,212,223,101,111,124,58,111,159,125,182,127,226,132,246,241,49,163,92,158,13,122,167,148,149,15,116,250,221,246,57,103,110,212,127,82,102,108,127,176,27,57,131,48,154,98,144,97,183,223,237,128,180,156,77,4,185,161,88,101,112,54,234,81,253,231,204,34,200,13,197,44,39,61,32,228,172,130,180,134,98,147,147,246,175,118,35,103,15,164,53,84,83,140,186,103,118,35,111,9,36,54,20,59,124,106,95,124,234,218,141,156,29,56,181,161,152,161,221,233,208,189,145,51,1,167,54,222,169,138,57,107,159,183,71,3,48,227,79,121,221,200,145,134,170,238,222,73,23,78,84,78,223,148,216,80,168,242,192,28,15,190,156,202,227,210,239,126,28,201,99,113,222,251,244,121,36,55,127,167,123,58,130,189,36,244,214,185,28,93,156,255,235,98,208,27,118,165,168,206,101,247,164,123,222,238,103,199,175,115,121,214,133,183,206,123,191,192,171,47,37,241,75,119,212,30,158,125,110,247,21,241,151,195,139,211,143,253,193,23,109,142,78,251,252,124,48,146,135,165,115,217,238,247,254,221,62,7,11,190,149,164,227,246,249,207,114,227,119,46,79,7,167,176,252,55,111,90,55,78,108,92,197,78,52,59,118,82,199,14,200,173,209,142,99,231,222,42,227,200,204,73,218,174,75,124,123,234,248,9,65,82,226,123,19,18,119,194,32,245,130,69,184,72,248,208,116,17,184,169,23,6,134,27,250,97,220,241,157,36,177,240,103,111,82,126,224,63,236,211,197,124,76,98,73,111,37,183,94,234,206,20,62,39,33,170,206,154,49,73,23,113,96,194,63,191,47,66,47,33,102,139,179,112,21,10,6,50,39,177,227,79,228,112,166,79,193,17,145,148,196,177,119,67,98,201,148,233,87,48,221,146,212,73,162,153,227,167,146,73,234,91,240,36,139,96,234,135,183,138,28,166,126,49,238,58,113,28,102,239,11,83,136,97,199,247,254,112,98,47,144,12,212,48,77,254,155,90,69,48,78,156,248,218,108,77,200,212,89,248,169,32,154,173,229,114,143,90,225,150,140,147,208,189,110,41,191,193,36,1,113,83,50,201,91,36,38,191,47,72,146,14,98,143,4,169,67,73,103,36,158,123,73,2,191,172,242,195,114,79,114,38,206,13,249,36,54,3,12,249,161,235,248,195,52,140,157,43,82,77,72,218,75,201,220,50,73,18,45,60,220,51,137,89,249,231,112,112,90,77,82,88,209,149,55,189,183,228,86,42,151,91,138,224,24,230,15,99,69,182,7,214,198,221,4,51,78,112,235,105,115,93,21,206,149,9,111,121,83,75,190,250,204,14,22,190,95,126,200,100,33,168,200,137,19,146,113,149,91,76,135,217,148,95,189,201,55,0,201,200,95,191,229,241,58,113,10,42,248,193,154,132,238,98,14,154,43,87,157,201,196,50,255,97,150,171,225,116,10,7,228,7,203,124,30,135,183,240,60,75,231,190,101,154,229,22,55,69,213,245,67,152,27,54,56,147,162,138,134,19,56,4,43,44,146,46,236,147,24,102,88,99,62,42,93,242,194,28,49,153,135,55,132,29,44,19,79,204,193,85,76,72,96,150,87,88,1,167,198,23,147,73,1,23,3,141,40,140,154,113,26,26,28,1,5,249,226,249,187,183,175,222,180,10,222,202,150,174,81,3,235,193,245,61,247,186,201,53,87,89,106,139,158,57,193,196,39,191,120,137,55,246,124,47,189,239,0,225,10,20,244,0,118,124,150,87,192,139,23,207,132,206,171,51,111,50,33,65,249,65,26,132,30,128,108,191,114,35,73,118,88,121,247,6,126,244,189,36,37,1,92,53,230,141,156,211,197,57,205,74,49,150,10,106,29,55,214,173,23,76,194,219,42,221,144,116,150,106,20,198,233,51,219,52,191,127,47,30,121,87,95,55,242,250,245,43,105,95,188,91,191,144,241,16,126,147,212,50,111,147,102,173,102,238,231,95,156,133,73,26,56,115,178,111,54,87,7,169,212,125,179,118,11,42,111,45,9,224,221,89,56,151,177,39,54,108,24,132,17,9,108,161,89,139,220,164,244,218,14,146,208,39,240,254,21,136,100,156,6,229,219,98,207,173,219,155,41,185,3,124,210,214,217,153,201,246,127,26,47,72,107,217,202,160,225,105,218,6,27,50,130,200,252,25,211,164,17,74,219,32,141,18,138,36,48,127,72,247,14,110,177,199,36,80,246,73,238,50,130,129,234,4,239,34,58,74,108,185,111,199,225,228,30,105,46,60,145,24,54,155,240,141,148,189,154,222,71,132,123,71,61,79,104,22,220,65,148,148,58,227,36,112,110,138,200,0,20,142,70,170,14,193,158,199,105,242,174,29,174,212,188,179,47,228,131,125,132,116,42,58,14,253,164,58,13,227,174,3,224,137,79,232,242,236,35,188,235,193,147,221,49,213,61,80,246,102,206,117,112,230,114,101,217,82,212,108,201,183,192,6,25,212,52,76,29,95,204,119,100,233,211,251,36,184,74,103,7,141,178,60,124,224,188,2,184,187,23,94,120,13,199,106,45,59,44,100,28,19,231,186,37,84,157,101,83,205,255,239,10,153,222,233,117,7,71,154,220,237,239,180,226,109,222,95,213,1,203,62,155,249,187,36,38,126,232,76,224,100,232,220,152,103,54,229,198,78,189,212,39,108,215,248,206,152,248,184,13,231,142,23,124,38,14,236,33,177,11,51,134,188,60,204,14,155,226,137,165,106,242,49,203,197,36,137,165,66,242,17,115,10,101,144,231,2,77,161,101,116,15,62,41,195,245,53,10,63,143,78,250,22,59,159,58,8,150,203,174,188,244,144,127,139,46,110,156,6,230,62,178,65,140,131,142,49,13,23,238,12,117,223,204,238,140,242,3,169,70,49,161,102,63,102,49,30,85,229,34,77,233,117,7,142,212,226,34,42,244,54,4,163,84,80,10,216,116,23,25,220,183,45,153,87,214,215,38,114,234,199,87,199,110,36,112,170,66,44,99,119,124,4,152,19,75,203,4,82,239,244,247,86,202,139,166,59,235,46,114,38,108,209,23,103,149,93,117,87,36,67,213,29,66,244,159,14,145,38,144,79,7,169,73,89,129,25,63,29,38,166,182,79,199,169,139,89,1,58,126,58,80,154,157,63,29,167,38,101,5,166,251,116,152,172,56,240,116,160,57,57,27,79,55,86,193,30,63,124,49,141,129,135,232,215,173,103,43,113,192,138,216,81,251,195,170,76,61,240,112,162,8,61,208,161,239,29,29,58,70,24,204,65,18,89,68,118,9,120,216,58,164,70,247,205,114,201,152,197,100,106,151,168,4,133,94,58,226,15,120,205,236,155,135,53,231,232,176,6,34,11,35,26,57,231,196,187,49,188,9,78,165,9,59,172,193,8,125,151,190,103,131,128,170,46,0,158,198,100,210,97,207,22,228,191,97,212,164,102,90,150,49,110,179,76,39,242,216,204,14,112,79,61,31,130,53,75,154,141,166,41,152,98,254,96,165,51,47,1,60,105,10,41,8,93,152,89,182,109,27,34,97,186,238,131,52,60,96,119,41,164,243,184,153,76,164,155,21,117,3,208,120,2,224,216,81,28,206,35,8,153,71,206,216,72,67,131,189,72,127,89,1,86,83,12,72,223,96,79,190,103,113,220,51,186,158,42,99,130,55,44,120,132,152,192,241,73,76,69,204,156,148,202,52,38,33,73,140,32,76,13,114,7,137,146,209,252,237,55,76,6,10,246,92,193,150,98,21,68,105,126,136,108,225,141,14,139,36,24,108,70,162,234,125,158,64,204,227,166,220,6,58,107,139,61,102,70,11,35,76,234,168,221,216,79,115,127,79,216,110,207,44,25,184,5,236,146,160,178,29,65,7,4,133,77,70,40,247,145,160,97,80,1,132,195,26,147,121,100,174,174,232,164,183,237,114,188,73,209,82,246,77,195,11,162,69,202,76,192,151,149,120,127,64,130,91,126,16,171,196,173,48,247,2,83,119,155,43,88,218,191,254,125,88,232,6,209,240,208,196,194,92,1,233,220,177,120,48,7,21,19,206,60,103,126,57,43,23,208,168,123,246,63,82,46,164,252,209,35,218,197,186,251,227,183,161,44,52,125,229,251,239,155,189,82,193,18,206,160,5,8,224,182,196,129,225,205,149,181,250,110,197,68,90,230,63,244,13,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,144,8,43,166,133,177,145,55,135,95,181,70,189,94,47,66,90,141,22,201,204,122,184,107,166,73,229,190,153,105,3,78,114,174,188,183,11,114,5,183,210,201,104,22,40,236,235,183,191,120,62,209,14,160,230,19,117,233,50,27,151,101,106,44,29,60,238,236,54,22,68,115,215,131,210,164,194,108,91,13,255,178,220,133,111,56,49,53,0,26,220,6,103,113,24,193,197,123,111,149,120,230,55,76,239,125,82,42,51,87,169,10,18,27,24,134,249,14,86,223,40,134,36,3,247,13,113,57,248,156,186,249,190,222,108,252,57,104,201,147,177,177,176,99,141,44,132,166,157,212,61,22,114,92,210,18,167,165,221,5,240,150,194,88,49,97,219,155,74,173,238,127,183,36,158,122,82,89,224,120,21,97,0,108,231,61,160,75,218,5,150,146,2,99,60,68,238,210,191,8,91,78,212,78,219,128,37,227,43,129,192,83,161,173,8,219,5,28,79,234,87,115,246,60,178,85,14,44,98,238,10,94,23,181,11,242,44,181,206,90,242,205,85,54,86,251,160,83,94,57,139,43,242,23,233,62,47,107,151,5,176,123,188,96,51,247,78,186,232,255,226,27,91,113,122,105,216,27,14,134,88,70,179,178,30,11,43,112,165,224,13,155,230,126,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,120,105,185,39,75,112,48,126,100,107,31,91,188,120,33,71,14,245,82,44,11,103,68,61,48,127,135,173,85,113,228,4,196,215,20,172,190,86,160,221,236,133,114,14,170,109,107,183,47,228,144,12,140,222,58,98,55,237,129,108,169,242,134,238,1,111,161,138,199,172,95,42,40,89,115,84,80,100,43,84,16,88,239,83,60,201,86,103,185,37,144,100,93,2,206,99,238,43,253,98,94,147,132,231,178,8,55,11,151,144,97,23,160,21,180,42,76,137,143,3,219,132,104,45,142,229,30,205,19,49,65,62,224,110,234,18,159,32,3,36,180,6,172,228,127,60,241,251,90,255,198,253,175,158,9,50,199,71,111,20,70,13,232,61,194,195,136,66,78,150,128,41,205,139,57,73,18,231,138,216,74,253,88,237,179,49,124,172,211,197,243,67,182,47,65,158,45,220,32,167,227,45,144,63,78,137,143,51,195,81,130,191,120,164,56,119,235,79,43,65,119,246,121,205,240,212,82,34,103,211,108,64,142,174,114,19,244,96,29,114,101,22,122,113,111,152,131,185,188,77,147,164,219,76,34,234,27,133,83,208,138,196,198,25,156,241,22,115,48,15,184,201,208,220,69,110,52,246,22,19,169,229,100,54,92,241,146,9,220,158,152,77,242,159,186,216,49,165,41,210,232,65,54,114,44,139,168,120,58,89,227,162,23,90,37,55,33,111,137,41,221,48,86,9,107,174,67,18,185,143,67,137,92,13,139,230,148,214,11,158,110,33,120,186,78,48,45,52,174,23,189,133,250,162,241,58,209,180,38,188,94,180,191,133,104,127,157,104,44,227,174,151,29,111,33,59,46,144,173,245,243,69,38,195,13,159,64,118,70,112,163,225,47,155,127,232,65,203,24,249,203,12,252,170,232,63,207,136,123,77,59,203,249,94,88,226,192,44,55,68,191,211,52,33,74,19,91,8,209,251,236,66,146,23,60,42,75,255,94,35,19,135,242,140,108,73,141,44,63,217,4,35,207,19,65,4,145,141,139,90,114,78,118,125,85,246,26,88,143,136,23,37,102,246,241,145,82,44,206,186,224,94,114,236,37,110,76,82,94,187,68,38,123,173,215,80,190,37,115,199,182,226,61,52,23,166,187,18,136,140,232,2,34,223,113,137,85,251,207,111,199,251,181,171,138,137,94,146,21,176,177,48,143,213,162,102,129,63,82,189,45,165,112,71,180,92,242,242,247,90,71,182,230,69,26,211,233,0,93,199,247,199,142,123,61,36,16,78,62,179,77,106,21,147,237,87,85,61,226,165,12,173,80,196,82,236,55,149,133,233,66,227,217,91,63,111,133,207,218,90,46,197,87,11,178,254,145,233,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,238,211,26,108,211,52,91,72,186,5,152,197,226,232,8,21,68,255,34,63,85,204,154,137,149,10,96,169,252,253,187,116,157,5,117,68,222,189,62,170,107,21,197,109,228,190,223,36,54,251,182,130,125,250,1,214,223,252,93,134,222,170,230,233,229,74,155,117,109,131,52,215,178,217,189,229,141,21,185,226,6,56,75,188,216,82,100,147,68,73,56,208,146,251,170,101,13,151,94,21,118,41,189,13,233,167,157,139,121,144,8,14,106,70,202,224,196,19,35,101,31,174,208,82,124,113,32,141,221,151,217,27,209,206,97,101,121,243,176,6,164,195,89,92,163,245,122,30,146,103,133,58,44,219,99,195,38,87,7,204,250,248,187,44,37,97,31,185,161,72,177,38,218,103,130,217,54,0,44,70,130,25,171,200,27,245,134,6,133,38,142,243,86,149,238,124,71,100,69,31,242,2,86,70,242,71,154,14,131,38,184,18,84,238,13,231,92,207,243,87,78,186,58,44,207,250,99,231,128,127,177,122,152,128,9,208,54,224,93,132,85,52,129,123,210,48,168,115,3,255,61,184,141,157,104,181,249,71,133,29,153,249,239,50,196,84,44,86,197,201,176,200,178,110,58,222,139,164,1,11,112,42,1,46,123,165,98,160,55,165,141,38,83,237,91,22,113,50,199,88,58,210,155,82,128,148,49,43,88,229,5,32,208,178,213,82,176,201,227,170,225,109,63,241,37,143,40,238,54,204,247,210,73,131,81,224,196,20,87,25,32,49,78,61,240,18,104,92,250,112,32,66,45,131,191,103,242,19,64,79,18,159,211,11,56,13,125,20,86,75,236,18,206,54,14,239,74,12,185,0,30,6,29,170,23,1,148,126,121,201,52,132,17,27,182,232,30,65,110,138,35,118,88,67,205,40,170,91,185,42,133,10,3,71,130,229,159,50,193,37,179,240,25,106,173,239,204,108,173,126,223,97,232,198,166,8,77,197,216,133,172,220,218,184,116,250,169,10,107,42,191,120,254,211,219,55,245,86,214,154,126,108,118,246,65,196,182,0,114,220,26,134,120,103,12,248,241,200,182,16,116,102,13,129,191,51,2,252,220,98,91,4,58,179,134,96,188,17,65,141,109,7,173,74,198,118,212,123,19,160,101,187,103,234,197,243,210,26,168,252,131,139,45,177,114,238,98,180,174,64,59,248,153,2,21,167,239,176,6,123,89,189,45,88,16,32,54,186,114,42,213,104,58,59,86,91,28,120,254,134,126,220,217,209,214,47,33,118,208,113,158,146,49,247,64,17,117,248,235,220,217,165,70,189,174,180,225,213,11,15,181,161,251,137,34,192,60,252,135,83,138,110,161,144,3,37,22,220,168,120,247,11,47,156,139,142,132,158,216,114,184,247,194,192,163,57,134,108,225,186,181,114,181,154,184,104,44,42,241,207,11,216,178,89,2,180,118,149,112,255,99,52,46,24,121,158,194,84,7,54,174,41,216,148,80,109,87,124,172,32,149,255,254,97,29,36,165,186,85,8,136,7,138,210,51,99,137,232,79,160,17,53,37,142,39,155,88,171,70,21,78,205,130,82,49,243,212,187,90,196,4,101,242,134,47,255,60,7,6,92,135,127,167,145,139,195,148,33,124,0,1,170,124,12,115,185,252,47,189,126,223,248,208,53,218,6,146,141,77,106,71,12,172,165,241,119,237,3,22,116,115,108,248,96,212,232,127,184,128,115,55,143,152,150,201,196,152,130,163,188,127,166,158,116,135,182,180,73,28,206,105,113,155,33,69,146,68,122,164,114,143,33,7,148,122,100,142,52,2,29,23,201,10,23,41,253,160,66,50,71,168,202,130,255,106,244,95,91,230,122,124,155,58,0,0 };
+const uint8_t JS_CONTROLS_GZIP[3941] PROGMEM = { 31,139,8,0,36,32,244,97,2,255,197,91,91,119,218,72,18,126,247,175,80,148,57,65,172,49,151,220,38,3,150,115,8,38,9,59,216,120,13,158,204,217,76,214,71,136,198,232,88,72,26,73,248,50,14,255,125,171,171,47,234,22,2,51,120,102,247,37,70,213,165,234,175,171,186,187,110,138,27,6,73,106,92,244,46,123,167,189,81,175,221,191,252,116,209,179,95,214,235,45,87,12,156,119,251,131,246,49,208,26,130,118,118,220,30,117,47,7,31,63,14,187,35,187,161,242,118,127,29,117,79,143,153,140,134,66,31,245,70,221,190,173,16,206,64,98,78,30,146,178,73,122,151,29,74,121,169,51,117,24,215,203,140,235,195,197,104,52,56,181,95,233,124,156,218,168,191,202,56,251,237,15,0,226,181,206,200,136,141,250,235,140,111,248,165,55,234,124,238,158,219,111,116,86,73,111,212,223,40,220,253,222,49,208,222,230,120,25,181,81,127,155,113,158,94,156,124,0,218,143,58,39,167,54,234,63,42,234,2,61,130,65,206,46,70,246,59,157,91,25,105,212,223,101,111,124,58,111,159,125,182,127,226,132,246,241,49,163,92,158,13,122,167,148,149,15,116,250,221,246,57,103,110,212,127,82,102,108,127,176,27,57,131,48,154,98,144,97,183,223,237,128,180,156,77,4,185,161,88,101,112,54,234,81,253,231,204,34,200,13,197,44,39,61,32,228,172,130,180,134,98,147,147,246,175,118,35,103,15,164,53,84,83,140,186,103,118,35,111,9,36,54,20,59,124,106,95,124,234,218,141,156,29,56,181,161,152,161,221,233,208,189,145,51,1,167,54,222,169,138,57,107,159,183,71,3,48,227,79,121,221,200,145,134,170,238,222,73,23,78,84,78,223,148,216,80,168,242,192,28,15,190,156,202,227,210,239,126,28,201,99,113,222,251,244,121,36,55,127,167,123,58,130,189,36,244,214,185,28,93,156,255,235,98,208,27,118,165,168,206,101,247,164,123,222,238,103,199,175,115,121,214,133,183,206,123,191,192,171,47,37,241,75,119,212,30,158,125,110,247,21,241,151,195,139,211,143,253,193,23,109,142,78,251,252,124,48,146,135,165,115,217,238,247,254,221,62,7,11,190,149,164,227,246,249,207,114,227,119,46,79,7,167,176,252,55,111,90,55,78,108,92,197,78,52,59,118,82,199,14,200,173,209,142,99,231,222,42,227,200,204,73,218,174,75,124,123,234,248,9,65,82,226,123,19,18,119,194,32,245,130,69,184,72,248,208,116,17,184,169,23,6,134,27,250,97,220,241,157,36,177,240,103,111,82,126,224,63,236,211,197,124,76,98,73,111,37,183,94,234,206,20,62,39,33,170,206,154,49,73,23,113,96,194,63,191,47,66,47,33,102,139,179,112,21,10,6,50,39,177,227,79,228,112,166,79,193,17,145,148,196,177,119,67,98,201,148,233,87,48,221,146,212,73,162,153,227,167,146,73,234,91,240,36,139,96,234,135,183,138,28,166,126,49,238,58,113,28,102,239,11,83,136,97,199,247,254,112,98,47,144,12,212,48,77,254,155,90,69,48,78,156,248,218,108,77,200,212,89,248,169,32,154,173,229,114,143,90,225,150,140,147,208,189,110,41,191,193,36,1,113,83,50,201,91,36,38,191,47,72,146,14,98,143,4,169,67,73,103,36,158,123,73,2,191,172,242,195,114,79,114,38,206,13,249,36,54,3,12,249,161,235,248,195,52,140,157,43,82,77,72,218,75,201,220,50,73,18,45,60,220,51,137,89,249,231,112,112,90,77,82,88,209,149,55,189,183,228,86,42,151,91,138,224,24,230,15,99,69,182,7,214,198,221,4,51,78,112,235,105,115,93,21,206,149,9,111,121,83,75,190,250,204,14,22,190,95,126,200,100,33,168,200,137,19,146,113,149,91,76,135,217,148,95,189,201,55,0,201,200,95,191,229,241,58,113,10,42,248,193,154,132,238,98,14,154,43,87,157,201,196,50,255,97,150,171,225,116,10,7,228,7,203,124,30,135,183,240,60,75,231,190,101,154,229,22,55,69,213,245,67,152,27,54,56,147,162,138,134,19,56,4,43,44,146,46,236,147,24,102,88,99,62,42,93,242,194,28,49,153,135,55,132,29,44,19,79,204,193,85,76,72,96,150,87,88,1,167,198,23,147,73,1,23,3,141,40,140,154,113,26,26,28,1,5,249,226,249,187,183,175,222,180,10,222,202,150,174,81,3,235,193,245,61,247,186,201,53,87,89,106,139,158,57,193,196,39,191,120,137,55,246,124,47,189,239,0,225,10,20,244,0,118,124,150,87,192,139,23,207,132,206,171,51,111,50,33,65,249,65,26,132,30,128,108,191,114,35,73,118,88,121,247,6,126,244,189,36,37,1,92,53,230,141,156,211,197,57,205,74,49,150,10,106,29,55,214,173,23,76,194,219,42,221,144,116,150,106,20,198,233,51,219,52,191,127,47,30,121,87,95,55,242,250,245,43,105,95,188,91,191,144,241,16,126,147,212,50,111,147,102,173,102,238,231,95,156,133,73,26,56,115,178,111,54,87,7,169,212,125,179,118,11,42,111,45,9,224,221,89,56,151,177,39,54,108,24,132,17,9,108,161,89,139,220,164,244,218,14,146,208,39,240,254,21,136,100,156,6,229,219,98,207,173,219,155,41,185,3,124,210,214,217,153,201,246,127,26,47,72,107,217,202,160,225,105,218,6,27,50,130,200,252,25,211,164,17,74,219,32,141,18,138,36,48,127,72,247,14,110,177,199,36,80,246,73,238,50,130,129,234,4,239,34,58,74,108,185,111,199,225,228,30,105,46,60,145,24,54,155,240,141,148,189,154,222,71,132,123,71,61,79,104,22,220,65,148,148,58,227,36,112,110,138,200,0,20,142,70,170,14,193,158,199,105,242,174,29,174,212,188,179,47,228,131,125,132,116,42,58,14,253,164,58,13,227,174,3,224,137,79,232,242,236,35,188,235,193,147,221,49,213,61,80,246,102,206,117,112,230,114,101,217,82,212,108,201,183,192,6,25,212,52,76,29,95,204,119,100,233,211,251,36,184,74,103,7,141,178,60,124,224,188,2,184,187,23,94,120,13,199,106,45,59,44,100,28,19,231,186,37,84,157,101,83,205,255,239,10,153,222,233,117,7,71,154,220,237,239,180,226,109,222,95,213,1,203,62,155,249,187,36,38,126,232,76,224,100,232,220,152,103,54,229,198,78,189,212,39,108,215,248,206,152,248,184,13,231,142,23,124,38,14,236,33,177,11,51,134,188,60,204,14,155,226,137,165,106,242,49,203,197,36,137,165,66,242,17,115,10,101,144,231,2,77,161,101,116,15,62,41,195,245,53,10,63,143,78,250,22,59,159,58,8,150,203,174,188,244,144,127,139,46,110,156,6,230,62,178,65,140,131,142,49,13,23,238,12,117,223,204,238,140,242,3,169,70,49,161,102,63,102,49,30,85,229,34,77,233,117,7,142,212,226,34,42,244,54,4,163,84,80,10,216,116,23,25,220,183,45,153,87,214,215,38,114,234,199,87,199,110,36,112,170,66,44,99,119,124,4,152,19,75,203,4,82,239,244,247,86,202,139,166,59,235,46,114,38,108,209,23,103,149,93,117,87,36,67,213,29,66,244,159,14,145,38,144,79,7,169,73,89,129,25,63,29,38,166,182,79,199,169,139,89,1,58,126,58,80,154,157,63,29,167,38,101,5,166,251,116,152,172,56,240,116,160,57,57,27,79,55,86,193,30,63,124,49,141,129,135,232,215,173,103,43,113,192,138,216,81,251,195,170,76,61,240,112,162,8,61,208,161,239,29,29,58,70,24,204,65,18,89,68,118,9,120,216,58,164,70,247,205,114,201,152,197,100,106,151,168,4,133,94,58,226,15,120,205,236,155,135,53,231,232,176,6,34,11,35,26,57,231,196,187,49,188,9,78,165,9,59,172,193,8,125,151,190,103,131,128,170,46,0,158,198,100,210,97,207,22,228,191,97,212,164,102,90,150,49,110,179,76,39,242,216,204,14,112,79,61,31,130,53,75,154,141,166,41,152,98,254,96,165,51,47,1,60,105,10,41,8,93,152,89,182,109,27,34,97,186,238,131,52,60,96,119,41,164,243,184,153,76,164,155,21,117,3,208,120,2,224,216,81,28,206,35,8,153,71,206,216,72,67,131,189,72,127,89,1,86,83,12,72,223,96,79,190,103,113,220,51,186,158,42,99,130,55,44,120,132,152,192,241,73,76,69,204,156,148,202,52,38,33,73,140,32,76,13,114,7,137,146,209,252,237,55,76,6,10,246,92,193,150,98,21,68,105,126,136,108,225,141,14,139,36,24,108,70,162,234,125,158,64,204,227,166,220,6,58,107,139,61,102,70,11,35,76,234,168,221,216,79,115,127,79,216,110,207,44,25,184,5,236,146,160,178,29,65,7,4,133,77,70,40,247,145,160,97,80,1,132,195,26,147,121,100,174,174,232,164,183,237,114,188,73,209,82,246,77,195,11,162,69,202,76,192,151,149,120,127,64,130,91,126,16,171,196,173,48,247,2,83,119,155,43,88,218,191,254,125,88,232,6,209,240,208,196,194,92,1,233,220,177,120,48,7,21,19,206,60,103,126,57,43,23,208,168,123,246,63,82,46,164,252,209,35,218,197,186,251,227,183,161,44,52,125,229,251,239,155,189,82,193,18,206,160,5,8,224,182,196,129,225,205,149,181,250,110,197,68,90,230,63,244,13,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,144,8,43,166,133,177,145,55,135,95,181,70,189,94,47,66,90,141,22,201,204,122,184,107,166,73,229,190,153,105,3,78,114,174,188,183,11,114,5,183,210,201,104,22,40,236,235,183,191,120,62,209,14,160,230,19,117,233,50,27,151,101,106,44,29,60,238,236,54,22,68,115,215,131,210,164,194,108,91,13,255,178,220,133,111,56,49,53,0,26,220,6,103,113,24,193,197,123,111,149,120,230,55,76,239,125,82,42,51,87,169,10,18,27,24,134,249,14,86,223,40,134,36,3,247,13,113,57,248,156,186,249,190,222,108,252,57,104,201,147,177,177,176,99,141,44,132,166,157,212,61,22,114,92,210,18,167,165,221,5,240,150,194,88,49,97,219,155,74,173,238,127,183,36,158,122,82,89,224,120,21,97,0,108,231,61,160,75,218,5,150,146,2,99,60,68,238,210,191,8,91,78,212,78,219,128,37,227,43,129,192,83,161,173,8,219,5,28,79,234,87,115,246,60,178,85,14,44,98,238,10,94,23,181,11,242,44,181,206,90,242,205,85,54,86,251,160,83,94,57,139,43,242,23,233,62,47,107,151,5,176,123,188,96,51,247,78,186,232,255,226,27,91,113,122,105,216,27,14,134,88,70,179,178,30,11,43,112,165,224,13,155,230,126,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,120,105,185,39,75,112,48,126,100,107,31,91,188,120,33,71,14,245,82,44,11,103,68,61,48,127,135,173,85,113,228,4,196,215,20,172,190,86,160,221,236,133,114,14,170,109,107,183,47,228,144,12,140,222,58,98,55,237,129,108,169,242,134,238,1,111,161,138,199,172,95,42,40,89,115,84,80,100,43,84,16,88,239,83,60,201,86,103,185,37,144,100,93,2,206,99,238,43,253,98,94,147,132,231,178,8,55,11,151,144,97,23,160,21,180,42,76,137,143,3,219,132,104,45,142,229,30,205,19,49,65,62,224,110,234,18,159,32,3,36,180,6,172,228,127,60,241,251,90,255,198,253,175,158,9,50,199,71,111,20,70,13,232,61,194,195,136,66,78,150,128,41,205,139,57,73,18,231,138,216,74,253,88,237,179,49,124,172,211,197,243,67,182,47,65,158,45,220,32,167,227,45,144,63,78,137,143,51,195,81,130,191,120,164,56,119,235,79,43,65,119,246,121,205,240,212,82,34,103,211,108,64,142,174,114,19,244,96,29,114,101,22,122,113,111,152,131,185,188,77,147,164,219,76,34,234,27,133,83,208,138,196,198,25,156,241,22,115,48,15,184,201,208,220,69,110,52,246,22,19,169,229,100,54,92,241,146,9,220,158,152,77,242,159,186,216,49,165,41,210,232,65,54,114,44,139,168,120,58,89,227,162,23,90,37,55,33,111,137,41,221,48,86,9,107,174,67,18,185,143,67,137,92,13,139,230,148,214,11,158,110,33,120,186,78,48,45,52,174,23,189,133,250,162,241,58,209,180,38,188,94,180,191,133,104,127,157,104,44,227,174,151,29,111,33,59,46,144,173,245,243,69,38,195,13,159,64,118,70,112,163,225,47,155,127,232,65,203,24,249,203,12,252,170,232,63,207,136,123,77,59,203,249,94,88,226,192,44,55,68,191,211,52,33,74,19,91,8,209,251,236,66,146,23,60,42,75,255,94,35,19,135,242,140,108,73,141,44,63,217,4,35,207,19,65,4,145,141,139,90,114,78,118,125,85,246,26,88,143,136,23,37,102,246,241,145,82,44,206,186,224,94,114,236,37,110,76,82,94,187,68,38,123,173,215,80,190,37,115,199,182,226,61,52,23,166,187,18,136,140,232,2,34,223,113,137,85,251,207,111,199,251,181,171,138,137,94,146,21,176,177,48,143,213,162,102,129,63,82,189,45,165,112,71,180,92,242,242,247,90,71,182,230,69,26,211,233,0,93,199,247,199,142,123,61,36,16,78,62,179,77,106,21,147,237,87,85,61,226,165,12,173,80,196,82,236,55,149,133,233,66,227,217,91,63,111,133,207,218,90,46,197,87,11,178,254,145,233,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,238,211,26,108,211,52,91,72,186,5,152,197,226,232,8,21,68,255,34,63,85,204,154,137,149,10,96,169,252,253,187,116,157,5,117,68,222,189,62,170,107,21,197,109,228,190,223,36,54,251,182,130,125,250,1,214,223,252,93,134,222,170,230,233,229,74,155,117,109,131,52,215,178,217,189,229,141,21,185,226,6,56,75,188,216,82,100,147,68,73,56,208,146,251,170,101,13,151,94,21,118,41,189,13,233,167,157,139,121,144,8,14,106,70,202,224,196,19,35,101,31,174,208,82,124,113,32,141,221,151,217,27,209,206,97,101,121,243,176,6,164,195,89,92,163,245,122,30,146,103,133,58,44,219,99,195,38,87,7,204,250,248,187,44,37,97,31,185,161,72,177,38,218,103,130,217,54,0,44,70,130,25,171,200,27,245,134,6,133,38,142,243,86,149,238,124,71,100,69,31,242,2,86,70,242,71,154,14,131,38,184,18,84,238,13,231,92,207,243,87,78,186,58,44,207,250,99,231,128,127,177,122,152,128,9,208,54,224,93,132,85,52,129,123,210,48,168,115,3,255,61,184,141,157,104,181,249,71,133,29,153,249,239,50,196,84,44,86,197,201,176,200,178,110,58,222,139,164,1,11,112,42,1,46,123,165,98,160,55,165,141,38,83,237,91,22,113,50,199,88,58,210,155,82,128,148,49,43,88,229,5,32,208,178,213,82,176,201,227,170,225,109,63,241,37,143,40,238,54,204,247,210,73,131,81,224,196,20,87,25,32,49,78,61,240,18,104,92,250,112,32,66,45,131,191,103,242,19,64,79,18,159,211,11,56,13,125,20,86,75,236,18,206,54,14,239,74,12,185,0,30,6,29,170,23,1,148,126,121,201,52,132,17,27,182,232,30,65,110,138,35,118,88,67,205,40,170,91,185,42,133,10,3,71,130,229,159,50,193,37,179,240,25,106,173,239,204,108,173,126,223,97,232,198,166,8,77,197,216,133,172,220,218,184,116,250,169,10,107,42,191,120,254,211,219,55,245,86,214,154,126,108,118,246,65,196,182,0,114,220,26,134,120,103,12,248,241,200,182,16,116,102,13,129,191,51,2,252,220,98,91,4,58,179,134,96,188,17,65,141,109,7,173,74,198,118,212,123,19,160,101,187,103,234,197,243,210,26,168,252,131,139,45,177,114,238,98,180,174,64,59,248,153,2,21,167,239,176,6,123,89,189,45,88,16,32,54,186,114,42,213,104,58,59,86,91,28,120,254,134,126,220,217,209,214,47,33,118,208,113,158,146,49,247,64,17,117,248,235,220,217,165,70,189,174,180,225,213,11,15,181,161,251,137,34,192,60,252,135,83,138,110,161,144,3,37,22,220,168,120,247,11,47,156,139,142,132,158,216,114,184,247,194,192,163,57,134,108,225,186,181,114,181,154,184,104,44,42,241,207,11,216,178,89,2,180,118,149,112,255,99,52,46,24,121,158,194,84,7,54,174,41,216,148,80,109,87,124,172,32,149,255,254,97,29,36,165,186,85,8,136,7,138,210,51,99,137,232,79,160,17,53,37,142,39,155,88,171,70,21,78,205,130,82,49,243,212,187,90,196,4,101,242,134,47,255,60,7,6,92,135,127,167,145,139,195,148,33,124,0,1,170,124,12,115,185,252,47,189,126,223,248,208,53,218,6,146,141,77,106,71,12,172,165,241,119,237,3,22,116,115,108,248,96,212,232,127,184,128,115,55,143,152,150,201,196,152,130,163,188,127,166,158,116,135,182,180,73,28,206,105,113,155,33,69,146,68,122,164,114,143,33,7,148,122,100,142,52,2,29,23,201,10,23,41,253,160,66,50,71,168,202,130,255,106,244,95,91,230,122,124,155,58,0,0 };
diff --git a/src/dataStyleCSS.h b/src/dataStyleCSS.h
index b5690b7..789d0a2 100644
--- a/src/dataStyleCSS.h
+++ b/src/dataStyleCSS.h
@@ -2,4 +2,4 @@ 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;border-radius:6px;box-shadow:0 4px 4px rgba(204,197,185,0.5);padding-left:20px;padding-right:20px;margin-bottom:40px;min-width:500px;color:#fff}@media(min-width:1205px){.wide.card{min-width:1075px}}@media(min-width:1790px){.wide.card{min-width:1650px}}@media(max-width:630px){.card{min-width:98%}}.sectionbreak.columns{color:black}.sectionbreak.columns hr{border:0;height:2px;background-color:#666}.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:35px}.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;margin-left:.3rem;margin-right:.3rem}.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-left:.3rem;margin-right:.3rem;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;margin-bottom:30px;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}.vert-switcher{transform:rotate(270deg);margin-top:15px;margin-bottom:25px}.vert-slider{width:150px;transform:rotate(270deg);display:inline-block;margin:50px -42px 70px -42px}.vert-slider span{transform:rotate(90deg)}
 )=====";
 
-const uint8_t CSS_STYLE_GZIP[3484] PROGMEM = { 31,139,8,0,139,29,244,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,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,156,188,148,89,95,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,191,151,245,83,124,104,218,12,183,22,140,12,118,218,84,231,99,109,142,127,187,11,67,118,29,231,33,201,171,6,245,113,133,243,30,192,80,155,93,142,101,109,21,184,124,42,122,2,64,105,82,66,45,202,202,115,23,71,211,44,5,202,154,151,216,49,130,211,43,253,105,159,14,232,209,115,2,211,221,111,77,119,23,154,142,29,110,146,19,202,50,224,198,34,19,48,22,167,145,150,78,65,135,152,4,192,106,223,55,199,56,160,67,240,153,113,25,82,38,128,243,166,141,239,243,60,31,254,114,196,89,137,30,23,8,215,115,194,211,235,230,98,195,71,188,8,49,9,185,133,135,131,6,107,187,119,214,177,162,208,225,177,208,235,248,32,242,25,146,4,191,223,61,12,131,221,225,148,24,233,208,98,244,60,235,154,113,126,168,80,250,172,135,48,138,246,194,116,28,59,201,168,121,143,104,25,48,158,218,230,92,103,214,40,125,20,69,131,221,159,219,255,156,155,178,195,151,5,32,190,119,209,33,221,167,201,108,116,170,201,123,55,66,206,46,52,124,48,79,215,84,101,54,216,248,136,91,84,101,2,174,135,211,116,235,202,184,222,22,225,200,225,113,79,184,199,109,11,206,215,10,232,126,176,223,101,7,5,125,191,115,14,123,30,253,5,247,168,59,21,168,234,37,244,96,31,98,5,61,245,113,40,204,222,157,107,240,213,23,105,242,220,77,3,39,151,177,113,116,56,56,57,143,13,246,106,27,113,98,28,109,177,231,201,168,153,31,6,142,48,49,170,202,223,81,91,214,34,242,54,72,125,69,223,169,227,239,189,3,143,156,161,246,89,64,12,130,96,23,110,101,68,54,202,35,86,232,128,171,139,54,158,147,151,162,236,177,213,157,80,138,227,186,121,105,209,73,10,82,219,195,199,41,208,98,219,133,79,134,29,144,95,46,252,78,122,252,218,91,32,213,83,29,167,184,6,155,114,209,149,228,144,115,172,23,230,133,91,199,73,42,200,63,115,62,176,125,41,86,33,180,146,172,236,78,21,122,139,203,154,194,30,170,38,125,214,177,8,126,211,151,41,170,198,169,15,168,195,4,33,81,115,91,223,156,98,203,118,67,224,85,13,130,253,126,47,49,225,146,80,101,10,179,200,76,99,122,219,67,118,227,217,56,181,152,62,78,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,15,169,23,237,68,216,166,69,245,147,142,133,12,35,55,12,68,224,55,92,65,96,104,128,241,62,139,2,137,223,211,185,61,85,58,202,251,124,231,131,112,74,158,12,156,49,227,205,139,17,27,223,5,15,154,172,58,231,71,9,154,36,72,101,25,26,205,200,86,2,159,164,233,241,81,156,151,109,215,91,105,81,86,217,12,206,15,78,168,116,89,113,6,187,169,241,76,125,121,63,45,116,129,29,205,255,182,192,71,255,210,200,75,161,111,251,243,63,2,81,128,177,36,24,207,131,7,121,115,110,165,113,223,177,5,234,57,184,176,12,178,23,201,119,229,171,204,34,209,79,135,191,227,90,122,16,70,34,117,26,137,18,76,20,138,228,235,82,81,193,54,32,82,41,212,119,158,68,189,210,176,176,119,37,229,188,224,74,17,145,22,19,170,85,172,190,40,219,108,132,93,81,24,152,131,129,117,34,156,44,22,33,7,203,71,46,66,81,205,53,121,222,225,222,58,188,89,130,39,104,70,59,193,117,118,146,103,44,24,139,143,152,218,81,145,142,187,149,88,93,48,56,79,50,87,198,69,90,94,36,16,224,60,206,212,15,139,232,126,96,175,136,196,57,166,169,31,22,41,5,254,154,80,139,255,154,218,81,145,78,232,137,200,156,139,153,43,227,34,129,200,89,19,137,143,6,115,101,92,162,181,95,19,138,139,26,83,63,44,82,218,138,142,215,107,133,234,87,68,218,69,171,34,85,43,250,145,98,147,167,182,15,215,132,146,67,208,124,231,217,173,126,164,196,171,249,222,195,91,213,47,69,183,185,254,72,245,174,161,232,143,213,133,150,46,80,45,225,56,242,236,240,97,56,52,217,219,8,10,149,245,242,212,181,73,101,33,20,54,66,217,3,43,30,251,156,163,99,89,189,197,119,127,59,225,218,248,21,213,221,157,217,193,111,240,212,182,204,167,162,201,35,53,164,186,244,166,185,147,187,67,225,154,133,103,22,190,89,4,102,17,154,69,52,177,78,74,28,71,170,99,236,176,5,190,120,78,124,199,1,18,156,96,65,43,115,110,123,73,133,123,40,226,104,149,67,234,61,168,156,0,106,40,60,14,207,183,35,13,102,184,134,234,243,168,42,162,191,134,23,112,120,158,173,97,214,215,76,233,236,40,110,120,225,45,180,83,113,117,168,33,69,141,4,212,80,69,141,100,84,103,181,114,17,212,29,42,138,12,108,79,213,16,85,174,40,189,175,200,228,173,176,58,12,39,193,41,6,52,110,25,239,93,140,112,118,24,80,92,52,100,207,53,142,58,57,114,82,60,28,206,224,51,245,69,91,124,79,149,191,171,110,223,125,97,47,173,47,175,71,218,49,74,73,53,126,209,238,67,147,30,42,212,46,111,218,99,76,223,65,229,142,255,241,24,128,6,141,249,243,63,233,231,225,254,8,133,224,95,49,2,46,180,236,14,247,80,44,254,218,163,254,220,45,125,142,178,46,32,200,122,46,106,237,45,68,237,200,154,105,143,226,75,27,1,98,121,62,55,216,62,55,194,202,76,58,52,216,103,43,63,87,21,51,61,95,193,172,52,80,206,22,105,1,112,40,75,71,224,125,180,19,65,161,51,95,88,167,133,190,159,159,16,46,47,124,11,166,103,59,178,139,178,71,27,138,150,119,19,230,229,146,248,212,55,39,131,51,238,156,233,35,65,114,167,237,165,113,143,93,242,26,150,58,61,70,57,204,98,218,109,243,50,189,61,91,105,126,33,0,192,64,124,119,55,111,244,122,116,168,112,146,86,24,181,32,109,95,48,42,109,83,233,246,43,89,198,59,89,121,68,79,56,38,182,71,100,67,4,62,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,158,28,78,106,103,141,168,178,134,197,194,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,30,208,126,54,112,236,195,222,29,157,251,38,89,235,3,238,137,79,143,86,48,206,213,101,105,224,61,204,217,192,225,98,182,109,32,222,240,99,16,102,248,105,179,96,86,229,69,84,50,33,96,16,118,29,85,215,22,17,193,186,69,215,26,25,181,121,107,228,154,88,150,100,60,210,238,137,139,50,203,112,157,76,189,192,7,94,76,224,55,174,251,130,109,9,31,189,205,69,17,112,239,136,2,202,56,190,6,199,186,134,20,104,144,220,157,138,132,38,51,120,212,12,106,155,67,153,153,217,99,20,150,96,45,244,198,85,192,228,6,242,38,133,148,169,196,156,206,229,56,58,23,53,140,198,88,133,138,108,182,11,51,8,201,190,16,226,85,102,184,248,248,103,223,224,170,31,181,137,68,71,50,156,54,45,162,114,214,80,182,177,193,185,87,188,234,44,193,134,105,131,105,200,118,195,110,225,152,188,129,173,255,241,71,101,151,80,147,94,64,69,155,31,158,77,188,255,121,54,217,65,164,177,34,25,172,204,151,68,83,31,47,182,88,49,60,59,39,58,192,2,113,238,89,15,142,96,141,91,118,62,191,76,6,145,61,114,30,95,113,204,123,140,241,96,119,47,101,159,22,218,74,192,248,83,121,60,53,109,143,234,94,83,153,28,48,121,73,171,64,32,30,71,76,118,115,168,54,232,145,4,104,131,188,108,127,195,23,62,233,185,237,224,253,169,41,169,239,170,110,63,150,104,132,254,20,197,209,114,84,241,110,117,177,154,165,35,82,143,65,109,127,120,46,123,139,243,119,89,86,195,246,58,3,163,14,91,64,184,57,247,137,117,108,126,255,24,66,243,65,250,221,135,224,63,0,59,25,220,78,11,156,62,107,155,165,219,40,243,220,108,2,52,202,250,116,238,255,213,191,157,240,207,119,20,9,236,123,247,219,236,48,52,173,72,230,155,151,59,208,47,235,199,144,3,20,189,83,239,224,201,84,185,145,142,99,89,95,214,1,23,98,26,179,145,135,6,108,95,222,183,213,10,84,115,11,165,238,58,208,53,0,89,255,70,86,126,191,176,13,254,142,136,63,42,29,212,16,31,48,44,70,226,177,146,184,71,136,169,108,114,126,5,93,153,4,208,112,224,143,67,94,6,201,78,27,1,113,212,222,140,196,136,152,148,101,66,128,190,97,117,172,201,26,213,29,12,63,58,148,242,134,31,162,153,111,156,104,163,157,228,83,12,54,159,67,3,19,125,6,79,197,153,132,215,99,178,227,65,174,126,167,134,17,50,161,39,31,204,58,203,177,172,144,3,231,122,126,138,154,221,106,172,88,225,20,3,214,126,14,27,146,7,5,191,161,219,5,209,109,40,243,55,122,14,19,148,89,250,199,122,14,243,17,141,243,128,75,125,192,115,174,48,216,124,14,109,213,115,222,199,123,207,115,116,152,82,57,79,183,255,138,7,120,243,202,22,211,130,158,56,15,121,163,113,139,233,200,157,248,64,251,124,204,172,14,252,145,219,217,143,29,8,101,5,228,214,84,178,142,10,253,181,191,55,32,66,195,55,215,4,218,194,138,64,15,198,96,57,144,55,8,171,156,46,11,56,121,219,144,6,80,255,70,78,39,174,204,240,147,125,163,100,92,27,96,170,20,182,74,223,197,245,181,39,250,172,166,153,154,81,227,114,22,231,96,227,205,229,102,6,199,89,3,101,82,103,184,89,74,99,252,107,229,101,85,173,137,44,169,214,73,248,109,230,185,35,253,53,92,225,180,103,107,244,239,176,2,101,248,53,118,63,206,68,129,234,172,194,23,105,149,215,231,40,234,188,236,196,105,50,69,200,217,60,148,138,54,107,167,168,137,148,185,220,50,138,170,106,46,98,214,165,242,190,102,52,89,84,150,109,109,122,85,229,26,141,24,204,67,90,48,217,236,1,26,199,114,200,139,43,168,63,78,85,112,9,243,243,232,162,49,51,156,163,115,213,95,41,245,127,48,247,243,7,122,18,254,101,89,68,114,98,101,250,199,11,99,151,157,197,90,179,95,22,100,33,197,57,224,173,81,244,195,196,248,193,214,89,35,44,217,73,159,2,104,59,134,0,12,95,101,99,110,159,47,53,25,161,203,59,254,50,99,151,162,10,63,186,155,53,47,153,72,195,156,105,139,251,89,50,57,200,212,213,73,159,133,111,164,39,41,112,165,72,116,183,246,92,39,6,179,255,144,227,148,201,127,124,101,227,75,164,182,26,216,52,67,201,1,202,167,213,74,178,254,68,181,150,66,109,209,161,212,77,187,14,161,217,219,9,139,192,202,248,245,21,224,115,106,102,17,230,233,84,54,138,64,122,79,215,196,212,192,12,95,247,1,163,59,161,181,13,243,86,89,136,157,165,185,56,223,45,91,106,64,181,133,168,202,43,52,170,215,26,216,75,85,55,83,80,214,109,186,1,209,140,118,234,160,60,240,7,217,153,169,146,211,137,39,47,254,55,146,149,178,184,35,102,106,111,142,72,174,151,21,72,233,251,195,51,73,46,203,242,192,178,91,244,212,2,56,36,109,210,249,151,179,110,235,209,89,151,115,196,71,15,138,103,211,242,200,37,223,228,99,224,63,82,72,102,175,201,213,222,207,167,211,231,249,178,174,164,47,181,74,96,87,117,111,34,58,222,225,189,74,146,221,224,253,242,189,221,27,56,90,102,184,206,20,165,255,229,219,192,55,48,181,204,112,157,41,74,255,171,119,140,111,224,105,158,224,42,75,140,252,151,46,46,223,192,15,163,126,149,25,70,251,139,87,161,111,96,103,162,127,149,33,70,125,160,101,217,124,197,135,30,145,26,236,20,124,60,46,29,143,62,201,233,11,87,217,174,158,216,39,243,61,252,47,156,50,112,186,97,223,137,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,119,32,34,124,28,153,164,252,115,11,59,61,22,17,238,52,145,227,68,190,18,112,199,155,90,164,49,253,203,185,178,107,244,189,124,162,39,136,203,221,45,241,158,131,207,125,141,100,145,121,122,184,244,72,201,53,21,169,77,52,8,19,144,243,238,170,236,128,147,254,173,194,108,241,95,46,99,136,39,59,100,197,148,145,167,147,175,78,184,219,33,67,25,232,162,200,255,238,181,29,98,29,218,213,24,157,125,183,219,37,205,185,39,144,228,16,95,119,204,42,164,43,159,188,110,233,161,146,94,161,51,181,15,243,182,57,62,146,35,186,141,217,55,240,38,32,47,169,77,170,107,226,18,20,115,2,127,175,83,41,2,90,167,18,228,190,17,90,213,252,184,64,163,203,88,148,89,228,110,100,223,141,167,67,84,111,244,238,191,160,25,226,16,159,83,11,152,128,169,5,72,220,162,19,128,55,41,236,187,10,89,160,174,106,99,6,29,32,76,236,30,234,238,177,141,251,11,57,207,153,131,129,22,87,195,61,121,14,250,138,241,241,212,191,9,251,94,72,195,100,251,58,117,109,167,8,147,134,151,132,35,62,248,246,141,125,47,97,210,28,58,157,128,77,84,167,99,240,48,60,216,126,164,180,211,110,88,6,84,232,80,134,109,132,19,58,105,51,71,186,178,179,119,47,97,173,103,237,219,183,239,136,124,57,67,31,64,43,189,89,95,252,6,153,112,18,78,191,128,166,238,68,212,91,115,19,103,225,152,148,133,43,219,180,156,86,217,28,143,70,174,156,47,90,219,57,199,207,45,85,135,107,211,15,49,243,50,54,1,212,185,233,243,252,133,49,150,149,71,0,122,238,14,251,253,26,183,166,58,14,74,198,203,55,205,134,238,251,147,212,231,85,27,217,204,3,222,44,244,90,118,198,9,245,133,105,191,46,31,46,29,36,191,103,28,131,151,190,37,236,253,116,39,46,33,29,158,209,225,72,67,31,119,19,112,215,99,92,145,239,215,136,24,62,143,145,161,30,89,52,176,59,35,45,219,180,194,87,176,61,134,77,35,94,68,39,150,149,2,64,165,62,94,176,164,52,86,102,136,214,241,126,18,230,16,110,54,210,39,204,185,234,180,0,247,195,53,20,66,228,139,80,22,59,63,35,55,253,228,13,141,183,165,87,137,18,238,182,31,223,127,27,215,57,143,126,93,134,145,18,130,54,164,14,189,70,84,27,55,99,168,17,76,195,10,72,213,177,157,223,10,115,176,45,208,218,45,171,255,2,193,128,231,116,176,58,0,0 };
+const uint8_t CSS_STYLE_GZIP[3484] PROGMEM = { 31,139,8,0,36,32,244,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,146,124,146,172,161,127,239,144,212,133,55,197,78,114,22,69,143,79,18,155,154,25,206,157,195,33,109,167,77,221,163,178,198,237,229,212,116,101,95,54,117,220,226,10,245,229,119,156,188,148,89,95,196,219,253,67,114,68,237,83,89,199,158,115,122,77,14,205,171,213,149,191,151,245,83,124,104,218,12,183,22,140,12,118,218,84,231,99,109,142,127,187,11,67,118,29,231,33,201,171,6,245,113,133,243,30,192,80,155,93,142,101,109,21,184,124,42,122,2,64,105,82,66,45,202,202,115,23,71,211,44,5,202,154,151,216,49,130,211,43,253,105,159,14,232,209,115,2,211,221,111,77,119,23,154,142,29,110,146,19,202,50,224,198,34,19,48,22,167,145,150,78,65,135,152,4,192,106,223,55,199,56,160,67,240,153,113,25,82,38,128,243,166,141,239,243,60,31,254,114,196,89,137,30,23,8,215,115,194,211,235,230,98,195,71,188,8,49,9,185,133,135,131,6,107,187,119,214,177,162,208,225,177,208,235,248,32,242,25,146,4,191,223,61,12,131,221,225,148,24,233,208,98,244,60,235,154,113,126,168,80,250,172,135,48,138,246,194,116,28,59,201,168,121,143,104,25,48,158,218,230,92,103,214,40,125,20,69,131,221,159,219,255,156,155,178,195,151,5,32,190,119,209,33,221,167,201,108,116,170,201,123,55,66,206,46,52,124,48,79,215,84,101,54,216,248,136,91,84,101,2,174,135,211,116,235,202,184,222,22,225,200,225,113,79,184,199,109,11,206,215,10,232,126,176,223,101,7,5,125,191,115,14,123,30,253,5,247,168,59,21,168,234,37,244,96,31,98,5,61,245,113,40,204,222,157,107,240,213,23,105,242,220,77,3,39,151,177,113,116,56,56,57,143,13,246,106,27,113,98,28,109,177,231,201,168,153,31,6,142,48,49,170,202,223,81,91,214,34,242,54,72,125,69,223,169,227,239,189,3,143,156,161,246,89,64,12,130,96,23,110,101,68,54,202,35,86,232,128,171,139,54,158,147,151,162,236,177,213,157,80,138,227,186,121,105,209,73,10,82,219,195,199,41,208,98,219,133,79,134,29,144,95,46,252,78,122,252,218,91,32,213,83,29,167,184,6,155,114,209,149,228,144,115,172,23,230,133,91,199,73,42,200,63,115,62,176,125,41,86,33,180,146,172,236,78,21,122,139,203,154,194,30,170,38,125,214,177,8,126,211,151,41,170,198,169,15,168,195,4,33,81,115,91,223,156,98,203,118,67,224,85,13,130,253,126,47,49,225,146,80,101,10,179,200,76,99,122,219,67,118,227,217,56,181,152,62,78,94,64,87,244,93,76,227,208,34,159,71,124,155,78,2,50,156,249,240,154,227,47,223,163,204,21,65,91,156,105,32,51,127,155,110,83,17,242,169,197,184,214,192,238,15,169,23,237,68,216,166,69,245,147,142,133,12,35,55,12,68,224,55,92,65,96,104,128,241,62,139,2,137,223,211,185,61,85,58,202,251,124,231,131,112,74,158,12,156,49,227,205,139,17,27,223,5,15,154,172,58,231,71,9,154,36,72,101,25,26,205,200,86,2,159,164,233,241,81,156,151,109,215,91,105,81,86,217,12,206,15,78,168,116,89,113,6,187,169,241,76,125,121,63,45,116,129,29,205,255,182,192,71,255,210,200,75,161,111,251,243,63,2,81,128,177,36,24,207,131,7,121,115,110,165,113,223,177,5,234,57,184,176,12,178,23,201,119,229,171,204,34,209,79,135,191,227,90,122,16,70,34,117,26,137,18,76,20,138,228,235,82,81,193,54,32,82,41,212,119,158,68,189,210,176,176,119,37,229,188,224,74,17,145,22,19,170,85,172,190,40,219,108,132,93,81,24,152,131,129,117,34,156,44,22,33,7,203,71,46,66,81,205,53,121,222,225,222,58,188,89,130,39,104,70,59,193,117,118,146,103,44,24,139,143,152,218,81,145,142,187,149,88,93,48,56,79,50,87,198,69,90,94,36,16,224,60,206,212,15,139,232,126,96,175,136,196,57,166,169,31,22,41,5,254,154,80,139,255,154,218,81,145,78,232,137,200,156,139,153,43,227,34,129,200,89,19,137,143,6,115,101,92,162,181,95,19,138,139,26,83,63,44,82,218,138,142,215,107,133,234,87,68,218,69,171,34,85,43,250,145,98,147,167,182,15,215,132,146,67,208,124,231,217,173,126,164,196,171,249,222,195,91,213,47,69,183,185,254,72,245,174,161,232,143,213,133,150,46,80,45,225,56,242,236,240,97,56,52,217,219,8,10,149,245,242,212,181,73,101,33,20,54,66,217,3,43,30,251,156,163,99,89,189,197,119,127,59,225,218,248,21,213,221,157,217,193,111,240,212,182,204,167,162,201,35,53,164,186,244,166,185,147,187,67,225,154,133,103,22,190,89,4,102,17,154,69,52,177,78,74,28,71,170,99,236,176,5,190,120,78,124,199,1,18,156,96,65,43,115,110,123,73,133,123,40,226,104,149,67,234,61,168,156,0,106,40,60,14,207,183,35,13,102,184,134,234,243,168,42,162,191,134,23,112,120,158,173,97,214,215,76,233,236,40,110,120,225,45,180,83,113,117,168,33,69,141,4,212,80,69,141,100,84,103,181,114,17,212,29,42,138,12,108,79,213,16,85,174,40,189,175,200,228,173,176,58,12,39,193,41,6,52,110,25,239,93,140,112,118,24,80,92,52,100,207,53,142,58,57,114,82,60,28,206,224,51,245,69,91,124,79,149,191,171,110,223,125,97,47,173,47,175,71,218,49,74,73,53,126,209,238,67,147,30,42,212,46,111,218,99,76,223,65,229,142,255,241,24,128,6,141,249,243,63,233,231,225,254,8,133,224,95,49,2,46,180,236,14,247,80,44,254,218,163,254,220,45,125,142,178,46,32,200,122,46,106,237,45,68,237,200,154,105,143,226,75,27,1,98,121,62,55,216,62,55,194,202,76,58,52,216,103,43,63,87,21,51,61,95,193,172,52,80,206,22,105,1,112,40,75,71,224,125,180,19,65,161,51,95,88,167,133,190,159,159,16,46,47,124,11,166,103,59,178,139,178,71,27,138,150,119,19,230,229,146,248,212,55,39,131,51,238,156,233,35,65,114,167,237,165,113,143,93,242,26,150,58,61,70,57,204,98,218,109,243,50,189,61,91,105,126,33,0,192,64,124,119,55,111,244,122,116,168,112,146,86,24,181,32,109,95,48,42,109,83,233,246,43,89,198,59,89,121,68,79,56,38,182,71,100,67,4,62,9,180,31,11,112,151,71,199,116,30,232,127,219,221,152,203,8,81,47,29,219,72,158,28,78,106,103,141,168,178,134,197,194,112,12,34,227,244,163,80,9,55,166,195,193,40,207,183,28,128,167,3,240,56,0,255,26,64,112,13,32,18,0,38,14,166,30,208,126,54,112,236,195,222,29,157,251,38,89,235,3,238,137,79,143,86,48,206,213,101,105,224,61,204,217,192,225,98,182,109,32,222,240,99,16,102,248,105,179,96,86,229,69,84,50,33,96,16,118,29,85,215,22,17,193,186,69,215,26,25,181,121,107,228,154,88,150,100,60,210,238,137,139,50,203,112,157,76,189,192,7,94,76,224,55,174,251,130,109,9,31,189,205,69,17,112,239,136,2,202,56,190,6,199,186,134,20,104,144,220,157,138,132,38,51,120,212,12,106,155,67,153,153,217,99,20,150,96,45,244,198,85,192,228,6,242,38,133,148,169,196,156,206,229,56,58,23,53,140,198,88,133,138,108,182,11,51,8,201,190,16,226,85,102,184,248,248,103,223,224,170,31,181,137,68,71,50,156,54,45,162,114,214,80,182,177,193,185,87,188,234,44,193,134,105,131,105,200,118,195,110,225,152,188,129,173,255,241,71,101,151,80,147,94,64,69,155,31,158,77,188,255,121,54,217,65,164,177,34,25,172,204,151,68,83,31,47,182,88,49,60,59,39,58,192,2,113,238,89,15,142,96,141,91,118,62,191,76,6,145,61,114,30,95,113,204,123,140,241,96,119,47,101,159,22,218,74,192,248,83,121,60,53,109,143,234,94,83,153,28,48,121,73,171,64,32,30,71,76,118,115,168,54,232,145,4,104,131,188,108,127,195,23,62,233,185,237,224,253,169,41,169,239,170,110,63,150,104,132,254,20,197,209,114,84,241,110,117,177,154,165,35,82,143,65,109,127,120,46,123,139,243,119,89,86,195,246,58,3,163,14,91,64,184,57,247,137,117,108,126,255,24,66,243,65,250,221,135,224,63,0,59,25,220,78,11,156,62,107,155,165,219,40,243,220,108,2,52,202,250,116,238,255,213,191,157,240,207,119,20,9,236,123,247,219,236,48,52,173,72,230,155,151,59,208,47,235,199,144,3,20,189,83,239,224,201,84,185,145,142,99,89,95,214,1,23,98,26,179,145,135,6,108,95,222,183,213,10,84,115,11,165,238,58,208,53,0,89,255,70,86,126,191,176,13,254,142,136,63,42,29,212,16,31,48,44,70,226,177,146,184,71,136,169,108,114,126,5,93,153,4,208,112,224,143,67,94,6,201,78,27,1,113,212,222,140,196,136,152,148,101,66,128,190,97,117,172,201,26,213,29,12,63,58,148,242,134,31,162,153,111,156,104,163,157,228,83,12,54,159,67,3,19,125,6,79,197,153,132,215,99,178,227,65,174,126,167,134,17,50,161,39,31,204,58,203,177,172,144,3,231,122,126,138,154,221,106,172,88,225,20,3,214,126,14,27,146,7,5,191,161,219,5,209,109,40,243,55,122,14,19,148,89,250,199,122,14,243,17,141,243,128,75,125,192,115,174,48,216,124,14,109,213,115,222,199,123,207,115,116,152,82,57,79,183,255,138,7,120,243,202,22,211,130,158,56,15,121,163,113,139,233,200,157,248,64,251,124,204,172,14,252,145,219,217,143,29,8,101,5,228,214,84,178,142,10,253,181,191,55,32,66,195,55,215,4,218,194,138,64,15,198,96,57,144,55,8,171,156,46,11,56,121,219,144,6,80,255,70,78,39,174,204,240,147,125,163,100,92,27,96,170,20,182,74,223,197,245,181,39,250,172,166,153,154,81,227,114,22,231,96,227,205,229,102,6,199,89,3,101,82,103,184,89,74,99,252,107,229,101,85,173,137,44,169,214,73,248,109,230,185,35,253,53,92,225,180,103,107,244,239,176,2,101,248,53,118,63,206,68,129,234,172,194,23,105,149,215,231,40,234,188,236,196,105,50,69,200,217,60,148,138,54,107,167,168,137,148,185,220,50,138,170,106,46,98,214,165,242,190,102,52,89,84,150,109,109,122,85,229,26,141,24,204,67,90,48,217,236,1,26,199,114,200,139,43,168,63,78,85,112,9,243,243,232,162,49,51,156,163,115,213,95,41,245,127,48,247,243,7,122,18,254,101,89,68,114,98,101,250,199,11,99,151,157,197,90,179,95,22,100,33,197,57,224,173,81,244,195,196,248,193,214,89,35,44,217,73,159,2,104,59,134,0,12,95,101,99,110,159,47,53,25,161,203,59,254,50,99,151,162,10,63,186,155,53,47,153,72,195,156,105,139,251,89,50,57,200,212,213,73,159,133,111,164,39,41,112,165,72,116,183,246,92,39,6,179,255,144,227,148,201,127,124,101,227,75,164,182,26,216,52,67,201,1,202,167,213,74,178,254,68,181,150,66,109,209,161,212,77,187,14,161,217,219,9,139,192,202,248,245,21,224,115,106,102,17,230,233,84,54,138,64,122,79,215,196,212,192,12,95,247,1,163,59,161,181,13,243,86,89,136,157,165,185,56,223,45,91,106,64,181,133,168,202,43,52,170,215,26,216,75,85,55,83,80,214,109,186,1,209,140,118,234,160,60,240,7,217,153,169,146,211,137,39,47,254,55,146,149,178,184,35,102,106,111,142,72,174,151,21,72,233,251,195,51,73,46,203,242,192,178,91,244,212,2,56,36,109,210,249,151,179,110,235,209,89,151,115,196,71,15,138,103,211,242,200,37,223,228,99,224,63,82,72,102,175,201,213,222,207,167,211,231,249,178,174,164,47,181,74,96,87,117,111,34,58,222,225,189,74,146,221,224,253,242,189,221,27,56,90,102,184,206,20,165,255,229,219,192,55,48,181,204,112,157,41,74,255,171,119,140,111,224,105,158,224,42,75,140,252,151,46,46,223,192,15,163,126,149,25,70,251,139,87,161,111,96,103,162,127,149,33,70,125,160,101,217,124,197,135,30,145,26,236,20,124,60,46,29,143,62,201,233,11,87,217,174,158,216,39,243,61,252,47,156,50,112,186,97,223,137,8,67,115,250,113,236,221,102,96,75,203,255,29,219,172,6,46,179,127,255,124,87,159,143,119,191,113,119,32,34,124,28,153,164,252,115,11,59,61,22,17,238,52,145,227,68,190,18,112,199,155,90,164,49,253,203,185,178,107,244,189,124,162,39,136,203,221,45,241,158,131,207,125,141,100,145,121,122,184,244,72,201,53,21,169,77,52,8,19,144,243,238,170,236,128,147,254,173,194,108,241,95,46,99,136,39,59,100,197,148,145,167,147,175,78,184,219,33,67,25,232,162,200,255,238,181,29,98,29,218,213,24,157,125,183,219,37,205,185,39,144,228,16,95,119,204,42,164,43,159,188,110,233,161,146,94,161,51,181,15,243,182,57,62,146,35,186,141,217,55,240,38,32,47,169,77,170,107,226,18,20,115,2,127,175,83,41,2,90,167,18,228,190,17,90,213,252,184,64,163,203,88,148,89,228,110,100,223,141,167,67,84,111,244,238,191,160,25,226,16,159,83,11,152,128,169,5,72,220,162,19,128,55,41,236,187,10,89,160,174,106,99,6,29,32,76,236,30,234,238,177,141,251,11,57,207,153,131,129,22,87,195,61,121,14,250,138,241,241,212,191,9,251,94,72,195,100,251,58,117,109,167,8,147,134,151,132,35,62,248,246,141,125,47,97,210,28,58,157,128,77,84,167,99,240,48,60,216,126,164,180,211,110,88,6,84,232,80,134,109,132,19,58,105,51,71,186,178,179,119,47,97,173,103,237,219,183,239,136,124,57,67,31,64,43,189,89,95,252,6,153,112,18,78,191,128,166,238,68,212,91,115,19,103,225,152,148,133,43,219,180,156,86,217,28,143,70,174,156,47,90,219,57,199,207,45,85,135,107,211,15,49,243,50,54,1,212,185,233,243,252,133,49,150,149,71,0,122,238,14,251,253,26,183,166,58,14,74,198,203,55,205,134,238,251,147,212,231,85,27,217,204,3,222,44,244,90,118,198,9,245,133,105,191,46,31,46,29,36,191,103,28,131,151,190,37,236,253,116,39,46,33,29,158,209,225,72,67,31,119,19,112,215,99,92,145,239,215,136,24,62,143,145,161,30,89,52,176,59,35,45,219,180,194,87,176,61,134,77,35,94,68,39,150,149,2,64,165,62,94,176,164,52,86,102,136,214,241,126,18,230,16,110,54,210,39,204,185,234,180,0,247,195,53,20,66,228,139,80,22,59,63,35,55,253,228,13,141,183,165,87,137,18,238,182,31,223,127,27,215,57,143,126,93,134,145,18,130,54,164,14,189,70,84,27,55,99,168,17,76,195,10,72,213,177,157,223,10,115,176,45,208,218,45,171,255,2,193,128,231,116,176,58,0,0 };

From 576890e033406de7a37b4f788cf25a3abfd3790a Mon Sep 17 00:00:00 2001
From: Ian Gray 
Date: Fri, 28 Jan 2022 20:31:25 +0000
Subject: [PATCH 8/8] Dynamic visibility support

The ability to make controls visible and invisible
was basically already supported, we just need to add
some minor handling in controls.js.
---
 README.md               | 12 ++++++++++++
 data/js/controls.js     |  7 +++++++
 data/js/controls.min.js |  3 +++
 src/ESPUI.cpp           |  9 +++++++++
 src/ESPUI.h             |  1 +
 src/dataControlsJS.h    |  5 ++++-
 6 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 4aa0db7..a9620ac 100644
--- a/README.md
+++ b/README.md
@@ -35,6 +35,7 @@ The Library runs on any kind of **ESP8266** and **ESP32** (NodeMCU, AI Thinker,
 - [Log output](#log-output)
 - [Colours](#colours)
 - [Advanced Features](#advanced-features)
+  * [Dynamic Visibility](#dynamic-visibility)
   * [Inline Styles](#inline-styles)
   * [Grouped controls](#grouped-controls)
   * [Wide controls](#wide-controls)
@@ -423,6 +424,17 @@ If you want more control over the UI design, see the Inline Styles section below
 ESPUI includes a range of advanced features that can customise your UIs.
 
 
+### Dynamic Visibility
+
+Cotrols can be made visible or invisible at runtime with the `updateVisibility()` function.
+
+```
+ESPUI.updateVisibility(controlId, false);
+```
+
+Note that you cannot hide individual controls from a [control group](#grouped-controls), you have to hide the entire group.
+
+
 ### Inline Styles
 
 You can add custom CSS styles to controls. This allows you to style the UI with custom colors, drop shadows, 
diff --git a/data/js/controls.js b/data/js/controls.js
index 595b686..85f50e3 100644
--- a/data/js/controls.js
+++ b/data/js/controls.js
@@ -575,6 +575,13 @@ function start() {
         $("#id" + data.id).attr("style", data.panelStyle);
       }
 
+      if(data.hasOwnProperty('visible')) {
+        if(data['visible']) 
+          $("#id" + data.id).show();
+        else
+          $("#id" + data.id).hide();
+      }
+
       if (data.type == UPDATE_SLIDER) {
         element.removeClass(
           "slider-turquoise slider-emerald slider-peterriver slider-wetasphalt slider-sunflower slider-carrot slider-alizarin"
diff --git a/data/js/controls.min.js b/data/js/controls.min.js
index 9fae5d1..d28100b 100644
--- a/data/js/controls.min.js
+++ b/data/js/controls.min.js
@@ -41,6 +41,9 @@ break;case UPDATE_BUTTON:$("#btn"+data.id).val(data.value);$("#btn"+data.id).tex
 break;case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);if(data.hasOwnProperty('elementStyle')){$("#gauge"+data.id).attr("style",data.elementStyle);}
 break;case UPDATE_ACCEL:break;case UPDATE_TIME:var rv=new Date().toISOString();websock.send("time:"+rv+":"+data.id);break;default:console.error("Unknown type or event");break;}
 if(data.type>=UPDATE_OFFSET&&data.typevisible = visibility;
+        updateControl(id);
+    }
+}
+
 void ESPUIClass::print(uint16_t id, const String& value)
 {
     updateControlValue(id, value);
diff --git a/src/ESPUI.h b/src/ESPUI.h
index 5643352..c913d39 100644
--- a/src/ESPUI.h
+++ b/src/ESPUI.h
@@ -301,6 +301,7 @@ public:
 
     void setPanelWide(uint16_t id, bool wide);
     void setVertical(uint16_t id, bool vert = true);
+    void updateVisibility(uint16_t id, bool visibility, int clientId = -1);
 
     // Variables
     const char* ui_title = "ESPUI"; // Store UI Title and Header Name
diff --git a/src/dataControlsJS.h b/src/dataControlsJS.h
index 30bbef2..8ae2444 100644
--- a/src/dataControlsJS.h
+++ b/src/dataControlsJS.h
@@ -42,6 +42,9 @@ break;case UPDATE_BUTTON:$("#btn"+data.id).val(data.value);$("#btn"+data.id).tex
 break;case UPDATE_PAD:case UPDATE_CPAD:break;case UPDATE_GAUGE:$("#gauge"+data.id).val(data.value);if(data.hasOwnProperty('elementStyle')){$("#gauge"+data.id).attr("style",data.elementStyle);}
 break;case UPDATE_ACCEL:break;case UPDATE_TIME:var rv=new Date().toISOString();websock.send("time:"+rv+":"+data.id);break;default:console.error("Unknown type or event");break;}
 if(data.type>=UPDATE_OFFSET&&data.type
";case UI_NUMBER:return"
";default:return"";}}
 )=====";
 
-const uint8_t JS_CONTROLS_GZIP[3941] PROGMEM = { 31,139,8,0,36,32,244,97,2,255,197,91,91,119,218,72,18,126,247,175,80,148,57,65,172,49,151,220,38,3,150,115,8,38,9,59,216,120,13,158,204,217,76,214,71,136,198,232,88,72,26,73,248,50,14,255,125,171,171,47,234,22,2,51,120,102,247,37,70,213,165,234,175,171,186,187,110,138,27,6,73,106,92,244,46,123,167,189,81,175,221,191,252,116,209,179,95,214,235,45,87,12,156,119,251,131,246,49,208,26,130,118,118,220,30,117,47,7,31,63,14,187,35,187,161,242,118,127,29,117,79,143,153,140,134,66,31,245,70,221,190,173,16,206,64,98,78,30,146,178,73,122,151,29,74,121,169,51,117,24,215,203,140,235,195,197,104,52,56,181,95,233,124,156,218,168,191,202,56,251,237,15,0,226,181,206,200,136,141,250,235,140,111,248,165,55,234,124,238,158,219,111,116,86,73,111,212,223,40,220,253,222,49,208,222,230,120,25,181,81,127,155,113,158,94,156,124,0,218,143,58,39,167,54,234,63,42,234,2,61,130,65,206,46,70,246,59,157,91,25,105,212,223,101,111,124,58,111,159,125,182,127,226,132,246,241,49,163,92,158,13,122,167,148,149,15,116,250,221,246,57,103,110,212,127,82,102,108,127,176,27,57,131,48,154,98,144,97,183,223,237,128,180,156,77,4,185,161,88,101,112,54,234,81,253,231,204,34,200,13,197,44,39,61,32,228,172,130,180,134,98,147,147,246,175,118,35,103,15,164,53,84,83,140,186,103,118,35,111,9,36,54,20,59,124,106,95,124,234,218,141,156,29,56,181,161,152,161,221,233,208,189,145,51,1,167,54,222,169,138,57,107,159,183,71,3,48,227,79,121,221,200,145,134,170,238,222,73,23,78,84,78,223,148,216,80,168,242,192,28,15,190,156,202,227,210,239,126,28,201,99,113,222,251,244,121,36,55,127,167,123,58,130,189,36,244,214,185,28,93,156,255,235,98,208,27,118,165,168,206,101,247,164,123,222,238,103,199,175,115,121,214,133,183,206,123,191,192,171,47,37,241,75,119,212,30,158,125,110,247,21,241,151,195,139,211,143,253,193,23,109,142,78,251,252,124,48,146,135,165,115,217,238,247,254,221,62,7,11,190,149,164,227,246,249,207,114,227,119,46,79,7,167,176,252,55,111,90,55,78,108,92,197,78,52,59,118,82,199,14,200,173,209,142,99,231,222,42,227,200,204,73,218,174,75,124,123,234,248,9,65,82,226,123,19,18,119,194,32,245,130,69,184,72,248,208,116,17,184,169,23,6,134,27,250,97,220,241,157,36,177,240,103,111,82,126,224,63,236,211,197,124,76,98,73,111,37,183,94,234,206,20,62,39,33,170,206,154,49,73,23,113,96,194,63,191,47,66,47,33,102,139,179,112,21,10,6,50,39,177,227,79,228,112,166,79,193,17,145,148,196,177,119,67,98,201,148,233,87,48,221,146,212,73,162,153,227,167,146,73,234,91,240,36,139,96,234,135,183,138,28,166,126,49,238,58,113,28,102,239,11,83,136,97,199,247,254,112,98,47,144,12,212,48,77,254,155,90,69,48,78,156,248,218,108,77,200,212,89,248,169,32,154,173,229,114,143,90,225,150,140,147,208,189,110,41,191,193,36,1,113,83,50,201,91,36,38,191,47,72,146,14,98,143,4,169,67,73,103,36,158,123,73,2,191,172,242,195,114,79,114,38,206,13,249,36,54,3,12,249,161,235,248,195,52,140,157,43,82,77,72,218,75,201,220,50,73,18,45,60,220,51,137,89,249,231,112,112,90,77,82,88,209,149,55,189,183,228,86,42,151,91,138,224,24,230,15,99,69,182,7,214,198,221,4,51,78,112,235,105,115,93,21,206,149,9,111,121,83,75,190,250,204,14,22,190,95,126,200,100,33,168,200,137,19,146,113,149,91,76,135,217,148,95,189,201,55,0,201,200,95,191,229,241,58,113,10,42,248,193,154,132,238,98,14,154,43,87,157,201,196,50,255,97,150,171,225,116,10,7,228,7,203,124,30,135,183,240,60,75,231,190,101,154,229,22,55,69,213,245,67,152,27,54,56,147,162,138,134,19,56,4,43,44,146,46,236,147,24,102,88,99,62,42,93,242,194,28,49,153,135,55,132,29,44,19,79,204,193,85,76,72,96,150,87,88,1,167,198,23,147,73,1,23,3,141,40,140,154,113,26,26,28,1,5,249,226,249,187,183,175,222,180,10,222,202,150,174,81,3,235,193,245,61,247,186,201,53,87,89,106,139,158,57,193,196,39,191,120,137,55,246,124,47,189,239,0,225,10,20,244,0,118,124,150,87,192,139,23,207,132,206,171,51,111,50,33,65,249,65,26,132,30,128,108,191,114,35,73,118,88,121,247,6,126,244,189,36,37,1,92,53,230,141,156,211,197,57,205,74,49,150,10,106,29,55,214,173,23,76,194,219,42,221,144,116,150,106,20,198,233,51,219,52,191,127,47,30,121,87,95,55,242,250,245,43,105,95,188,91,191,144,241,16,126,147,212,50,111,147,102,173,102,238,231,95,156,133,73,26,56,115,178,111,54,87,7,169,212,125,179,118,11,42,111,45,9,224,221,89,56,151,177,39,54,108,24,132,17,9,108,161,89,139,220,164,244,218,14,146,208,39,240,254,21,136,100,156,6,229,219,98,207,173,219,155,41,185,3,124,210,214,217,153,201,246,127,26,47,72,107,217,202,160,225,105,218,6,27,50,130,200,252,25,211,164,17,74,219,32,141,18,138,36,48,127,72,247,14,110,177,199,36,80,246,73,238,50,130,129,234,4,239,34,58,74,108,185,111,199,225,228,30,105,46,60,145,24,54,155,240,141,148,189,154,222,71,132,123,71,61,79,104,22,220,65,148,148,58,227,36,112,110,138,200,0,20,142,70,170,14,193,158,199,105,242,174,29,174,212,188,179,47,228,131,125,132,116,42,58,14,253,164,58,13,227,174,3,224,137,79,232,242,236,35,188,235,193,147,221,49,213,61,80,246,102,206,117,112,230,114,101,217,82,212,108,201,183,192,6,25,212,52,76,29,95,204,119,100,233,211,251,36,184,74,103,7,141,178,60,124,224,188,2,184,187,23,94,120,13,199,106,45,59,44,100,28,19,231,186,37,84,157,101,83,205,255,239,10,153,222,233,117,7,71,154,220,237,239,180,226,109,222,95,213,1,203,62,155,249,187,36,38,126,232,76,224,100,232,220,152,103,54,229,198,78,189,212,39,108,215,248,206,152,248,184,13,231,142,23,124,38,14,236,33,177,11,51,134,188,60,204,14,155,226,137,165,106,242,49,203,197,36,137,165,66,242,17,115,10,101,144,231,2,77,161,101,116,15,62,41,195,245,53,10,63,143,78,250,22,59,159,58,8,150,203,174,188,244,144,127,139,46,110,156,6,230,62,178,65,140,131,142,49,13,23,238,12,117,223,204,238,140,242,3,169,70,49,161,102,63,102,49,30,85,229,34,77,233,117,7,142,212,226,34,42,244,54,4,163,84,80,10,216,116,23,25,220,183,45,153,87,214,215,38,114,234,199,87,199,110,36,112,170,66,44,99,119,124,4,152,19,75,203,4,82,239,244,247,86,202,139,166,59,235,46,114,38,108,209,23,103,149,93,117,87,36,67,213,29,66,244,159,14,145,38,144,79,7,169,73,89,129,25,63,29,38,166,182,79,199,169,139,89,1,58,126,58,80,154,157,63,29,167,38,101,5,166,251,116,152,172,56,240,116,160,57,57,27,79,55,86,193,30,63,124,49,141,129,135,232,215,173,103,43,113,192,138,216,81,251,195,170,76,61,240,112,162,8,61,208,161,239,29,29,58,70,24,204,65,18,89,68,118,9,120,216,58,164,70,247,205,114,201,152,197,100,106,151,168,4,133,94,58,226,15,120,205,236,155,135,53,231,232,176,6,34,11,35,26,57,231,196,187,49,188,9,78,165,9,59,172,193,8,125,151,190,103,131,128,170,46,0,158,198,100,210,97,207,22,228,191,97,212,164,102,90,150,49,110,179,76,39,242,216,204,14,112,79,61,31,130,53,75,154,141,166,41,152,98,254,96,165,51,47,1,60,105,10,41,8,93,152,89,182,109,27,34,97,186,238,131,52,60,96,119,41,164,243,184,153,76,164,155,21,117,3,208,120,2,224,216,81,28,206,35,8,153,71,206,216,72,67,131,189,72,127,89,1,86,83,12,72,223,96,79,190,103,113,220,51,186,158,42,99,130,55,44,120,132,152,192,241,73,76,69,204,156,148,202,52,38,33,73,140,32,76,13,114,7,137,146,209,252,237,55,76,6,10,246,92,193,150,98,21,68,105,126,136,108,225,141,14,139,36,24,108,70,162,234,125,158,64,204,227,166,220,6,58,107,139,61,102,70,11,35,76,234,168,221,216,79,115,127,79,216,110,207,44,25,184,5,236,146,160,178,29,65,7,4,133,77,70,40,247,145,160,97,80,1,132,195,26,147,121,100,174,174,232,164,183,237,114,188,73,209,82,246,77,195,11,162,69,202,76,192,151,149,120,127,64,130,91,126,16,171,196,173,48,247,2,83,119,155,43,88,218,191,254,125,88,232,6,209,240,208,196,194,92,1,233,220,177,120,48,7,21,19,206,60,103,126,57,43,23,208,168,123,246,63,82,46,164,252,209,35,218,197,186,251,227,183,161,44,52,125,229,251,239,155,189,82,193,18,206,160,5,8,224,182,196,129,225,205,149,181,250,110,197,68,90,230,63,244,13,152,107,21,52,241,224,39,246,137,147,206,170,113,184,128,163,65,147,123,144,8,43,166,133,177,145,55,135,95,181,70,189,94,47,66,90,141,22,201,204,122,184,107,166,73,229,190,153,105,3,78,114,174,188,183,11,114,5,183,210,201,104,22,40,236,235,183,191,120,62,209,14,160,230,19,117,233,50,27,151,101,106,44,29,60,238,236,54,22,68,115,215,131,210,164,194,108,91,13,255,178,220,133,111,56,49,53,0,26,220,6,103,113,24,193,197,123,111,149,120,230,55,76,239,125,82,42,51,87,169,10,18,27,24,134,249,14,86,223,40,134,36,3,247,13,113,57,248,156,186,249,190,222,108,252,57,104,201,147,177,177,176,99,141,44,132,166,157,212,61,22,114,92,210,18,167,165,221,5,240,150,194,88,49,97,219,155,74,173,238,127,183,36,158,122,82,89,224,120,21,97,0,108,231,61,160,75,218,5,150,146,2,99,60,68,238,210,191,8,91,78,212,78,219,128,37,227,43,129,192,83,161,173,8,219,5,28,79,234,87,115,246,60,178,85,14,44,98,238,10,94,23,181,11,242,44,181,206,90,242,205,85,54,86,251,160,83,94,57,139,43,242,23,233,62,47,107,151,5,176,123,188,96,51,247,78,186,232,255,226,27,91,113,122,105,216,27,14,134,88,70,179,178,30,11,43,112,165,224,13,155,230,126,124,131,5,243,156,223,16,221,51,81,156,197,210,175,101,94,4,215,65,120,27,24,52,250,161,225,51,198,188,166,120,105,185,39,75,112,48,126,100,107,31,91,188,120,33,71,14,245,82,44,11,103,68,61,48,127,135,173,85,113,228,4,196,215,20,172,190,86,160,221,236,133,114,14,170,109,107,183,47,228,144,12,140,222,58,98,55,237,129,108,169,242,134,238,1,111,161,138,199,172,95,42,40,89,115,84,80,100,43,84,16,88,239,83,60,201,86,103,185,37,144,100,93,2,206,99,238,43,253,98,94,147,132,231,178,8,55,11,151,144,97,23,160,21,180,42,76,137,143,3,219,132,104,45,142,229,30,205,19,49,65,62,224,110,234,18,159,32,3,36,180,6,172,228,127,60,241,251,90,255,198,253,175,158,9,50,199,71,111,20,70,13,232,61,194,195,136,66,78,150,128,41,205,139,57,73,18,231,138,216,74,253,88,237,179,49,124,172,211,197,243,67,182,47,65,158,45,220,32,167,227,45,144,63,78,137,143,51,195,81,130,191,120,164,56,119,235,79,43,65,119,246,121,205,240,212,82,34,103,211,108,64,142,174,114,19,244,96,29,114,101,22,122,113,111,152,131,185,188,77,147,164,219,76,34,234,27,133,83,208,138,196,198,25,156,241,22,115,48,15,184,201,208,220,69,110,52,246,22,19,169,229,100,54,92,241,146,9,220,158,152,77,242,159,186,216,49,165,41,210,232,65,54,114,44,139,168,120,58,89,227,162,23,90,37,55,33,111,137,41,221,48,86,9,107,174,67,18,185,143,67,137,92,13,139,230,148,214,11,158,110,33,120,186,78,48,45,52,174,23,189,133,250,162,241,58,209,180,38,188,94,180,191,133,104,127,157,104,44,227,174,151,29,111,33,59,46,144,173,245,243,69,38,195,13,159,64,118,70,112,163,225,47,155,127,232,65,203,24,249,203,12,252,170,232,63,207,136,123,77,59,203,249,94,88,226,192,44,55,68,191,211,52,33,74,19,91,8,209,251,236,66,146,23,60,42,75,255,94,35,19,135,242,140,108,73,141,44,63,217,4,35,207,19,65,4,145,141,139,90,114,78,118,125,85,246,26,88,143,136,23,37,102,246,241,145,82,44,206,186,224,94,114,236,37,110,76,82,94,187,68,38,123,173,215,80,190,37,115,199,182,226,61,52,23,166,187,18,136,140,232,2,34,223,113,137,85,251,207,111,199,251,181,171,138,137,94,146,21,176,177,48,143,213,162,102,129,63,82,189,45,165,112,71,180,92,242,242,247,90,71,182,230,69,26,211,233,0,93,199,247,199,142,123,61,36,16,78,62,179,77,106,21,147,237,87,85,61,226,165,12,173,80,196,82,236,55,149,133,233,66,227,217,91,63,111,133,207,218,90,46,197,87,11,178,254,145,233,25,11,33,15,89,44,105,63,26,156,190,55,13,12,67,105,1,54,23,136,238,211,26,108,211,52,91,72,186,5,152,197,226,232,8,21,68,255,34,63,85,204,154,137,149,10,96,169,252,253,187,116,157,5,117,68,222,189,62,170,107,21,197,109,228,190,223,36,54,251,182,130,125,250,1,214,223,252,93,134,222,170,230,233,229,74,155,117,109,131,52,215,178,217,189,229,141,21,185,226,6,56,75,188,216,82,100,147,68,73,56,208,146,251,170,101,13,151,94,21,118,41,189,13,233,167,157,139,121,144,8,14,106,70,202,224,196,19,35,101,31,174,208,82,124,113,32,141,221,151,217,27,209,206,97,101,121,243,176,6,164,195,89,92,163,245,122,30,146,103,133,58,44,219,99,195,38,87,7,204,250,248,187,44,37,97,31,185,161,72,177,38,218,103,130,217,54,0,44,70,130,25,171,200,27,245,134,6,133,38,142,243,86,149,238,124,71,100,69,31,242,2,86,70,242,71,154,14,131,38,184,18,84,238,13,231,92,207,243,87,78,186,58,44,207,250,99,231,128,127,177,122,152,128,9,208,54,224,93,132,85,52,129,123,210,48,168,115,3,255,61,184,141,157,104,181,249,71,133,29,153,249,239,50,196,84,44,86,197,201,176,200,178,110,58,222,139,164,1,11,112,42,1,46,123,165,98,160,55,165,141,38,83,237,91,22,113,50,199,88,58,210,155,82,128,148,49,43,88,229,5,32,208,178,213,82,176,201,227,170,225,109,63,241,37,143,40,238,54,204,247,210,73,131,81,224,196,20,87,25,32,49,78,61,240,18,104,92,250,112,32,66,45,131,191,103,242,19,64,79,18,159,211,11,56,13,125,20,86,75,236,18,206,54,14,239,74,12,185,0,30,6,29,170,23,1,148,126,121,201,52,132,17,27,182,232,30,65,110,138,35,118,88,67,205,40,170,91,185,42,133,10,3,71,130,229,159,50,193,37,179,240,25,106,173,239,204,108,173,126,223,97,232,198,166,8,77,197,216,133,172,220,218,184,116,250,169,10,107,42,191,120,254,211,219,55,245,86,214,154,126,108,118,246,65,196,182,0,114,220,26,134,120,103,12,248,241,200,182,16,116,102,13,129,191,51,2,252,220,98,91,4,58,179,134,96,188,17,65,141,109,7,173,74,198,118,212,123,19,160,101,187,103,234,197,243,210,26,168,252,131,139,45,177,114,238,98,180,174,64,59,248,153,2,21,167,239,176,6,123,89,189,45,88,16,32,54,186,114,42,213,104,58,59,86,91,28,120,254,134,126,220,217,209,214,47,33,118,208,113,158,146,49,247,64,17,117,248,235,220,217,165,70,189,174,180,225,213,11,15,181,161,251,137,34,192,60,252,135,83,138,110,161,144,3,37,22,220,168,120,247,11,47,156,139,142,132,158,216,114,184,247,194,192,163,57,134,108,225,186,181,114,181,154,184,104,44,42,241,207,11,216,178,89,2,180,118,149,112,255,99,52,46,24,121,158,194,84,7,54,174,41,216,148,80,109,87,124,172,32,149,255,254,97,29,36,165,186,85,8,136,7,138,210,51,99,137,232,79,160,17,53,37,142,39,155,88,171,70,21,78,205,130,82,49,243,212,187,90,196,4,101,242,134,47,255,60,7,6,92,135,127,167,145,139,195,148,33,124,0,1,170,124,12,115,185,252,47,189,126,223,248,208,53,218,6,146,141,77,106,71,12,172,165,241,119,237,3,22,116,115,108,248,96,212,232,127,184,128,115,55,143,152,150,201,196,152,130,163,188,127,166,158,116,135,182,180,73,28,206,105,113,155,33,69,146,68,122,164,114,143,33,7,148,122,100,142,52,2,29,23,201,10,23,41,253,160,66,50,71,168,202,130,255,106,244,95,91,230,122,124,155,58,0,0 };
+const uint8_t JS_CONTROLS_GZIP[3973] PROGMEM = { 31,139,8,0,94,78,244,97,2,255,197,91,235,119,218,198,18,255,238,191,66,86,122,130,184,198,60,242,106,2,150,115,8,38,9,45,54,190,6,55,61,55,205,245,17,176,24,29,11,73,149,132,177,235,240,191,223,217,217,135,118,133,192,20,183,189,95,98,52,59,154,253,237,204,238,206,75,25,5,126,156,24,151,157,171,206,89,103,208,105,118,175,62,93,118,236,23,213,106,99,36,6,46,218,221,94,243,4,104,53,65,59,63,105,14,218,87,189,143,31,251,237,129,93,83,121,219,191,14,218,103,39,76,70,77,161,15,58,131,118,215,86,8,231,32,49,35,15,73,233,36,157,171,22,165,188,208,153,90,140,235,69,202,245,225,114,48,232,157,217,47,117,62,78,173,85,95,166,156,221,230,7,0,241,74,103,100,196,90,245,85,202,215,255,210,25,180,62,183,47,236,215,58,171,164,215,170,175,21,238,110,231,4,104,111,50,188,140,90,171,190,73,57,207,46,79,63,0,237,71,157,147,83,107,213,31,21,117,129,30,193,32,231,151,3,251,173,206,173,140,212,170,111,211,55,62,93,52,207,63,219,239,56,161,121,114,194,40,87,231,189,206,25,101,229,3,173,110,187,121,193,153,107,213,119,202,140,205,15,118,45,99,16,70,83,12,210,111,119,219,45,144,150,177,137,32,215,20,171,244,206,7,29,170,255,140,89,4,185,166,152,229,180,3,132,140,85,144,86,83,108,114,218,252,213,174,101,236,129,180,154,106,138,65,251,220,174,101,45,129,196,154,98,135,79,205,203,79,109,187,150,177,3,167,214,20,51,52,91,45,186,55,50,38,224,212,218,91,85,49,231,205,139,230,160,7,102,124,151,213,141,28,169,169,234,238,156,182,225,68,101,244,77,137,53,133,42,15,204,73,239,203,153,60,46,221,246,199,129,60,22,23,157,79,159,7,114,243,183,218,103,3,216,75,66,111,173,171,193,229,197,191,47,123,157,126,91,138,106,93,181,79,219,23,205,110,122,252,90,87,231,109,120,235,162,243,11,188,250,66,18,191,180,7,205,254,249,231,102,87,17,127,213,191,60,251,216,237,125,209,230,104,53,47,46,122,3,121,88,90,87,205,110,231,63,205,11,176,224,27,73,58,105,94,252,44,55,126,235,234,172,119,6,203,127,253,186,113,235,68,198,117,228,132,211,19,39,113,108,159,44,140,102,20,57,247,86,17,71,166,78,220,28,141,136,103,79,28,47,38,72,138,61,119,76,162,86,224,39,174,63,15,230,49,31,154,204,253,81,226,6,190,49,10,188,32,106,121,78,28,91,248,179,51,46,62,240,31,246,217,124,54,36,145,164,55,226,133,155,140,166,10,159,19,19,85,103,245,136,36,243,200,55,225,159,223,231,129,27,19,179,193,89,184,10,5,3,153,145,200,241,198,114,56,213,167,224,8,73,66,162,200,189,37,145,100,74,245,43,152,22,36,113,226,112,234,120,137,100,146,250,22,60,241,220,159,120,193,66,145,195,212,47,198,71,78,20,5,233,251,194,20,98,216,241,220,63,156,200,245,37,3,53,76,157,255,166,86,17,140,99,39,186,49,27,99,50,113,230,94,34,136,102,99,185,220,163,86,88,144,97,28,140,110,26,202,111,48,137,79,70,9,25,103,45,18,145,223,231,36,78,122,145,75,252,196,161,164,115,18,205,220,56,134,95,86,241,97,185,39,57,99,231,150,124,18,155,1,134,188,96,228,120,253,36,136,156,107,82,142,73,210,73,200,204,50,73,28,206,93,220,51,177,89,250,169,223,59,43,199,9,172,232,218,157,220,91,114,43,21,139,13,69,112,4,243,7,145,34,219,5,107,227,110,130,25,199,184,245,180,185,174,115,231,74,133,55,220,137,37,95,221,183,253,185,231,21,31,82,89,8,42,116,162,152,164,92,197,6,211,97,58,229,87,119,252,13,64,50,242,215,111,89,188,78,148,128,10,126,176,198,193,104,62,3,205,21,203,206,120,108,153,255,50,139,229,96,50,129,3,242,131,101,62,139,130,5,60,79,147,153,103,153,102,177,193,77,81,30,121,1,204,13,27,156,73,81,69,195,9,236,131,21,230,113,27,246,73,4,51,172,49,31,149,46,121,97,142,136,204,130,91,194,14,150,137,39,230,240,58,34,196,55,139,43,172,128,83,227,139,200,56,135,139,129,70,20,70,197,56,11,12,142,128,130,124,254,236,237,155,151,175,27,57,111,165,75,215,168,190,245,48,242,220,209,77,157,107,174,180,212,22,61,117,252,177,71,126,113,99,119,232,122,110,114,223,2,194,53,40,232,1,236,184,159,85,192,243,231,251,66,231,229,169,59,30,19,191,248,32,13,66,15,64,186,95,185,145,36,59,172,188,125,11,63,186,110,156,16,31,174,26,243,86,206,57,194,57,205,82,62,150,18,106,29,55,214,194,245,199,193,162,76,55,36,157,165,28,6,81,178,111,155,230,247,239,249,35,111,171,235,70,94,189,122,41,237,139,119,235,23,50,236,195,111,146,88,230,34,174,87,42,230,65,246,197,105,16,39,190,51,35,7,102,125,117,144,74,61,48,43,11,80,121,99,73,0,239,206,194,185,140,61,177,97,3,63,8,137,111,11,205,90,228,54,161,215,182,31,7,30,129,247,175,65,36,227,52,40,223,22,123,110,221,222,76,200,29,224,147,182,78,207,76,186,255,147,104,78,26,203,70,10,13,79,211,54,216,144,17,68,102,207,152,38,141,80,218,6,105,148,144,39,129,249,67,186,119,112,139,61,38,129,178,143,51,151,17,12,148,199,120,23,209,81,98,203,125,59,12,198,247,72,27,193,19,137,96,179,9,223,72,217,203,201,125,72,184,119,212,243,132,122,206,29,68,73,137,51,140,125,231,54,143,12,64,225,104,36,234,16,236,121,156,38,235,218,225,74,205,58,251,92,62,216,71,72,167,162,163,192,139,203,147,32,106,59,0,158,120,132,46,207,62,198,187,30,60,217,29,83,221,3,101,175,103,92,7,103,46,150,150,13,69,205,150,124,11,108,144,66,77,130,196,241,196,124,199,150,62,189,71,252,235,100,122,88,43,202,195,7,206,203,135,187,123,238,6,55,112,172,214,178,195,66,134,17,113,110,26,66,213,105,54,85,255,255,174,144,233,157,94,119,112,164,201,221,193,78,43,222,230,253,85,29,176,236,179,158,189,75,34,226,5,206,24,78,134,206,141,121,102,93,110,236,196,77,60,194,118,141,231,12,137,135,219,112,230,184,254,103,226,192,30,18,187,48,101,200,202,195,236,176,46,158,88,170,38,31,211,92,76,146,88,42,36,31,49,167,80,6,121,46,80,23,90,70,247,224,145,34,92,95,131,224,243,224,180,107,177,243,169,131,96,185,236,202,75,15,217,183,232,226,134,137,111,30,32,27,196,56,232,24,147,96,62,154,162,238,235,233,157,81,124,32,229,48,34,212,236,39,44,198,163,170,156,39,9,189,238,192,145,90,92,68,137,222,134,96,148,18,74,1,155,238,34,131,251,182,37,243,202,250,218,68,78,253,248,234,216,141,4,78,85,136,101,236,142,135,0,51,98,105,153,64,234,157,254,222,74,121,225,100,103,221,133,206,152,45,250,242,188,180,171,238,242,100,168,186,67,136,222,211,33,210,4,242,233,32,53,41,43,48,163,167,195,196,212,246,233,56,117,49,43,64,135,79,7,74,179,243,167,227,212,164,172,192,28,61,29,38,43,14,60,29,104,70,206,198,211,141,85,176,199,15,95,68,99,224,62,250,117,107,127,37,14,88,17,59,104,126,88,149,169,7,30,78,24,162,7,58,242,220,227,35,199,8,252,25,72,34,243,208,46,0,15,91,135,212,232,129,89,44,24,211,136,76,236,2,149,160,208,11,199,252,1,175,153,3,243,168,226,28,31,85,64,100,110,68,35,231,28,187,183,134,59,198,169,52,97,71,21,24,161,239,210,247,108,16,80,214,5,192,211,144,140,91,236,217,130,252,55,8,235,212,76,203,34,198,109,150,233,132,46,155,217,1,238,137,235,65,176,102,73,179,209,52,5,83,204,31,172,100,234,198,128,39,73,32,5,161,11,51,139,182,109,67,36,76,215,125,152,4,135,236,46,133,116,30,55,147,137,116,179,164,110,0,26,79,0,28,59,140,130,89,8,33,243,192,25,26,73,96,176,23,233,47,203,199,106,138,1,233,27,236,201,247,44,142,219,167,235,41,51,38,120,195,130,71,136,9,28,143,68,84,196,212,73,168,76,99,28,144,216,240,131,196,32,119,144,40,25,245,223,126,195,100,32,103,207,229,108,41,86,65,148,230,135,200,22,222,104,177,72,130,193,102,36,170,222,103,49,196,60,163,132,219,64,103,109,176,199,212,104,65,136,73,29,181,27,251,105,30,236,9,219,237,153,5,3,183,128,93,16,84,182,35,232,128,160,176,201,8,229,62,22,52,12,42,128,112,84,97,50,143,205,213,21,157,118,182,93,142,59,206,91,202,129,105,184,126,56,79,152,9,248,178,98,247,15,72,112,139,15,98,149,184,21,102,174,111,234,110,115,5,75,243,215,191,15,11,221,32,26,30,154,88,152,43,32,157,59,22,15,102,160,98,194,153,229,204,46,103,229,2,26,180,207,255,33,229,66,202,31,62,162,93,172,187,63,126,27,202,66,211,87,190,255,190,217,43,21,44,225,12,26,128,0,110,75,28,232,223,94,91,171,239,150,76,164,165,254,67,223,128,153,86,65,29,15,126,108,159,58,201,180,28,5,115,56,26,52,185,7,137,176,98,90,24,27,184,51,248,85,169,85,171,213,60,164,229,112,30,79,173,135,187,122,18,151,238,235,169,54,224,36,103,202,123,187,32,87,112,43,157,140,122,142,194,190,126,251,139,231,19,237,0,106,62,81,151,46,178,113,89,166,198,210,193,227,206,110,99,65,52,115,61,40,77,42,204,182,213,240,47,205,93,248,134,19,83,3,160,222,194,63,143,130,16,46,222,123,171,192,51,191,126,114,239,145,66,145,185,74,85,144,216,192,48,204,119,176,250,70,62,36,25,184,111,136,203,193,231,84,205,247,213,122,237,207,65,139,159,140,141,133,29,107,100,33,52,237,164,238,177,144,227,138,150,56,45,237,46,128,183,20,198,146,9,219,222,84,106,117,255,220,146,120,234,73,101,129,227,85,132,1,176,157,247,128,46,105,23,88,74,10,140,241,16,185,75,254,34,108,25,81,59,109,3,150,140,175,4,2,79,133,182,34,108,23,112,60,169,95,205,217,179,200,86,57,176,136,185,43,120,93,212,46,200,211,212,58,109,201,215,87,217,88,237,131,78,121,237,204,175,201,95,164,251,172,172,93,22,192,238,241,156,205,220,57,109,163,255,139,110,109,197,233,37,65,167,223,235,99,25,205,74,123,44,172,192,149,128,55,172,155,7,209,45,22,204,51,126,67,116,207,68,113,22,75,191,150,121,233,223,248,193,194,55,104,244,67,195,103,140,121,77,241,210,114,79,150,224,96,252,216,214,62,182,120,254,92,142,28,233,165,88,22,206,136,122,96,246,14,91,171,226,208,241,137,167,41,88,125,45,71,187,233,11,69,5,106,86,44,247,125,5,22,244,81,150,175,146,246,173,184,183,50,79,60,13,22,160,91,26,226,173,14,78,225,110,182,138,25,197,216,182,118,215,67,198,202,150,174,55,170,216,189,126,40,27,184,188,125,124,200,27,182,226,49,237,206,10,74,218,138,21,20,217,120,21,4,214,105,21,79,178,177,74,87,65,68,55,72,135,97,30,40,221,105,94,1,133,231,162,8,110,115,151,144,98,23,160,21,180,42,76,137,143,3,219,132,104,45,142,37,85,127,25,211,241,67,238,20,175,240,9,242,77,66,43,206,74,182,201,211,204,175,213,111,220,219,235,121,39,115,179,244,254,98,84,159,222,90,60,104,201,229,100,233,158,210,42,153,145,56,118,174,137,173,84,171,213,174,30,195,199,250,106,60,27,101,167,0,228,217,194,233,114,58,222,57,217,195,27,123,56,51,28,92,248,139,7,152,115,55,254,180,18,244,208,34,171,25,158,200,74,228,108,154,13,200,209,49,111,130,238,175,67,174,204,66,221,196,134,57,152,131,221,52,73,178,205,36,162,154,146,59,5,173,127,108,156,193,25,110,49,7,243,183,155,12,205,29,242,70,99,111,49,145,90,188,102,195,37,55,30,195,93,141,215,24,255,169,139,29,82,154,34,141,30,100,35,195,50,15,243,167,147,21,53,122,161,149,50,19,242,6,156,210,123,99,117,183,250,58,36,225,232,113,40,225,72,195,162,185,192,245,130,39,91,8,158,172,19,76,203,154,235,69,111,161,190,112,184,78,52,173,64,175,23,237,109,33,218,91,39,26,139,198,235,101,71,91,200,142,114,100,107,95,15,136,188,137,27,62,134,92,144,224,70,195,95,54,255,172,132,22,77,178,151,25,184,91,209,237,158,146,209,13,237,99,103,59,111,177,3,179,220,18,253,78,211,132,40,45,115,33,68,239,234,11,73,174,255,168,44,253,235,144,84,28,202,51,210,37,213,210,108,104,19,140,44,79,8,129,69,58,46,42,215,25,217,213,85,217,107,96,61,34,94,20,180,217,167,78,74,105,58,237,185,187,241,137,27,143,34,146,240,74,41,50,217,107,189,134,242,229,218,104,104,43,222,67,115,97,186,43,129,16,136,46,32,244,156,17,177,42,255,253,237,228,160,114,93,50,209,75,178,114,57,182,1,176,54,85,207,241,71,170,183,165,20,238,136,150,75,94,108,95,235,200,214,188,72,35,72,29,224,200,241,188,161,51,186,233,19,8,94,247,109,147,90,197,100,251,85,85,143,120,41,69,43,20,177,20,251,77,101,97,186,208,120,246,214,207,91,226,179,54,150,75,241,141,132,172,182,164,122,198,178,203,67,26,185,218,143,134,194,239,77,3,131,94,90,238,205,132,189,7,180,226,91,55,205,6,146,22,0,51,95,28,29,161,130,232,95,228,167,138,89,51,177,82,111,44,20,191,127,151,174,51,167,106,201,123,229,199,85,173,126,185,141,220,247,155,196,166,95,114,176,15,77,192,250,155,191,2,209,27,227,60,153,93,105,234,174,109,199,102,26,68,187,55,216,177,254,151,223,110,103,105,30,91,138,108,201,40,153,5,90,242,64,181,172,49,162,87,133,93,72,22,1,253,144,116,62,243,99,193,65,205,72,25,156,104,108,36,236,51,25,90,248,207,15,164,177,215,51,125,45,154,71,172,9,96,30,85,128,116,52,141,42,180,59,192,67,242,180,44,136,77,2,108,15,101,170,142,233,87,3,187,44,37,102,159,212,161,72,177,38,218,213,130,217,54,0,204,71,130,249,177,200,82,245,246,9,133,38,142,243,86,117,245,108,255,101,69,31,242,2,86,70,178,71,154,14,131,38,184,18,84,238,13,231,92,175,42,172,156,116,117,88,158,245,199,206,1,255,62,246,40,6,19,160,109,192,187,8,171,104,2,247,164,97,80,231,6,254,123,184,136,156,112,181,213,72,133,29,155,217,175,64,196,84,44,86,197,201,176,164,179,110,58,222,249,164,1,11,112,42,1,46,123,165,100,160,55,165,109,45,83,237,146,230,113,50,199,88,56,214,91,96,128,148,49,43,88,229,5,32,208,178,213,82,176,241,227,170,225,77,70,241,221,144,40,37,215,204,247,210,73,131,81,224,196,172,41,62,192,31,23,188,4,26,151,62,28,138,80,203,224,239,153,252,4,208,147,196,231,116,125,78,67,31,133,181,25,187,128,179,13,131,187,2,67,46,128,7,126,139,234,69,0,165,223,121,50,13,97,196,134,13,193,71,144,155,226,136,29,85,80,51,138,234,86,174,74,161,66,223,145,96,249,135,83,112,201,204,61,134,90,235,114,51,91,171,95,147,24,186,177,41,66,83,49,118,46,43,183,54,46,157,126,24,195,90,216,207,159,189,123,243,186,218,72,27,225,143,205,206,62,191,216,22,64,134,91,195,16,237,140,1,63,85,217,22,130,206,172,33,240,118,70,128,31,119,108,139,64,103,214,16,12,55,34,168,176,237,160,85,201,216,142,122,111,2,180,116,247,76,220,104,86,88,3,149,127,222,177,37,86,206,157,143,118,36,208,246,126,166,64,197,233,59,170,192,94,86,111,11,22,4,136,141,174,156,74,53,154,78,143,213,22,7,158,191,161,31,119,118,180,245,75,136,29,116,156,167,96,204,92,80,68,21,254,58,119,118,161,86,173,42,77,127,245,194,67,109,232,126,34,15,48,15,255,225,148,162,91,200,229,64,137,57,55,42,222,253,194,11,103,162,35,161,39,182,28,238,189,48,240,168,15,33,91,184,105,172,92,173,38,46,26,139,74,252,99,6,182,108,150,0,173,93,37,220,255,24,141,11,70,158,167,48,213,129,141,43,10,54,37,84,219,21,31,43,72,101,191,182,88,7,73,169,110,229,2,226,129,162,244,204,88,34,250,19,104,68,77,137,227,73,39,214,170,81,185,83,179,160,84,204,60,113,175,231,17,65,153,188,189,204,63,6,130,129,145,195,191,10,201,196,97,202,16,62,128,0,85,62,134,185,92,254,151,78,183,107,124,104,27,77,3,201,198,38,181,35,6,214,64,249,187,246,1,11,186,57,54,124,48,42,244,191,119,192,185,155,133,76,203,100,108,76,192,81,222,239,171,39,221,161,13,116,18,5,51,90,220,102,72,145,36,145,30,171,220,67,200,1,165,30,153,35,13,65,199,121,178,130,121,66,63,223,144,204,33,170,50,231,63,54,253,15,18,205,77,92,9,59,0,0 };