mirror of
https://github.com/luc-github/ESP3D-Configurator.git
synced 2026-02-20 01:11:24 +01:00
1 line
164 KiB
HTML
1 line
164 KiB
HTML
<!doctype html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>ESP3D-Configurator</title><style type="text/css">/*! Spectre.css v0.5.9 | MIT License | github.com/picturepan2/spectre */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,footer,header,nav,section{display:block}h1{font-size:2em;margin:.67em 0}figcaption,figure,main{display:block}hr{box-sizing:content-box;height:0;overflow:visible}a{background-color:transparent;-webkit-text-decoration-skip:objects}a:active,a:hover{outline-width:0}address{font-style:normal}b,strong{font-weight:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:"SF Mono","Segoe UI Mono","Roboto Mono",Menlo,Courier,monospace;font-size:1em}dfn{font-style:italic}small{font-size:80%;font-weight:400}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}img{border-style:none}svg:not(:root){overflow:hidden}button,input,optgroup,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}fieldset{border:0;margin:0;padding:0}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{display:inline-block;vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details,menu{display:block}summary{display:list-item;outline:0}canvas{display:inline-block}template{display:none}[hidden]{display:none}*,::after,::before{box-sizing:inherit}html{box-sizing:border-box;font-size:20px;line-height:1.5;-webkit-tap-highlight-color:transparent}body{background:#fff;color:#3b4351;font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;font-size:.8rem;overflow-x:hidden;text-rendering:optimizeLegibility}a{color:#5755d9;outline:0;text-decoration:none}a:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}a.active,a:active,a:focus,a:hover{color:#302ecd;text-decoration:underline}a:visited{color:#807fe2}h1,h2,h3,h4,h5,h6{color:inherit;font-weight:500;line-height:1.2;margin-bottom:.5em;margin-top:0}.h1,.h2,.h3,.h4,.h5,.h6{font-weight:500}.h1,h1{font-size:2rem}.h2,h2{font-size:1.6rem}.h3,h3{font-size:1.4rem}.h4,h4{font-size:1.2rem}.h5,h5{font-size:1rem}.h6,h6{font-size:.8rem}p{margin:0 0 1.2rem}a,ins,u{text-decoration-skip:ink edges}abbr[title]{border-bottom:.05rem dotted;cursor:help;text-decoration:none}kbd{border-radius:.2rem;line-height:1.25;padding:.1rem .2rem;background:#303742;color:#fff;font-size:.7rem}mark{background:#ffe9b3;color:#3b4351;border-bottom:.05rem solid #ffd367;border-radius:.2rem;padding:.05rem .1rem 0}blockquote{border-left:.1rem solid #dadee4;margin-left:0;padding:.4rem .8rem}blockquote p:last-child{margin-bottom:0}ol,ul{margin:.8rem 0 .8rem .8rem;padding:0}ol ol,ol ul,ul ol,ul ul{margin:.8rem 0 .8rem .8rem}ol li,ul li{margin-top:.4rem}ul{list-style:disc inside}ul ul{list-style-type:circle}ol{list-style:decimal inside}ol ol{list-style-type:lower-alpha}dl dt{font-weight:700}dl dd{margin:.4rem 0 .8rem 0}.lang-zh,.lang-zh-hans,html:lang(zh),html:lang(zh-Hans){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",sans-serif}.lang-zh-hant,html:lang(zh-Hant){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang TC","Hiragino Sans CNS","Microsoft JhengHei","Helvetica Neue",sans-serif}.lang-ja,html:lang(ja){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Hiragino Sans","Hiragino Kaku Gothic Pro","Yu Gothic",YuGothic,Meiryo,"Helvetica Neue",sans-serif}.lang-ko,html:lang(ko){font-family:-apple-system,system-ui,BlinkMacSystemFont,"Segoe UI",Roboto,"Malgun Gothic","Helvetica Neue",sans-serif}.lang-cjk ins,.lang-cjk u,:lang(ja) ins,:lang(ja) u,:lang(zh) ins,:lang(zh) u{border-bottom:.05rem solid;text-decoration:none}.lang-cjk del+del,.lang-cjk del+s,.lang-cjk ins+ins,.lang-cjk ins+u,.lang-cjk s+del,.lang-cjk s+s,.lang-cjk u+ins,.lang-cjk u+u,:lang(ja) del+del,:lang(ja) del+s,:lang(ja) ins+ins,:lang(ja) ins+u,:lang(ja) s+del,:lang(ja) s+s,:lang(ja) u+ins,:lang(ja) u+u,:lang(zh) del+del,:lang(zh) del+s,:lang(zh) ins+ins,:lang(zh) ins+u,:lang(zh) s+del,:lang(zh) s+s,:lang(zh) u+ins,:lang(zh) u+u{margin-left:.125em}.table{border-collapse:collapse;border-spacing:0;width:100%;text-align:left}.table.table-striped tbody tr:nth-of-type(odd){background:#f7f8f9}.table tbody tr.active,.table.table-striped tbody tr.active{background:#eef0f3}.table.table-hover tbody tr:hover{background:#eef0f3}.table.table-scroll{display:block;overflow-x:auto;padding-bottom:.75rem;white-space:nowrap}.table td,.table th{border-bottom:.05rem solid #dadee4;padding:.6rem .4rem}.table th{border-bottom-width:.1rem}.btn{appearance:none;background:#fff;border:.05rem solid #5755d9;border-radius:.2rem;color:#5755d9;cursor:pointer;display:inline-block;font-size:.8rem;height:1.8rem;line-height:1.2rem;outline:0;padding:.25rem .4rem;text-align:center;text-decoration:none;transition:background .2s,border .2s,box-shadow .2s,color .2s;user-select:none;vertical-align:middle;white-space:nowrap}.btn:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2)}.btn:focus,.btn:hover{background:#f1f1fc;border-color:#4b48d6;text-decoration:none}.btn.active,.btn:active{background:#4b48d6;border-color:#3634d2;color:#fff;text-decoration:none}.btn.active.loading::after,.btn:active.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.disabled,.btn:disabled,.btn[disabled]{cursor:default;opacity:.5;pointer-events:none}.btn.btn-primary{background:#5755d9;border-color:#4b48d6;color:#fff}.btn.btn-primary:focus,.btn.btn-primary:hover{background:#4240d4;border-color:#3634d2;color:#fff}.btn.btn-primary.active,.btn.btn-primary:active{background:#3a38d2;border-color:#302ecd;color:#fff}.btn.btn-primary.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.btn-success{background:#32b643;border-color:#2faa3f;color:#fff}.btn.btn-success:focus{box-shadow:0 0 0 .1rem rgba(50,182,67,.2)}.btn.btn-success:focus,.btn.btn-success:hover{background:#30ae40;border-color:#2da23c;color:#fff}.btn.btn-success.active,.btn.btn-success:active{background:#2a9a39;border-color:#278e34;color:#fff}.btn.btn-success.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.btn-error{background:red;border-color:#f00000;color:#fff}.btn.btn-error:focus{box-shadow:0 0 0 .1rem rgba(255,0,0,.2)}.btn.btn-error:focus,.btn.btn-error:hover{background:#f50000;border-color:#e60000;color:#fff}.btn.btn-error.active,.btn.btn-error:active{background:#db0000;border-color:#c00;color:#fff}.btn.btn-error.loading::after{border-bottom-color:#fff;border-left-color:#fff}.btn.btn-link{background:0 0;border-color:transparent;color:#5755d9}.btn.btn-link.active,.btn.btn-link:active,.btn.btn-link:focus,.btn.btn-link:hover{color:#302ecd}.btn.btn-sm{font-size:.7rem;height:1.4rem;padding:.05rem .3rem}.btn.btn-lg{font-size:.9rem;height:2rem;padding:.35rem .6rem}.btn.btn-block{display:block;width:100%}.btn.btn-action{width:1.8rem;padding-left:0;padding-right:0}.btn.btn-action.btn-sm{width:1.4rem}.btn.btn-action.btn-lg{width:2rem}.btn.btn-clear{background:0 0;border:0;color:currentColor;height:1rem;line-height:.8rem;margin-left:.2rem;margin-right:-2px;opacity:1;padding:.1rem;text-decoration:none;width:1rem}.btn.btn-clear:focus,.btn.btn-clear:hover{background:rgba(247,248,249,.5);opacity:.95}.btn.btn-clear::before{content:"✕"}.btn-group{display:inline-flex;flex-wrap:wrap}.btn-group .btn{flex:1 0 auto}.btn-group .btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group .btn:not(:first-child):not(:last-child){border-radius:0;margin-left:-.05rem}.btn-group .btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-.05rem}.btn-group .btn.active,.btn-group .btn:active,.btn-group .btn:focus,.btn-group .btn:hover{z-index:1}.btn-group.btn-group-block{display:flex}.btn-group.btn-group-block .btn{flex:1 0 0}.form-group:not(:last-child){margin-bottom:.4rem}fieldset{margin-bottom:.8rem}legend{font-size:.9rem;font-weight:500;margin-bottom:.8rem}.form-label{display:block;line-height:1.2rem;padding:.3rem 0}.form-label.label-sm{font-size:.7rem;padding:.1rem 0}.form-label.label-lg{font-size:.9rem;padding:.4rem 0}.form-input{appearance:none;background:#fff;background-image:none;border:.05rem solid #bcc3ce;border-radius:.2rem;color:#3b4351;display:block;font-size:.8rem;height:1.8rem;line-height:1.2rem;max-width:100%;outline:0;padding:.25rem .4rem;position:relative;transition:background .2s,border .2s,box-shadow .2s,color .2s;width:100%}.form-input:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2);border-color:#5755d9}.form-input::placeholder{color:#bcc3ce}.form-input.input-sm{font-size:.7rem;height:1.4rem;padding:.05rem .3rem}.form-input.input-lg{font-size:.9rem;height:2rem;padding:.35rem .6rem}.form-input.input-inline{display:inline-block;vertical-align:middle;width:auto}.form-input[type=file]{height:auto}textarea.form-input,textarea.form-input.input-lg,textarea.form-input.input-sm{height:auto}.form-input-hint{color:#bcc3ce;font-size:.7rem;margin-top:.2rem}.has-success .form-input-hint,.is-success+.form-input-hint{color:#32b643}.has-error .form-input-hint,.is-error+.form-input-hint{color:red}.form-select{appearance:none;border:.05rem solid #bcc3ce;border-radius:.2rem;color:inherit;font-size:.8rem;height:1.8rem;line-height:1.2rem;outline:0;padding:.25rem .4rem;vertical-align:middle;width:100%;background:#fff}.form-select:focus{box-shadow:0 0 0 .1rem rgba(87,85,217,.2);border-color:#5755d9}.form-select::-ms-expand{display:none}.form-select.select-sm{font-size:.7rem;height:1.4rem;padding:.05rem 1.1rem .05rem .3rem}.form-select.select-lg{font-size:.9rem;height:2rem;padding:.35rem 1.4rem .35rem .6rem}.form-select[multiple],.form-select[size]{height:auto;padding:.25rem .4rem}.form-select[multiple] option,.form-select[size] option{padding:.1rem .2rem}.form-select:not([multiple]):not([size]){background:#fff url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns=%27http://www.w3.org/2000/svg%27%20viewBox=%270%200%204%205%27%3E%3Cpath%20fill=%27%23667189%27%20d=%27M2%200L0%202h4zm0%205L0%203h4z%27/%3E%3C/svg%3E") no-repeat right .35rem center/.4rem .5rem;padding-right:1.2rem}.has-icon-left,.has-icon-right{position:relative}.has-icon-left .form-icon,.has-icon-right .form-icon{height:.8rem;margin:0 .25rem;position:absolute;top:50%;transform:translateY(-50%);width:.8rem;z-index:2}.has-icon-left .form-icon{left:.05rem}.has-icon-left .form-input{padding-left:1.3rem}.has-icon-right .form-icon{right:.05rem}.has-icon-right .form-input{padding-right:1.3rem}.form-checkbox,.form-radio,.form-switch{display:block;line-height:1.2rem;margin:.2rem 0;min-height:1.4rem;padding:.1rem .4rem .1rem 1.2rem;position:relative}.form-checkbox input,.form-radio input,.form-switch input{clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;position:absolute;width:1px}.form-checkbox input:focus+.form-icon,.form-radio input:focus+.form-icon,.form-switch input:focus+.form-icon{box-shadow:0 0 0 .1rem rgba(87,85,217,.2);border-color:#5755d9}.form-checkbox input:checked+.form-icon,.form-radio input:checked+.form-icon,.form-switch input:checked+.form-icon{background:#5755d9;border-color:#5755d9}.form-checkbox .form-icon,.form-radio .form-icon,.form-switch .form-icon{border:.05rem solid #bcc3ce;cursor:pointer;display:inline-block;position:absolute;transition:background .2s,border .2s,box-shadow .2s,color .2s}.form-checkbox.input-sm,.form-radio.input-sm,.form-switch.input-sm{font-size:.7rem;margin:0}.form-checkbox.input-lg,.form-radio.input-lg,.form-switch.input-lg{font-size:.9rem;margin:.3rem 0}.form-checkbox .form-icon,.form-radio .form-icon{background:#fff;height:.8rem;left:0;top:.3rem;width:.8rem}.form-checkbox input:active+.form-icon,.form-radio input:active+.form-icon{background:#eef0f3}.form-checkbox .form-icon{border-radius:.2rem}.form-checkbox input:checked+.form-icon::before{background-clip:padding-box;border:.1rem solid #fff;border-left-width:0;border-top-width:0;content:"";height:9px;left:50%;margin-left:-3px;margin-top:-6px;position:absolute;top:50%;transform:rotate(45deg);width:6px}.form-checkbox input:indeterminate+.form-icon{background:#5755d9;border-color:#5755d9}.form-checkbox input:indeterminate+.form-icon::before{background:#fff;content:"";height:2px;left:50%;margin-left:-5px;margin-top:-1px;position:absolute;top:50%;width:10px}.form-radio .form-icon{border-radius:50%}.form-radio input:checked+.form-icon::before{background:#fff;border-radius:50%;content:"";height:6px;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:6px}.form-switch{padding-left:2rem}.form-switch .form-icon{background:#bcc3ce;background-clip:padding-box;border-radius:.45rem;height:.9rem;left:0;top:.25rem;width:1.6rem}.form-switch .form-icon::before{background:#fff;border-radius:50%;content:"";display:block;height:.8rem;left:0;position:absolute;top:0;transition:background .2s,border .2s,box-shadow .2s,color .2s,left .2s;width:.8rem}.form-switch input:checked+.form-icon::before{left:14px}.form-switch input:active+.form-icon::before{background:#f7f8f9}.input-group{display:flex}.input-group .input-group-addon{background:#f7f8f9;border:.05rem solid #bcc3ce;border-radius:.2rem;line-height:1.2rem;padding:.25rem .4rem;white-space:nowrap}.input-group .input-group-addon.addon-sm{font-size:.7rem;padding:.05rem .3rem}.input-group .input-group-addon.addon-lg{font-size:.9rem;padding:.35rem .6rem}.input-group .form-input,.input-group .form-select{flex:1 1 auto;width:1%}.input-group .input-group-btn{z-index:1}.input-group .form-input:first-child:not(:last-child),.input-group .form-select:first-child:not(:last-child),.input-group .input-group-addon:first-child:not(:last-child),.input-group .input-group-btn:first-child:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.input-group .form-input:not(:first-child):not(:last-child),.input-group .form-select:not(:first-child):not(:last-child),.input-group .input-group-addon:not(:first-child):not(:last-child),.input-group .input-group-btn:not(:first-child):not(:last-child){border-radius:0;margin-left:-.05rem}.input-group .form-input:last-child:not(:first-child),.input-group .form-select:last-child:not(:first-child),.input-group .input-group-addon:last-child:not(:first-child),.input-group .input-group-btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0;margin-left:-.05rem}.input-group .form-input:focus,.input-group .form-select:focus,.input-group .input-group-addon:focus,.input-group .input-group-btn:focus{z-index:2}.input-group .form-select{width:auto}.input-group.input-inline{display:inline-flex}.form-input.is-success,.form-select.is-success,.has-success .form-input,.has-success .form-select{background:#f9fdfa;border-color:#32b643}.form-input.is-success:focus,.form-select.is-success:focus,.has-success .form-input:focus,.has-success .form-select:focus{box-shadow:0 0 0 .1rem rgba(50,182,67,.2)}.form-input.is-error,.form-select.is-error,.has-error .form-input,.has-error .form-select{background:#fff;border-color:red}.form-input.is-error:focus,.form-select.is-error:focus,.has-error .form-input:focus,.has-error .form-select:focus{box-shadow:0 0 0 .1rem rgba(255,0,0,.2)}.form-checkbox.is-error .form-icon,.form-radio.is-error .form-icon,.form-switch.is-error .form-icon,.has-error .form-checkbox .form-icon,.has-error .form-radio .form-icon,.has-error .form-switch .form-icon{border-color:red}.form-checkbox.is-error input:checked+.form-icon,.form-radio.is-error input:checked+.form-icon,.form-switch.is-error input:checked+.form-icon,.has-error .form-checkbox input:checked+.form-icon,.has-error .form-radio input:checked+.form-icon,.has-error .form-switch input:checked+.form-icon{background:red;border-color:red}.form-checkbox.is-error input:focus+.form-icon,.form-radio.is-error input:focus+.form-icon,.form-switch.is-error input:focus+.form-icon,.has-error .form-checkbox input:focus+.form-icon,.has-error .form-radio input:focus+.form-icon,.has-error .form-switch input:focus+.form-icon{box-shadow:0 0 0 .1rem rgba(255,0,0,.2);border-color:red}.form-checkbox.is-error input:indeterminate+.form-icon,.has-error .form-checkbox input:indeterminate+.form-icon{background:red;border-color:red}.form-input:not(:placeholder-shown):invalid{border-color:red}.form-input:not(:placeholder-shown):invalid:focus{box-shadow:0 0 0 .1rem rgba(255,0,0,.2);background:#fff}.form-input:not(:placeholder-shown):invalid+.form-input-hint{color:red}.form-input.disabled,.form-input:disabled,.form-select.disabled,.form-select:disabled{background-color:#eef0f3;cursor:not-allowed;opacity:.5}.form-input[readonly]{background-color:#f7f8f9}input.disabled+.form-icon,input:disabled+.form-icon{background:#eef0f3;cursor:not-allowed;opacity:.5}.form-switch input.disabled+.form-icon::before,.form-switch input:disabled+.form-icon::before{background:#fff}.form-horizontal{padding:.4rem 0}.form-horizontal .form-group{display:flex;flex-wrap:wrap}.form-inline{display:inline-block}.label{border-radius:.2rem;line-height:1.25;padding:.1rem .2rem;background:#eef0f3;color:#455060;display:inline-block}.label.label-rounded{border-radius:5rem;padding-left:.4rem;padding-right:.4rem}.label.label-primary{background:#5755d9;color:#fff}.label.label-secondary{background:#f1f1fc;color:#5755d9}.label.label-success{background:#32b643;color:#fff}.label.label-warning{background:#ffb700;color:#fff}.label.label-error{background:red;color:#fff}code{border-radius:.2rem;line-height:1.25;padding:.1rem .2rem;background:#fcf2f2;color:#d73e48;font-size:85%}.code{border-radius:.2rem;color:#3b4351;position:relative}.code::before{color:#bcc3ce;content:attr(data-lang);font-size:.7rem;position:absolute;right:.4rem;top:.1rem}.code code{background:#f7f8f9;color:inherit;display:block;line-height:1.5;overflow-x:auto;padding:1rem;width:100%}.img-responsive{display:block;height:auto;max-width:100%}.img-fit-cover{object-fit:cover}.img-fit-contain{object-fit:contain}.video-responsive{display:block;overflow:hidden;padding:0;position:relative;width:100%}.video-responsive::before{content:"";display:block;padding-bottom:56.25%}.video-responsive embed,.video-responsive iframe,.video-responsive object{border:0;bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}video.video-responsive{height:auto;max-width:100%}video.video-responsive::before{content:none}.video-responsive-4-3::before{padding-bottom:75%}.video-responsive-1-1::before{padding-bottom:100%}.figure{margin:0 0 .4rem 0}.figure .figure-caption{color:#66758c;margin-top:.4rem}.container{margin-left:auto;margin-right:auto;padding-left:.4rem;padding-right:.4rem;width:100%}.container.grid-xl{max-width:1296px}.container.grid-lg{max-width:976px}.container.grid-md{max-width:856px}.container.grid-sm{max-width:616px}.container.grid-xs{max-width:496px}.show-lg,.show-md,.show-sm,.show-xl,.show-xs{display:none!important}.cols,.columns{display:flex;flex-wrap:wrap;margin-left:-.4rem;margin-right:-.4rem}.cols.col-gapless,.columns.col-gapless{margin-left:0;margin-right:0}.cols.col-gapless>.column,.columns.col-gapless>.column{padding-left:0;padding-right:0}.cols.col-oneline,.columns.col-oneline{flex-wrap:nowrap;overflow-x:auto}.column,[class~=col-]{flex:1;max-width:100%;padding-left:.4rem;padding-right:.4rem}.column.col-1,.column.col-10,.column.col-11,.column.col-12,.column.col-2,.column.col-3,.column.col-4,.column.col-5,.column.col-6,.column.col-7,.column.col-8,.column.col-9,.column.col-auto,[class~=col-].col-1,[class~=col-].col-10,[class~=col-].col-11,[class~=col-].col-12,[class~=col-].col-2,[class~=col-].col-3,[class~=col-].col-4,[class~=col-].col-5,[class~=col-].col-6,[class~=col-].col-7,[class~=col-].col-8,[class~=col-].col-9,[class~=col-].col-auto{flex:none}.col-12{width:100%}.col-11{width:91.66666667%}.col-10{width:83.33333333%}.col-9{width:75%}.col-8{width:66.66666667%}.col-7{width:58.33333333%}.col-6{width:50%}.col-5{width:41.66666667%}.col-4{width:33.33333333%}.col-3{width:25%}.col-2{width:16.66666667%}.col-1{width:8.33333333%}.col-auto{flex:0 0 auto;max-width:none;width:auto}.col-mx-auto{margin-left:auto;margin-right:auto}.col-ml-auto{margin-left:auto}.col-mr-auto{margin-right:auto}@media(max-width:1280px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{flex:none}.col-xl-12{width:100%}.col-xl-11{width:91.66666667%}.col-xl-10{width:83.33333333%}.col-xl-9{width:75%}.col-xl-8{width:66.66666667%}.col-xl-7{width:58.33333333%}.col-xl-6{width:50%}.col-xl-5{width:41.66666667%}.col-xl-4{width:33.33333333%}.col-xl-3{width:25%}.col-xl-2{width:16.66666667%}.col-xl-1{width:8.33333333%}.col-xl-auto{width:auto}.hide-xl{display:none!important}.show-xl{display:block!important}}@media(max-width:960px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto{flex:none}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-auto{width:auto}.hide-lg{display:none!important}.show-lg{display:block!important}}@media(max-width:840px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto{flex:none}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-auto{width:auto}.hide-md{display:none!important}.show-md{display:block!important}}@media(max-width:600px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto{flex:none}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-auto{width:auto}.hide-sm{display:none!important}.show-sm{display:block!important}}@media(max-width:480px){.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-auto{flex:none}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-auto{width:auto}.hide-xs{display:none!important}.show-xs{display:block!important}}.navbar{align-items:stretch;display:flex;flex-wrap:wrap;justify-content:space-between}.navbar .navbar-section{align-items:center;display:flex;flex:1 0 0}.navbar .navbar-section:not(:first-child):last-child{justify-content:flex-end}.navbar .navbar-center{align-items:center;display:flex;flex:0 0 auto}.navbar .navbar-brand{font-size:.9rem;text-decoration:none}.badge{position:relative;white-space:nowrap}.badge:not([data-badge])::after,.badge[data-badge]::after{background:#5755d9;background-clip:padding-box;border-radius:.5rem;box-shadow:0 0 0 .1rem #fff;color:#fff;content:attr(data-badge);display:inline-block;transform:translate(-.05rem,-.5rem)}.badge[data-badge]::after{font-size:.7rem;height:.9rem;line-height:1;min-width:.9rem;padding:.1rem .2rem;text-align:center;white-space:nowrap}.badge:not([data-badge])::after,.badge[data-badge=""]::after{height:6px;min-width:6px;padding:0;width:6px}.badge.btn::after{position:absolute;top:0;right:0;transform:translate(50%,-50%)}.badge.avatar::after{position:absolute;top:14.64%;right:14.64%;transform:translate(50%,-50%);z-index:100}.bar{background:#eef0f3;border-radius:.2rem;display:flex;flex-wrap:nowrap;height:.8rem;width:100%}.bar.bar-sm{height:.2rem}.bar .bar-item{background:#5755d9;color:#fff;display:block;font-size:.7rem;flex-shrink:0;line-height:.8rem;height:100%;position:relative;text-align:center;width:0}.bar .bar-item:first-child{border-bottom-left-radius:.2rem;border-top-left-radius:.2rem}.bar .bar-item:last-child{border-bottom-right-radius:.2rem;border-top-right-radius:.2rem;flex-shrink:1}.bar-slider{height:.1rem;margin:.4rem 0;position:relative}.bar-slider .bar-item{left:0;padding:0;position:absolute}.bar-slider .bar-item:not(:last-child):first-child{background:#eef0f3;z-index:1}.bar-slider .bar-slider-btn{background:#5755d9;border:0;border-radius:50%;height:.6rem;padding:0;position:absolute;right:0;top:50%;transform:translate(50%,-50%);width:.6rem}.bar-slider .bar-slider-btn:active{box-shadow:0 0 0 .1rem #5755d9}.card{background:#fff;border:.05rem solid #dadee4;border-radius:.2rem;display:flex;flex-direction:column}.card .card-body,.card .card-footer,.card .card-header{padding:.8rem;padding-bottom:0}.card .card-body:last-child,.card .card-footer:last-child,.card .card-header:last-child{padding-bottom:.8rem}.card .card-body{flex:1 1 auto}.card .card-image{padding-top:.8rem}.card .card-image:first-child{padding-top:0}.card .card-image:first-child img{border-top-left-radius:.2rem;border-top-right-radius:.2rem}.card .card-image:last-child img{border-bottom-left-radius:.2rem;border-bottom-right-radius:.2rem}.dropdown{display:inline-block;position:relative}.dropdown .menu{animation:slide-down .15s ease 1;display:none;left:0;max-height:50vh;overflow-y:auto;position:absolute;top:100%}.dropdown.dropdown-right .menu{left:auto;right:0}.dropdown .dropdown-toggle:focus+.menu,.dropdown .menu:hover,.dropdown.active .menu{display:block}.dropdown .btn-group .dropdown-toggle:nth-last-child(2){border-bottom-right-radius:.2rem;border-top-right-radius:.2rem}.empty{background:#f7f8f9;border-radius:.2rem;color:#66758c;text-align:center;padding:3.2rem 1.6rem}.empty .empty-icon{margin-bottom:.8rem}.empty .empty-subtitle,.empty .empty-title{margin:.4rem auto}.empty .empty-action{margin-top:.8rem}.menu{box-shadow:0 .05rem .2rem rgba(48,55,66,.3);background:#fff;border-radius:.2rem;list-style:none;margin:0;min-width:180px;padding:.4rem;transform:translateY(.2rem);z-index:300}.menu.menu-nav{background:0 0;box-shadow:none}.menu .menu-item{margin-top:0;padding:0 .4rem;position:relative;text-decoration:none}.menu .menu-item>a{border-radius:.2rem;color:inherit;display:block;margin:0 -.4rem;padding:.2rem .4rem;text-decoration:none}.menu .menu-item>a:focus,.menu .menu-item>a:hover{background:#f1f1fc;color:#5755d9}.menu .menu-item>a.active,.menu .menu-item>a:active{background:#f1f1fc;color:#5755d9}.menu .menu-item .form-checkbox,.menu .menu-item .form-radio,.menu .menu-item .form-switch{margin:.1rem 0}.menu .menu-item+.menu-item{margin-top:.2rem}.menu .menu-badge{align-items:center;display:flex;height:100%;position:absolute;right:0;top:0}.menu .menu-badge .label{margin-right:.4rem}.modal{align-items:center;bottom:0;display:none;justify-content:center;left:0;opacity:0;overflow:hidden;padding:.4rem;position:fixed;right:0;top:0}.modal.active,.modal:target{display:flex;opacity:1;z-index:400}.modal.active .modal-overlay,.modal:target .modal-overlay{background:rgba(247,248,249,.75);bottom:0;cursor:default;display:block;left:0;position:absolute;right:0;top:0}.modal.active .modal-container,.modal:target .modal-container{animation:slide-down .2s ease 1;z-index:1}.modal.modal-sm .modal-container{max-width:320px;padding:0 .4rem}.modal.modal-lg .modal-overlay{background:#fff}.modal.modal-lg .modal-container{box-shadow:none;max-width:960px}.modal-container{box-shadow:0 .2rem .5rem rgba(48,55,66,.3);background:#fff;border-radius:.2rem;display:flex;flex-direction:column;max-height:75vh;max-width:640px;padding:0 .8rem;width:100%}.modal-container.modal-fullheight{max-height:100vh}.modal-container .modal-header{color:#303742;padding:.8rem}.modal-container .modal-body{overflow-y:auto;padding:.8rem;position:relative}.modal-container .modal-footer{padding:.8rem;text-align:right}.nav{display:flex;flex-direction:column;list-style:none;margin:.2rem 0}.nav .nav-item a{color:#66758c;padding:.2rem .4rem;text-decoration:none}.nav .nav-item a:focus,.nav .nav-item a:hover{color:#5755d9}.nav .nav-item.active>a{color:#505c6e;font-weight:700}.nav .nav-item.active>a:focus,.nav .nav-item.active>a:hover{color:#5755d9}.nav .nav{margin-bottom:.4rem;margin-left:.8rem}.panel{border:.05rem solid #dadee4;border-radius:.2rem;display:flex;flex-direction:column}.panel .panel-footer,.panel .panel-header{flex:0 0 auto;padding:.8rem}.panel .panel-nav{flex:0 0 auto}.panel .panel-body{flex:1 1 auto;overflow-y:auto;padding:0 .8rem}.step{display:flex;flex-wrap:nowrap;list-style:none;margin:.2rem 0;width:100%}.step .step-item{flex:1 1 0;margin-top:0;min-height:1rem;text-align:center;position:relative}.step .step-item:not(:first-child)::before{background:#5755d9;content:"";height:2px;left:-50%;position:absolute;top:9px;width:100%}.step .step-item a{color:#5755d9;display:inline-block;padding:20px 10px 0;text-decoration:none}.step .step-item a::before{background:#5755d9;border:.1rem solid #fff;border-radius:50%;content:"";display:block;height:.6rem;left:50%;position:absolute;top:.2rem;transform:translateX(-50%);width:.6rem;z-index:1}.step .step-item.active a::before{background:#fff;border:.1rem solid #5755d9}.step .step-item.active~.step-item::before{background:#dadee4}.step .step-item.active~.step-item a{color:#bcc3ce}.step .step-item.active~.step-item a::before{background:#dadee4}.tab{align-items:center;border-bottom:.05rem solid #dadee4;display:flex;flex-wrap:wrap;list-style:none;margin:.2rem 0 .15rem 0}.tab .tab-item{margin-top:0}.tab .tab-item a{border-bottom:.1rem solid transparent;color:inherit;display:block;margin:0 .4rem 0 0;padding:.4rem .2rem .3rem .2rem;text-decoration:none}.tab .tab-item a:focus,.tab .tab-item a:hover{color:#5755d9}.tab .tab-item a.active,.tab .tab-item.active a{border-bottom-color:#5755d9;color:#5755d9}.tab .tab-item.tab-action{flex:1 0 auto;text-align:right}.tab .tab-item .btn-clear{margin-top:-.2rem}.tab.tab-block .tab-item{flex:1 0 0;text-align:center}.tab.tab-block .tab-item a{margin:0}.tab.tab-block .tab-item .badge[data-badge]::after{position:absolute;right:.1rem;top:.1rem;transform:translate(0,0)}.tab:not(.tab-block) .badge{padding-right:0}.tile{align-content:space-between;align-items:flex-start;display:flex}.tile .tile-action,.tile .tile-icon{flex:0 0 auto}.tile .tile-content{flex:1 1 auto}.tile .tile-content:not(:first-child){padding-left:.4rem}.tile .tile-content:not(:last-child){padding-right:.4rem}.tile .tile-subtitle,.tile .tile-title{line-height:1.2rem}.tile.tile-centered{align-items:center}.tile.tile-centered .tile-content{overflow:hidden}.tile.tile-centered .tile-subtitle,.tile.tile-centered .tile-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-bottom:0}.toast{background:rgba(48,55,66,.95);border-color:#303742;border:.05rem solid #303742;border-radius:.2rem;color:#fff;display:block;padding:.4rem;width:100%}.toast.toast-primary{background:rgba(87,85,217,.95);border-color:#5755d9}.toast.toast-success{background:rgba(50,182,67,.95);border-color:#32b643}.toast.toast-warning{background:rgba(255,183,0,.95);border-color:#ffb700}.toast.toast-error{background:rgba(255,0,0,.95);border-color:red}.toast a{color:#fff;text-decoration:underline}.toast a.active,.toast a:active,.toast a:focus,.toast a:hover{opacity:.75}.toast .btn-clear{margin:.1rem}.toast p:last-child{margin-bottom:0}.tooltip{position:relative}.tooltip::after{background:rgba(48,55,66,.95);border-radius:.2rem;bottom:100%;color:#fff;content:attr(data-tooltip);display:block;font-size:.7rem;left:50%;max-width:320px;opacity:0;overflow:hidden;padding:.2rem .4rem;pointer-events:none;position:absolute;text-overflow:ellipsis;transform:translate(-50%,.4rem);transition:opacity .2s,transform .2s;white-space:pre;z-index:300}.tooltip:focus::after,.tooltip:hover::after{opacity:1;transform:translate(-50%,-.2rem)}.tooltip.disabled,.tooltip[disabled]{pointer-events:auto}.tooltip.tooltip-right::after{bottom:50%;left:100%;transform:translate(-.2rem,50%)}.tooltip.tooltip-right:focus::after,.tooltip.tooltip-right:hover::after{transform:translate(.2rem,50%)}.tooltip.tooltip-bottom::after{bottom:auto;top:100%;transform:translate(-50%,-.4rem)}.tooltip.tooltip-bottom:focus::after,.tooltip.tooltip-bottom:hover::after{transform:translate(-50%,.2rem)}.tooltip.tooltip-left::after{bottom:50%;left:auto;right:100%;transform:translate(.4rem,50%)}.tooltip.tooltip-left:focus::after,.tooltip.tooltip-left:hover::after{transform:translate(-.2rem,50%)}@keyframes loading{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}@keyframes slide-down{0%{opacity:0;transform:translateY(-1.6rem)}100%{opacity:1;transform:translateY(0)}}.text-primary{color:#5755d9!important}a.text-primary:focus,a.text-primary:hover{color:#4240d4}a.text-primary:visited{color:#6c6ade}.text-secondary{color:#e5e5f9!important}a.text-secondary:focus,a.text-secondary:hover{color:#d1d0f4}a.text-secondary:visited{color:#fafafe}.text-gray{color:#bcc3ce!important}a.text-gray:focus,a.text-gray:hover{color:#adb6c4}a.text-gray:visited{color:#cbd0d9}.text-light{color:#fff!important}a.text-light:focus,a.text-light:hover{color:#f2f2f2}a.text-light:visited{color:#fff}.text-dark{color:#3b4351!important}a.text-dark:focus,a.text-dark:hover{color:#303742}a.text-dark:visited{color:#455060}.text-success{color:#32b643!important}a.text-success:focus,a.text-success:hover{color:#2da23c}a.text-success:visited{color:#39c94b}.text-warning{color:#ffb700!important}a.text-warning:focus,a.text-warning:hover{color:#e6a500}a.text-warning:visited{color:#ffbe1a}.text-error{color:red!important}a.text-error:focus,a.text-error:hover{color:#e60000}a.text-error:visited{color:#ff1a1a}.bg-primary{background:#5755d9!important;color:#fff}.bg-secondary{background:#f1f1fc!important}.bg-dark{background:#303742!important;color:#fff}.bg-gray{background:#f7f8f9!important}.bg-success{background:#32b643!important;color:#fff}.bg-warning{background:#ffb700!important;color:#fff}.bg-error{background:red!important;color:#fff}.c-hand{cursor:pointer}.c-move{cursor:move}.c-zoom-in{cursor:zoom-in}.c-zoom-out{cursor:zoom-out}.c-not-allowed{cursor:not-allowed}.c-auto{cursor:auto}.d-block{display:block}.d-inline{display:inline}.d-inline-block{display:inline-block}.d-flex{display:flex}.d-inline-flex{display:inline-flex}.d-hide,.d-none{display:none!important}.d-visible{visibility:visible}.d-invisible{visibility:hidden}.text-hide{background:0 0;border:0;color:transparent;font-size:0;line-height:0;text-shadow:none}.text-assistive{border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.divider,.divider-vert{display:block;position:relative}.divider-vert[data-content]::after,.divider[data-content]::after{background:#fff;color:#bcc3ce;content:attr(data-content);display:inline-block;font-size:.7rem;padding:0 .4rem;transform:translateY(-.65rem)}.divider{border-top:.05rem solid #f1f3f5;height:.05rem;margin:.4rem 0}.divider[data-content]{margin:.8rem 0}.divider-vert{display:block;padding:.8rem}.divider-vert::before{border-left:.05rem solid #dadee4;bottom:.4rem;content:"";display:block;left:50%;position:absolute;top:.4rem;transform:translateX(-50%)}.divider-vert[data-content]::after{left:50%;padding:.2rem 0;position:absolute;top:50%;transform:translate(-50%,-50%)}.loading{color:transparent!important;min-height:.8rem;pointer-events:none;position:relative}.loading::after{animation:loading .5s infinite linear;background:0 0;border:.1rem solid #5755d9;border-radius:50%;border-right-color:transparent;border-top-color:transparent;content:"";display:block;height:.8rem;left:50%;margin-left:-.4rem;margin-top:-.4rem;opacity:1;padding:0;position:absolute;top:50%;width:.8rem;z-index:1}.loading.loading-lg{min-height:2rem}.loading.loading-lg::after{height:1.6rem;margin-left:-.8rem;margin-top:-.8rem;width:1.6rem}.clearfix::after{clear:both;content:"";display:table}.float-left{float:left!important}.float-right{float:right!important}.p-relative{position:relative!important}.p-absolute{position:absolute!important}.p-fixed{position:fixed!important}.p-sticky{position:sticky!important}.p-centered{display:block;float:none;margin-left:auto;margin-right:auto}.flex-centered{align-items:center;display:flex;justify-content:center}.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.ml-0{margin-left:0!important}.mr-0{margin-right:0!important}.mt-0{margin-top:0!important}.mx-0{margin-left:0!important;margin-right:0!important}.my-0{margin-bottom:0!important;margin-top:0!important}.m-1{margin:.2rem!important}.mb-1{margin-bottom:.2rem!important}.ml-1{margin-left:.2rem!important}.mr-1{margin-right:.2rem!important}.mt-1{margin-top:.2rem!important}.mx-1{margin-left:.2rem!important;margin-right:.2rem!important}.my-1{margin-bottom:.2rem!important;margin-top:.2rem!important}.m-2{margin:.4rem!important}.mb-2{margin-bottom:.4rem!important}.ml-2{margin-left:.4rem!important}.mr-2{margin-right:.4rem!important}.mt-2{margin-top:.4rem!important}.mx-2{margin-left:.4rem!important;margin-right:.4rem!important}.my-2{margin-bottom:.4rem!important;margin-top:.4rem!important}.p-0{padding:0!important}.pb-0{padding-bottom:0!important}.pl-0{padding-left:0!important}.pr-0{padding-right:0!important}.pt-0{padding-top:0!important}.px-0{padding-left:0!important;padding-right:0!important}.py-0{padding-bottom:0!important;padding-top:0!important}.p-1{padding:.2rem!important}.pb-1{padding-bottom:.2rem!important}.pl-1{padding-left:.2rem!important}.pr-1{padding-right:.2rem!important}.pt-1{padding-top:.2rem!important}.px-1{padding-left:.2rem!important;padding-right:.2rem!important}.py-1{padding-bottom:.2rem!important;padding-top:.2rem!important}.p-2{padding:.4rem!important}.pb-2{padding-bottom:.4rem!important}.pl-2{padding-left:.4rem!important}.pr-2{padding-right:.4rem!important}.pt-2{padding-top:.4rem!important}.px-2{padding-left:.4rem!important;padding-right:.4rem!important}.py-2{padding-bottom:.4rem!important;padding-top:.4rem!important}.s-rounded{border-radius:.2rem}.s-circle{border-radius:50%}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-normal{font-weight:400}.text-bold{font-weight:700}.text-italic{font-style:italic}.text-large{font-size:1.2em}.text-small{font-size:.9em}.text-tiny{font-size:.8em}.text-muted{opacity:.8}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-clip{overflow:hidden;text-overflow:clip;white-space:nowrap}.text-break{hyphens:auto;word-break:break-word;word-wrap:break-word}/*! Spectre.css Icons v0.5.9 | MIT License | github.com/picturepan2/spectre */.icon{box-sizing:border-box;display:inline-block;font-size:inherit;font-style:normal;height:1em;position:relative;text-indent:-9999px;vertical-align:middle;width:1em}.icon::after,.icon::before{content:"";display:block;left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.icon.icon-2x{font-size:1.6rem}.icon.icon-3x{font-size:2.4rem}.icon.icon-4x{font-size:3.2rem}.accordion .icon,.btn .icon,.menu .icon,.toast .icon{vertical-align:-10%}.btn-lg .icon{vertical-align:-15%}.icon-arrow-down::before,.icon-arrow-left::before,.icon-arrow-right::before,.icon-arrow-up::before,.icon-back::before,.icon-downward::before,.icon-forward::before,.icon-upward::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.65em;width:.65em}.icon-arrow-down::before{transform:translate(-50%,-75%) rotate(225deg)}.icon-arrow-left::before{transform:translate(-25%,-50%) rotate(-45deg)}.icon-arrow-right::before{transform:translate(-75%,-50%) rotate(135deg)}.icon-arrow-up::before{transform:translate(-50%,-25%) rotate(45deg)}.icon-back::after,.icon-forward::after{background:currentColor;height:.1rem;width:.8em}.icon-downward::after,.icon-upward::after{background:currentColor;height:.8em;width:.1rem}.icon-back::after{left:55%}.icon-back::before{transform:translate(-50%,-50%) rotate(-45deg)}.icon-downward::after{top:45%}.icon-downward::before{transform:translate(-50%,-50%) rotate(-135deg)}.icon-forward::after{left:45%}.icon-forward::before{transform:translate(-50%,-50%) rotate(135deg)}.icon-upward::after{top:55%}.icon-upward::before{transform:translate(-50%,-50%) rotate(45deg)}.icon-caret::before{border-top:.3em solid currentColor;border-right:.3em solid transparent;border-left:.3em solid transparent;height:0;transform:translate(-50%,-25%);width:0}.icon-menu::before{background:currentColor;box-shadow:0 -.35em,0 .35em;height:.1rem;width:100%}.icon-apps::before{background:currentColor;box-shadow:-.35em -.35em,-.35em 0,-.35em .35em,0 -.35em,0 .35em,.35em -.35em,.35em 0,.35em .35em;height:3px;width:3px}.icon-resize-horiz::after,.icon-resize-horiz::before,.icon-resize-vert::after,.icon-resize-vert::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.45em;width:.45em}.icon-resize-horiz::before,.icon-resize-vert::before{transform:translate(-50%,-90%) rotate(45deg)}.icon-resize-horiz::after,.icon-resize-vert::after{transform:translate(-50%,-10%) rotate(225deg)}.icon-resize-horiz::before{transform:translate(-90%,-50%) rotate(-45deg)}.icon-resize-horiz::after{transform:translate(-10%,-50%) rotate(135deg)}.icon-more-horiz::before,.icon-more-vert::before{background:currentColor;box-shadow:-.4em 0,.4em 0;border-radius:50%;height:3px;width:3px}.icon-more-vert::before{box-shadow:0 -.4em,0 .4em}.icon-cross::before,.icon-minus::before,.icon-plus::before{background:currentColor;height:.1rem;width:100%}.icon-cross::after,.icon-plus::after{background:currentColor;height:100%;width:.1rem}.icon-cross::before{width:100%}.icon-cross::after{height:100%}.icon-cross::after,.icon-cross::before{transform:translate(-50%,-50%) rotate(45deg)}.icon-check::before{border:.1rem solid currentColor;border-right:0;border-top:0;height:.5em;width:.9em;transform:translate(-50%,-75%) rotate(-45deg)}.icon-stop{border:.1rem solid currentColor;border-radius:50%}.icon-stop::before{background:currentColor;height:.1rem;transform:translate(-50%,-50%) rotate(45deg);width:1em}.icon-shutdown{border:.1rem solid currentColor;border-radius:50%;border-top-color:transparent}.icon-shutdown::before{background:currentColor;content:"";height:.5em;top:.1em;width:.1rem}.icon-refresh::before{border:.1rem solid currentColor;border-radius:50%;border-right-color:transparent;height:1em;width:1em}.icon-refresh::after{border:.2em solid currentColor;border-top-color:transparent;border-left-color:transparent;height:0;left:80%;top:20%;width:0}.icon-search::before{border:.1rem solid currentColor;border-radius:50%;height:.75em;left:5%;top:5%;transform:translate(0,0) rotate(45deg);width:.75em}.icon-search::after{background:currentColor;height:.1rem;left:80%;top:80%;transform:translate(-50%,-50%) rotate(45deg);width:.4em}.icon-edit::before{border:.1rem solid currentColor;height:.4em;transform:translate(-40%,-60%) rotate(-45deg);width:.85em}.icon-edit::after{border:.15em solid currentColor;border-top-color:transparent;border-right-color:transparent;height:0;left:5%;top:95%;transform:translate(0,-100%);width:0}.icon-delete::before{border:.1rem solid currentColor;border-bottom-left-radius:.2rem;border-bottom-right-radius:.2rem;border-top:0;height:.75em;top:60%;width:.75em}.icon-delete::after{background:currentColor;box-shadow:-.25em .2em,.25em .2em;height:.1rem;top:.05rem;width:.5em}.icon-share{border:.1rem solid currentColor;border-radius:.2rem;border-right:0;border-top:0}.icon-share::before{border:.1rem solid currentColor;border-left:0;border-top:0;height:.4em;left:100%;top:.25em;transform:translate(-125%,-50%) rotate(-45deg);width:.4em}.icon-share::after{border:.1rem solid currentColor;border-bottom:0;border-right:0;border-radius:75% 0;height:.5em;width:.6em}.icon-flag::before{background:currentColor;height:1em;left:15%;width:.1rem}.icon-flag::after{border:.1rem solid currentColor;border-bottom-right-radius:.2rem;border-left:0;border-top-right-radius:.2rem;height:.65em;top:35%;left:60%;width:.8em}.icon-bookmark::before{border:.1rem solid currentColor;border-bottom:0;border-top-left-radius:.2rem;border-top-right-radius:.2rem;height:.9em;width:.8em}.icon-bookmark::after{border:.1rem solid currentColor;border-bottom:0;border-left:0;border-radius:.2rem;height:.5em;transform:translate(-50%,35%) rotate(-45deg) skew(15deg,15deg);width:.5em}.icon-download,.icon-upload{border-bottom:.1rem solid currentColor}.icon-download::before,.icon-upload::before{border:.1rem solid currentColor;border-bottom:0;border-right:0;height:.5em;width:.5em;transform:translate(-50%,-60%) rotate(-135deg)}.icon-download::after,.icon-upload::after{background:currentColor;height:.6em;top:40%;width:.1rem}.icon-upload::before{transform:translate(-50%,-60%) rotate(45deg)}.icon-upload::after{top:50%}.icon-copy::before{border:.1rem solid currentColor;border-radius:.2rem;border-right:0;border-bottom:0;height:.8em;left:40%;top:35%;width:.8em}.icon-copy::after{border:.1rem solid currentColor;border-radius:.2rem;height:.8em;left:60%;top:60%;width:.8em}.icon-time{border:.1rem solid currentColor;border-radius:50%}.icon-time::before{background:currentColor;height:.4em;transform:translate(-50%,-75%);width:.1rem}.icon-time::after{background:currentColor;height:.3em;transform:translate(-50%,-75%) rotate(90deg);transform-origin:50% 90%;width:.1rem}.icon-mail::before{border:.1rem solid currentColor;border-radius:.2rem;height:.8em;width:1em}.icon-mail::after{border:.1rem solid currentColor;border-right:0;border-top:0;height:.5em;transform:translate(-50%,-90%) rotate(-45deg) skew(10deg,10deg);width:.5em}.icon-people::before{border:.1rem solid currentColor;border-radius:50%;height:.45em;top:25%;width:.45em}.icon-people::after{border:.1rem solid currentColor;border-radius:50% 50% 0 0;height:.4em;top:75%;width:.9em}.icon-message{border:.1rem solid currentColor;border-bottom:0;border-radius:.2rem;border-right:0}.icon-message::before{border:.1rem solid currentColor;border-bottom-right-radius:.2rem;border-left:0;border-top:0;height:.8em;left:65%;top:40%;width:.7em}.icon-message::after{background:currentColor;border-radius:.2rem;height:.3em;left:10%;top:100%;transform:translate(0,-90%) rotate(45deg);width:.1rem}.icon-photo{border:.1rem solid currentColor;border-radius:.2rem}.icon-photo::before{border:.1rem solid currentColor;border-radius:50%;height:.25em;left:35%;top:35%;width:.25em}.icon-photo::after{border:.1rem solid currentColor;border-bottom:0;border-left:0;height:.5em;left:60%;transform:translate(-50%,25%) rotate(-45deg);width:.5em}.icon-link::after,.icon-link::before{border:.1rem solid currentColor;border-radius:5em 0 0 5em;border-right:0;height:.5em;width:.75em}.icon-link::before{transform:translate(-70%,-45%) rotate(-45deg)}.icon-link::after{transform:translate(-30%,-55%) rotate(135deg)}.icon-location::before{border:.1rem solid currentColor;border-radius:50% 50% 50% 0;height:.8em;transform:translate(-50%,-60%) rotate(-45deg);width:.8em}.icon-location::after{border:.1rem solid currentColor;border-radius:50%;height:.2em;transform:translate(-50%,-80%);width:.2em}.icon-emoji{border:.1rem solid currentColor;border-radius:50%}.icon-emoji::before{border-radius:50%;box-shadow:-.17em -.1em,.17em -.1em;height:.15em;width:.15em}.icon-emoji::after{border:.1rem solid currentColor;border-bottom-color:transparent;border-radius:50%;border-right-color:transparent;height:.5em;transform:translate(-50%,-40%) rotate(-135deg);width:.5em}/*! Spectre.css Experimentals v0.5.9 | MIT License | github.com/picturepan2/spectre */body,html{height:100vh;margin:0;overflow-y:hidden;user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}#app{display:flex;flex-flow:column;height:100%}.fullscreen{height:100vh}.information-container,.menu-container{flex:0 1 auto}.main-page-container{flex:1 1 auto;overflow-y:auto;height:100%;margin-bottom:2rem}#main-container{padding:1em}@media(max-width:600px){#main-container{padding:0}}.toasts-container{position:fixed;z-index:1000;right:.5rem;top:.5rem}.toasts-container>.toast{margin:.2rem 0}.footer-container{height:3rem}.no-box{box-shadow:0 0 0 .1rem transparent!important}.centered{position:fixed;top:50%;left:50%;-ms-transform:translate(-50%,-50%);-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.mobile-view .hide-low{display:none!important}.mobile-view .show-low{display:block!important}.show-low{display:none}.panels-container{display:grid;grid-gap:5px;grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.flex-cols{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.image-button-bar{text-align:center}.buttons-bar{display:flex}.btn-xs{font-size:.4rem;height:1rem;margin-top:.1rem;padding:.035rem .15rem}.btn-close{padding-left:3px!important}.btn-header{background-color:#f1f1fc}.emergency-btn{color:#ff5160;background-color:#fff;border-color:#ff5160}.emergency-btn:hover{background-color:red;color:#fff}.emergency-btn:active{color:red;background-color:#fff}.itemEditor{display:flex;flex-direction:column;border:.05rem solid #dadee4;border-radius:.2rem;margin-bottom:.4rem;width:100%}.information-buttons-bar{display:flex;align-content:center;justify-content:center}.drop-zone{border:none;height:100%}.selection-list{list-style-type:none}.item-selection-list{cursor:pointer;text-align:center;border-radius:10px}.item-selection-list:hover{background-color:#f1f1fc}.files-list{border:.05rem solid #dadee4;border-radius:.2rem;padding:5px 5px!important;overflow-x:hidden;overflow-y:scroll!important}.drop-zone--over{border-radius:10px;background:linear-gradient(90deg,#00f 50%,transparent 50%),linear-gradient(90deg,#00f 50%,transparent 50%),linear-gradient(0deg,#00f 50%,transparent 50%),linear-gradient(0deg,#00f 50%,transparent 50%);background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:15px 4px,15px 4px,4px 15px,4px 15px;animation:border-dance 4s infinite linear}.fieldset-no-top-separator{margin-top:-1.8rem}.fieldset-bottom-separator{border-bottom:.05rem solid #dadee4}.fieldset-top-separator{border-top:.05rem solid #dadee4}.fieldset-bottom-separator legend{margin-left:-.5rem}.field-group{color:#00f;font-size:.8rem}.fields-line{display:flex;width:100%;flex-direction:row;justify-content:space-between;align-items:center}.items-group-content{display:flex;flex-direction:column;margin-top:-1rem;padding-bottom:.5rem;width:100%}.item-list-move{flex-grow:1}.item-list-name{display:flex;justify-content:center}.field-group-content{display:flex;flex-direction:column;padding-left:.5rem;margin-top:-1rem;padding-bottom:.5rem;max-width:fit-content}.maxwidth{width:100%;max-width:100%}.terminal{font-size:.7rem;white-space:pre-wrap;word-break:break-all;border:.05rem solid #dadee4;border-radius:.2rem;padding:5px 5px!important;margin-top:0!important;overflow-x:hidden;overflow-y:scroll!important;user-select:text;-moz-user-select:text;-webkit-user-select:text;-ms-user-select:text}.terminal .echo{color:#00f}.terminal .error{color:red;font-weight:bolder}.terminal pre{margin:0 5px;white-space:pre-wrap;word-break:break-all}@keyframes border-dance{0%{background-position:0 0,100% 100%,0 100%,100% 0}100%{background-position:100% 0,0 100%,0 0,100% 100%}}.comment{background:#f1f1fc;color:#5755d9;padding-left:.5rem}.submitBtn{display:none}.has-modification .submitBtn{display:block}.files-list-footer{color:#5755d9}.file-line-controls{flex-grow:1;display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center}.file-line-name,.flex-pack{align-items:center;justify-content:flex-start;display:flex;flex-wrap:nowrap}.file-line-action,.file-line-action label{cursor:pointer}.file-line-action:active{color:#00f;font-weight:bolder}.file-line{display:-ms-flexbox;display:flex;flex-flow:row wrap;justify-content:space-between;align-items:center;line-height:2.2rem}.bordered{border:.05rem solid #dadee4;border-radius:.2rem}.bordered_warning{border:.1rem solid #ffb700;border-radius:.2rem}.file-line:hover{color:#5755d9;background-color:#f1f1fc;border-radius:.2rem}.camera-container,.image-container{border:none;width:100%}.m-05{margin:.05rem!important}.error-login-message{color:red;background-color:#fff;font-weight:bolder;text-align:center}.content-container,.extensionContainer{border:none;height:100%;width:100%}.body-extension{overflow-y:auto!important}.btn-close:hover,.btn-header:hover,.mobile-view .btn-close,.mobile-view .btn-header{color:#fff!important;background-color:#00f!important}.logo{padding-top:7px;padding-left:4px;padding-right:4px;border-radius:5px}.passwordReveal{color:silver;cursor:pointer;margin-top:-.22rem!important;margin-right:.9rem!important}.passwordReveal:hover{color:#00f}.align-top{align-items:top!important;-ms-flex-align:top!important}a label{cursor:pointer}.flex-wrap .form-label{margin-right:10px}.notification-line{overflow-x:hidden;line-height:24px!important;padding-top:4px!important;padding-left:4px;padding-right:4px;cursor:pointer}.notification-line:hover{background-color:#f1f1fc}.feather-icon-container .text-ellipsis,.feather-icon-container .text-menu-item,.feather-icon-container label{vertical-align:top;margin-left:.25rem;margin-right:.25rem}.tooltip>span,.tooltip>svg{pointer-events:none}.form-group .form-label,.form-switch{cursor:pointer;user-select:none}.fit-content{width:fit-content}.has-modification svg{color:#ffb700}.has-error svg{color:red}.has-success svg{color:#32b643}.has-modification .form-input-hint,.has-modification label,.is-modified+.form-input-hint{color:#ffb700}.form-input.is-modified,.form-select.is-modified,.has-modification .form-input,.has-modification .form-select{background:#fffaf7;border-color:#ffb700}.form-input.is-modified:focus,.form-select.is-modified:focus,.has-modification .form-input:focus,.has-modification .form-select:focus{box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.form-checkbox.is-modified .form-icon,.form-radio.is-modified .form-icon,.form-switch.is-modified .form-icon,.has-modification .form-checkbox .form-icon,.has-modification .form-radio .form-icon,.has-modification .form-switch .form-icon{border-color:#ffb700}.form-checkbox.is-modified input:checked+.form-icon,.form-radio.is-modified input:checked+.form-icon,.form-switch.is-modified input:checked+.form-icon,.has-modification .form-checkbox input:checked+.form-icon,.has-modification .form-radio input:checked+.form-icon,.has-modification .form-switch input:checked+.form-icon{background:#ffb700;border-color:#ffb700}.form-checkbox.is-modified input:focus+.form-icon,.form-radio.is-modified input:focus+.form-icon,.form-switch.is-modified input:focus+.form-icon,.has-modification .form-checkbox input:focus+.form-icon,.has-modification .form-radio input:focus+.form-icon,.has-modification .form-switch input:focus+.form-icon{border-color:#ffb700;box-shadow:0 0 0 .1rem rgba(232,86,0,.2)}.form-checkbox.is-modified input:indeterminate+.form-icon,.has-modification .form-checkbox input:indeterminate+.form-icon{background:#ffb700;border-color:#ffb700}.has-button-submit .form-input{border-radius:.2rem!important}.has-modification .has-button-submit .form-input{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.flatbtn input[type=radio]{display:none}.flatbtn input[type=radio]:not(:disabled)~label{cursor:pointer}.flatbtn input[type=radio]:disabled~label{color:#bcc2bf;border-color:#bcc2bf;box-shadow:none;cursor:not-allowed}.flatbtn label{font-size:.8rem;height:1.8rem;line-height:1.8rem;display:block;background:#fff;border:.05rem solid #5755d9;border-top:0;text-align:center;color:#5755d9;position:relative;min-width:2rem}.flatbtn input[type=radio]:active+label{background:#00f;color:#fff}.flatbtn input[type=radio]:checked+label{background:#5755d9;color:#fff}.flatbtn .last-button{border-radius:0 0 5px 5px}.menu-panel-item{display:flex;justify-content:space-between}.text-menu-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:5px}.menu-panel-item .feather-icon-container{vertical-align:middle;margin-top:.2rem}.menu-item{color:#5755d9}.menu .menu-item>.menu-entry{border-radius:.2rem;color:inherit;display:block;margin:0 -.4rem;padding:.2rem .4rem;text-decoration:none;cursor:pointer}.menu .menu-item>.menu-entry:focus,.menu .menu-item>.menu-entry:hover{background:#f1f1fc;color:#5755d9}.menu .menu-item>.menu-entry.active,.menu .menu-item>.menu-entry:active{background:inherit;color:inherit}.panel .menu-item.active,.panel .menu-item:active{background:#5755d9;color:#f1f1fc;border-radius:.2rem}.tab-item{color:#8080ff!important}li .active,section .active{color:#00f!important;font-weight:700}.mobile-view li .active,.mobile-view section .active{background-color:rgba(0,0,255,.1)!important}.navbar{padding:0;padding-left:15px;background-color:#eef0f3}.tab-item{pointer-events:none}.tab .tab-item .btn{border-radius:0}.panel-dashboard,.panel-features,.panel-interface{user-select:none;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none}.macro-buttons-panel{display:-ms-flexbox;display:flex;flex-flow:row wrap;justify-content:space-between;align-content:stretch}.panel{min-height:300px;max-height:650px}.panel-body-dashboard,.panel-body-features,.panel-body-interface{display:flex;flex-flow:column}.panel .navbar,.panel .navbar-section{background:#f1f1fc;color:#5755d9}.panel-item{flex:0 1 auto}.files-list-footer{padding:.2rem .8rem!important}.column .panel{height:100%;box-shadow:0 0 14px -5px rgba(0,0,0,.05)}.loading-panel{display:flex;justify-content:center;align-items:center;height:100%;width:100%}@media(max-width:480px){.hide-low{display:none!important}.show-low{display:block!important}li .active,section .active{background-color:rgba(100,100,100,.1)!important}.btn-close,.btn-header{color:#fff!important;background-color:#00f!important}}</style></head><body><script defer="defer">!function(){"use strict";var e,t,n,i,l,o,s,a={},r=[],d=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;function u(e,t){for(var n in t)e[n]=t[n];return e}function c(e){var t=e.parentNode;t&&t.removeChild(e)}function p(t,n,i){var l,o,s,a={};for(s in n)"key"==s?l=n[s]:"ref"==s?o=n[s]:a[s]=n[s];if(arguments.length>2&&(a.children=arguments.length>3?e.call(arguments,2):i),"function"==typeof t&&null!=t.defaultProps)for(s in t.defaultProps)void 0===a[s]&&(a[s]=t.defaultProps[s]);return _(t,a,l,o,null)}function _(e,i,l,o,s){var a={type:e,props:i,key:l,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,__h:null,constructor:void 0,__v:null==s?++n:s};return null==s&&null!=t.vnode&&t.vnode(a),a}function f(e){return e.children}function v(e,t){this.props=e,this.context=t}function b(e,t){if(null==t)return e.__?b(e.__,e.__.__k.indexOf(e)+1):null;for(var n;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return"function"==typeof e.type?b(e):null}function h(e){var t,n;if(null!=(e=e.__)&&null!=e.__c){for(e.__e=e.__c.base=null,t=0;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e){e.__e=e.__c.base=n.__e;break}return h(e)}}function m(e){(!e.__d&&(e.__d=!0)&&i.push(e)&&!E.__r++||o!==t.debounceRendering)&&((o=t.debounceRendering)||l)(E)}function E(){for(var e;E.__r=i.length;)e=i.sort((function(e,t){return e.__v.__b-t.__v.__b})),i=[],e.some((function(e){var t,n,i,l,o,s;e.__d&&(o=(l=(t=e).__v).__e,(s=t.__P)&&(n=[],(i=u({},l)).__v=l.__v+1,O(s,l,i,t.__n,void 0!==s.ownerSVGElement,null!=l.__h?[o]:null,n,null==o?b(l):o,l.__h),A(n,l),l.__e!=o&&h(l)))}))}function S(e,t,n,i,l,o,s,d,u,c){var p,v,h,m,E,S,T,P=i&&i.__k||r,D=P.length;for(n.__k=[],p=0;p<t.length;p++)if(null!=(m=n.__k[p]=null==(m=t[p])||"boolean"==typeof m?null:"string"==typeof m||"number"==typeof m||"bigint"==typeof m?_(null,m,null,null,m):Array.isArray(m)?_(f,{children:m},null,null,null):m.__b>0?_(m.type,m.props,m.key,null,m.__v):m)){if(m.__=n,m.__b=n.__b+1,null===(h=P[p])||h&&m.key==h.key&&m.type===h.type)P[p]=void 0;else for(v=0;v<D;v++){if((h=P[v])&&m.key==h.key&&m.type===h.type){P[v]=void 0;break}h=null}O(e,m,h=h||a,l,o,s,d,u,c),E=m.__e,(v=m.ref)&&h.ref!=v&&(T||(T=[]),h.ref&&T.push(h.ref,null,m),T.push(v,m.__c||E,m)),null!=E?(null==S&&(S=E),"function"==typeof m.type&&m.__k===h.__k?m.__d=u=g(m,u,e):u=y(e,m,h,P,E,u),"function"==typeof n.type&&(n.__d=u)):u&&h.__e==u&&u.parentNode!=e&&(u=b(h))}for(n.__e=S,p=D;p--;)null!=P[p]&&("function"==typeof n.type&&null!=P[p].__e&&P[p].__e==n.__d&&(n.__d=b(i,p+1)),M(P[p],P[p]));if(T)for(p=0;p<T.length;p++)C(T[p],T[++p],T[++p])}function g(e,t,n){for(var i,l=e.__k,o=0;l&&o<l.length;o++)(i=l[o])&&(i.__=e,t="function"==typeof i.type?g(i,t,n):y(n,i,i,l,i.__e,t));return t}function y(e,t,n,i,l,o){var s,a,r;if(void 0!==t.__d)s=t.__d,t.__d=void 0;else if(null==n||l!=o||null==l.parentNode)e:if(null==o||o.parentNode!==e)e.appendChild(l),s=null;else{for(a=o,r=0;(a=a.nextSibling)&&r<i.length;r+=2)if(a==l)break e;e.insertBefore(l,o),s=o}return void 0!==s?s:l.nextSibling}function T(e,t,n){"-"===t[0]?e.setProperty(t,n):e[t]=null==n?"":"number"!=typeof n||d.test(t)?n:n+"px"}function P(e,t,n,i,l){var o;e:if("style"===t)if("string"==typeof n)e.style.cssText=n;else{if("string"==typeof i&&(e.style.cssText=i=""),i)for(t in i)n&&t in n||T(e.style,t,"");if(n)for(t in n)i&&n[t]===i[t]||T(e.style,t,n[t])}else if("o"===t[0]&&"n"===t[1])o=t!==(t=t.replace(/Capture$/,"")),t=t.toLowerCase()in e?t.toLowerCase().slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?i||e.addEventListener(t,o?I:D,o):e.removeEventListener(t,o?I:D,o);else if("dangerouslySetInnerHTML"!==t){if(l)t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if("href"!==t&&"list"!==t&&"form"!==t&&"tabIndex"!==t&&"download"!==t&&t in e)try{e[t]=null==n?"":n;break e}catch(e){}"function"==typeof n||(null!=n&&(!1!==n||"a"===t[0]&&"r"===t[1])?e.setAttribute(t,n):e.removeAttribute(t))}}function D(e){this.l[e.type+!1](t.event?t.event(e):e)}function I(e){this.l[e.type+!0](t.event?t.event(e):e)}function O(e,n,i,l,o,s,a,r,d){var c,p,_,b,h,m,E,g,y,T,P,D,I,O=n.type;if(void 0!==n.constructor)return null;null!=i.__h&&(d=i.__h,r=n.__e=i.__e,n.__h=null,s=[r]),(c=t.__b)&&c(n);try{e:if("function"==typeof O){if(g=n.props,y=(c=O.contextType)&&l[c.__c],T=c?y?y.props.value:c.__:l,i.__c?E=(p=n.__c=i.__c).__=p.__E:("prototype"in O&&O.prototype.render?n.__c=p=new O(g,T):(n.__c=p=new v(g,T),p.constructor=O,p.render=R),y&&y.sub(p),p.props=g,p.state||(p.state={}),p.context=T,p.__n=l,_=p.__d=!0,p.__h=[]),null==p.__s&&(p.__s=p.state),null!=O.getDerivedStateFromProps&&(p.__s==p.state&&(p.__s=u({},p.__s)),u(p.__s,O.getDerivedStateFromProps(g,p.__s))),b=p.props,h=p.state,_)null==O.getDerivedStateFromProps&&null!=p.componentWillMount&&p.componentWillMount(),null!=p.componentDidMount&&p.__h.push(p.componentDidMount);else{if(null==O.getDerivedStateFromProps&&g!==b&&null!=p.componentWillReceiveProps&&p.componentWillReceiveProps(g,T),!p.__e&&null!=p.shouldComponentUpdate&&!1===p.shouldComponentUpdate(g,p.__s,T)||n.__v===i.__v){p.props=g,p.state=p.__s,n.__v!==i.__v&&(p.__d=!1),p.__v=n,n.__e=i.__e,n.__k=i.__k,n.__k.forEach((function(e){e&&(e.__=n)})),p.__h.length&&a.push(p);break e}null!=p.componentWillUpdate&&p.componentWillUpdate(g,p.__s,T),null!=p.componentDidUpdate&&p.__h.push((function(){p.componentDidUpdate(b,h,m)}))}if(p.context=T,p.props=g,p.__v=n,p.__P=e,P=t.__r,D=0,"prototype"in O&&O.prototype.render)p.state=p.__s,p.__d=!1,P&&P(n),c=p.render(p.props,p.state,p.context);else do{p.__d=!1,P&&P(n),c=p.render(p.props,p.state,p.context),p.state=p.__s}while(p.__d&&++D<25);p.state=p.__s,null!=p.getChildContext&&(l=u(u({},l),p.getChildContext())),_||null==p.getSnapshotBeforeUpdate||(m=p.getSnapshotBeforeUpdate(b,h)),I=null!=c&&c.type===f&&null==c.key?c.props.children:c,S(e,Array.isArray(I)?I:[I],n,i,l,o,s,a,r,d),p.base=n.__e,n.__h=null,p.__h.length&&a.push(p),E&&(p.__E=p.__=null),p.__e=!1}else null==s&&n.__v===i.__v?(n.__k=i.__k,n.__e=i.__e):n.__e=w(i.__e,n,i,l,o,s,a,d);(c=t.diffed)&&c(n)}catch(e){n.__v=null,(d||null!=s)&&(n.__e=r,n.__h=!!d,s[s.indexOf(r)]=null),t.__e(e,n,i)}}function A(e,n){t.__c&&t.__c(n,e),e.some((function(n){try{e=n.__h,n.__h=[],e.some((function(e){e.call(n)}))}catch(e){t.__e(e,n.__v)}}))}function w(t,n,i,l,o,s,r,d){var u,p,_,f=i.props,v=n.props,h=n.type,m=0;if("svg"===h&&(o=!0),null!=s)for(;m<s.length;m++)if((u=s[m])&&"setAttribute"in u==!!h&&(h?u.localName===h:3===u.nodeType)){t=u,s[m]=null;break}if(null==t){if(null===h)return document.createTextNode(v);t=o?document.createElementNS("http://www.w3.org/2000/svg",h):document.createElement(h,v.is&&v),s=null,d=!1}if(null===h)f===v||d&&t.data===v||(t.data=v);else{if(s=s&&e.call(t.childNodes),p=(f=i.props||a).dangerouslySetInnerHTML,_=v.dangerouslySetInnerHTML,!d){if(null!=s)for(f={},m=0;m<t.attributes.length;m++)f[t.attributes[m].name]=t.attributes[m].value;(_||p)&&(_&&(p&&_.__html==p.__html||_.__html===t.innerHTML)||(t.innerHTML=_&&_.__html||""))}if(function(e,t,n,i,l){var o;for(o in n)"children"===o||"key"===o||o in t||P(e,o,null,n[o],i);for(o in t)l&&"function"!=typeof t[o]||"children"===o||"key"===o||"value"===o||"checked"===o||n[o]===t[o]||P(e,o,t[o],n[o],i)}(t,v,f,o,d),_)n.__k=[];else if(m=n.props.children,S(t,Array.isArray(m)?m:[m],n,i,l,o&&"foreignObject"!==h,s,r,s?s[0]:i.__k&&b(i,0),d),null!=s)for(m=s.length;m--;)null!=s[m]&&c(s[m]);d||("value"in v&&void 0!==(m=v.value)&&(m!==t.value||"progress"===h&&!m||"option"===h&&m!==f.value)&&P(t,"value",m,f.value,!1),"checked"in v&&void 0!==(m=v.checked)&&m!==t.checked&&P(t,"checked",m,f.checked,!1))}return t}function C(e,n,i){try{"function"==typeof e?e(n):e.current=n}catch(e){t.__e(e,i)}}function M(e,n,i){var l,o;if(t.unmount&&t.unmount(e),(l=e.ref)&&(l.current&&l.current!==e.__e||C(l,null,n)),null!=(l=e.__c)){if(l.componentWillUnmount)try{l.componentWillUnmount()}catch(e){t.__e(e,n)}l.base=l.__P=null}if(l=e.__k)for(o=0;o<l.length;o++)l[o]&&M(l[o],n,"function"!=typeof e.type);i||null==e.__e||c(e.__e),e.__e=e.__d=void 0}function R(e,t,n){return this.constructor(e,n)}function k(n,i,l){var o,s,r;t.__&&t.__(n,i),s=(o="function"==typeof l)?null:l&&l.__k||i.__k,r=[],O(i,n=(!o&&l||i).__k=p(f,null,[n]),s||a,a,void 0!==i.ownerSVGElement,!o&&l?[l]:s?null:i.firstChild?e.call(i.childNodes):null,r,!o&&l?l:s?s.__e:i.firstChild,o),A(r,n)}function L(e,t){var n={__c:t="__cC"+s++,__:e,Consumer:function(e,t){return e.children(t)},Provider:function(e){var n,i;return this.getChildContext||(n=[],(i={})[t]=this,this.getChildContext=function(){return i},this.shouldComponentUpdate=function(e){this.props.value!==e.value&&n.some(m)},this.sub=function(e){n.push(e);var t=e.componentWillUnmount;e.componentWillUnmount=function(){n.splice(n.indexOf(e),1),t&&t.call(e)}}),e.children}};return n.Provider.__=n.Consumer.contextType=n}e=r.slice,t={__e:function(e,t,n,i){for(var l,o,s;t=t.__;)if((l=t.__c)&&!l.__)try{if((o=l.constructor)&&null!=o.getDerivedStateFromError&&(l.setState(o.getDerivedStateFromError(e)),s=l.__d),null!=l.componentDidCatch&&(l.componentDidCatch(e,i||{}),s=l.__d),s)return l.__E=l}catch(t){e=t}throw e}},n=0,v.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=u({},this.state),"function"==typeof e&&(e=e(u({},n),this.props)),e&&u(n,e),null!=e&&this.__v&&(t&&this.__h.push(t),m(this))},v.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),m(this))},v.prototype.render=f,i=[],l="function"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,E.__r=0,s=0;var N,F,U,x,H=0,B=[],G=t.__b,z=t.__r,V=t.diffed,Y=t.__c,W=t.unmount;function $(e,n){t.__h&&t.__h(F,e,H||n),H=0;var i=F.__H||(F.__H={__:[],__h:[]});return e>=i.__.length&&i.__.push({}),i.__[e]}function j(e){return H=1,function(e,t,n){var i=$(N++,2);return i.t=e,i.__c||(i.__=[n?n(t):ie(void 0,t),function(e){var t=i.t(i.__[0],e);i.__[0]!==t&&(i.__=[t,i.__[1]],i.__c.setState({}))}],i.__c=F),i.__}(ie,e)}function q(e,n){var i=$(N++,3);!t.__s&&ne(i.__H,n)&&(i.__=e,i.__H=n,F.__H.__h.push(i))}function K(e){return H=5,X((function(){return{current:e}}),[])}function X(e,t){var n=$(N++,7);return ne(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}function J(e){var t=F.context[e.__c],n=$(N++,9);return n.c=e,t?(null==n.__&&(n.__=!0,t.sub(F)),t.props.value):e.__}function Z(){for(var e;e=B.shift();)if(e.__P)try{e.__H.__h.forEach(ee),e.__H.__h.forEach(te),e.__H.__h=[]}catch(n){e.__H.__h=[],t.__e(n,e.__v)}}t.__b=function(e){F=null,G&&G(e)},t.__r=function(e){z&&z(e),N=0;var t=(F=e.__c).__H;t&&(U===F?(t.__h=[],F.__h=[],t.__.forEach((function(e){e.__H&&(e.__H=void 0)}))):(t.__h.forEach(ee),t.__h.forEach(te),t.__h=[])),U=F},t.diffed=function(e){V&&V(e);var n=e.__c;n&&n.__H&&n.__H.__h.length&&(1!==B.push(n)&&x===t.requestAnimationFrame||((x=t.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(i),Q&&cancelAnimationFrame(t),setTimeout(e)},i=setTimeout(n,100);Q&&(t=requestAnimationFrame(n))})(Z)),F=null,U=null},t.__c=function(e,n){n.some((function(e){try{e.__h.forEach(ee),e.__h=e.__h.filter((function(e){return!e.__||te(e)}))}catch(i){n.some((function(e){e.__h&&(e.__h=[])})),n=[],t.__e(i,e.__v)}})),Y&&Y(e,n)},t.unmount=function(e){W&&W(e);var n,i=e.__c;i&&i.__H&&(i.__H.__.forEach((function(e){try{ee(e)}catch(e){n=e}})),n&&t.__e(n,i.__v))};var Q="function"==typeof requestAnimationFrame;function ee(e){var t=F,n=e.__c;"function"==typeof n&&(e.__c=void 0,n()),F=t}function te(e){var t=F;e.__c=e.__(),F=t}function ne(e,t){return!e||e.length!==t.length||t.some((function(t,n){return t!==e[n]}))}function ie(e,t){return"function"==typeof t?t(e):t}const le=L("RouterContext"),oe=()=>J(le),se=({children:e})=>{const t=K("/config"),n=K("/config/features"),[i,l]=j(t.current),[o,s]=j({}),a={activeRoute:i,setActiveRoute:l,routes:o,setRoutes:s,defaultRoute:t,activeTab:n};return p(le.Provider,{value:a},e)};function ae(){return ae=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},ae.apply(this,arguments)}const re=()=>Math.random().toString(36).substr(2,9),de=(e,t,n={})=>({is:i=e,class:l="",id:o="",...s})=>{const a=Object.keys(s).reduce(((e,t)=>Object.keys(n).includes(t)?{classes:[...e.classes,n[t]],...e.props}:{classes:[...e.classes],props:{...e.props,[t]:s[t]}}),{classes:[],props:{}});return p(i,ae({class:`${t} ${a.classes.join(" ")} ${l}`.trim(),id:o},a.props))};function ue(e,t){if(!e)return;let n=e.children;if(n)for(var i=0;i<n.length;i++)n[i].classList.contains("do-not-disable")||ue(n[i],t);t?e.setAttribute("disabled","true"):e.removeAttribute("disabled")}function ce(e=!0){ue(document.getElementById("main"),e),ue(document.getElementById("info"),e),ue(document.getElementById("menu"),e)}const pe={},_e=L("uiContext"),fe=()=>J(_e),ve=({children:e})=>{const[t,n]=j([]),[i,l]=j([]),o=K(i);o.current=i;const s=e=>{const t=re(),n=new Date,i=n.getHours().toString().padStart(2,"0")+":"+n.getMinutes().toString().padStart(2,"0")+":"+n.getSeconds().toString().padStart(2,"0");l([...o.current,{...e,id:t}]),setNotifications([...notificationsRef.current,{...e,id:t,time:i}])},a=e=>{const t=(n=o.current,i=e,n.filter((({id:e})=>!i.includes(e))));var n,i;l([...t])};pe.getValue=e=>{console.log(e,"not found")},pe.getElement=e=>{console.log(e,"not found")},pe.toasts={addToast:s,removeToast:a,toastList:i},q((()=>{}),[]);const r={toasts:{toastList:i,addToast:s,removeToast:a},modals:{modalList:t,addModal:e=>n([...t,{...e,id:e.id?e.id:re()}]),removeModal:e=>{const i=t.filter(((t,n)=>n!==e));n(i),0==i.length&&ce(!1)},getModalIndex:e=>t.findIndex((t=>t.id==e)),clearModals:()=>{n([])}}};return p(_e.Provider,{value:r},e)};var be=JSON.parse('{"features":[{"id":"mcu","description":"ESP Board using ESP3D firmware","label":"Board description","setting":false,"type":"group","value":[{"id":"targetmcu","define":"ESP_MCU","description":"MCU","label":"MCU","type":"select","value":"esp32","setting":false,"options":[{"label":"ESP8285","value":"esp8285"},{"label":"ESP8266","value":"esp8266"},{"label":"ESP32","value":"esp32"},{"label":"ESP32-S2","value":"esp32s2"},{"label":"ESP32-S3","value":"esp32s3"},{"label":"ESP32-C3","value":"esp32c3"},{"label":"ESP32-C6","value":"esp32c6"}]},{"id":"targetflashsize","define":"FLASH_SIZE","description":"ESP flash size","label":"ESP flash size","type":"select","value":"4","setting":false,"options":[{"label":"1MB","value":"1","depend":{"id":"targetmcu","value":["esp8266","esp8285"]},"help":"No OTA/ Web update possible"},{"label":"2MB","value":"2","help":"No OTA/ Web update possible"},{"label":"4MB","value":"4"},{"label":"8MB","value":"8"},{"label":"16MB","value":"16"}]},{"id":"formfactor","define":"ESP_FORM_FACTOR","description":"Pins form factor","label":"Form factor","type":"select","value":"original","setting":false,"options":[{"label":"Original (all pins)","value":"original"},{"label":"ESP01 (8 pins)","value":"esp01"}]},{"id":"flash_mod1","define":"flash_mode","description":"Flash mode","label":"Flash mode","type":"select","value":"dio","depend":{"id":"targetmcu","value":["esp8266","esp8285"]},"setting":false,"options":[{"label":"qio","value":"qio"},{"label":"dio","value":"dio"},{"label":"dout","value":"dout"},{"label":"qout","value":"qout"}]},{"id":"flash_mode","define":"flash_mode","description":"Flash mode","label":"Flash mode","type":"select","value":"qio","depend":{"id":"targetmcu","notvalue":["esp8266","esp8285"]},"setting":false,"options":[{"label":"qio","value":"qio"},{"label":"dio","value":"dio"},{"label":"dout","value":"dout"},{"label":"qout","value":"qout"}]},{"id":"resetmethod","define":"upload_resetmethod","description":"Reset method for upload","label":"Reset method for upload","type":"select","depend":{"id":"targetmcu","value":["esp8266","esp8285"]},"value":"ck","setting":false,"options":[{"label":"ck","value":"ck","help":"Need to manually set GPIO 0 to gnd"},{"label":"nodemcu","value":"nodemcu","help":"Automatically set GPIO 0 to gnd via 2 NPN transistors"},{"label":"wifio","value":"wifio","help":"Automatically set GPIO 0 to gnd via TX and DTR controls"}]},{"id":"has_psram","define":"BOARD_HAS_PSRAM","description":"Has External PSRAM","label":"Has PSRAM","type":"boolean","depend":{"id":"targetmcu","notvalue":["esp8266","esp8285"]},"value":false,"setting":false},{"id":"memory_type","define":"board_build.arduino.memory_type","description":"Memory type","label":"Memory type","type":"select","value":"qio_qspi","depend":[{"id":"targetmcu","value":["esp32s3"]},{"id":"has_psram","value":[true]}],"setting":false,"options":[{"label":"Dio Flash / Octal PSRAM","value":"dio_opi"},{"label":"Quad","value":"qio_qspi"},{"label":"Quad Flash/ Octal PSRAM","value":"qio_opi"},{"label":"Octal","value":"opi_opi"}]}]},{"id":"communication","description":"Settings and protocols","label":"Serial Communications","setting":true,"type":"group","value":[{"id":"serialprotocol","define":"COMMUNICATION_PROTOCOL","description":"Communication protocol used by ESP3D to discuss with printer or TFT","label":"Serial Communication protocol","type":"select","value":"RAW_SERIAL","setting":true,"options":[{"label":"Raw serial","value":"RAW_SERIAL","help":"Basic serial protocol, without data change"},{"label":"MKS serial","value":"MKS_SERIAL","help":"This is a MakerBase communication protocol, used with MKS printers and TFT, it encapsulated data in a custom protocol"}]},{"id":"serialport","define":"ESP_SERIAL_OUTPUT","description":"Which serial port ESP3D use to communicate with printer or TFT","label":"Serial port","type":"select","value":"USE_SERIAL_0","setting":true,"isport":true},{"id":"serialbuffer","define":"SERIAL_RX_BUFFER_SIZE","description":"Maximum size of the serial buffer","label":"Serial buffer size","type":"select","value":"512","setting":true,"usedescforoptions":true,"options":[{"label":"0 Byte","value":"0"},{"label":"128 Bytes","value":"128"},{"label":"256 Bytes","value":"256"},{"label":"512 Bytes","value":"512"},{"label":"1024 Bytes","value":"1024"}]},{"id":"usbserial","define":"USB_SERIAL_FEATURE","label":"Use USB Serial","description":"Enable USB serial OTG port","type":"boolean","depend":{"id":"targetmcu","value":["esp32s3","esp32s2"]},"value":false,"disableiffalse":true,"setting":true},{"id":"serialBridge","define":"SERIAL_BRIDGE_FEATURE","label":"Use serial bridge","description":"Enable serial bridge feature","type":"boolean","depend":{"id":"targetmcu","notvalue":["esp8266","esp8285"]},"value":false,"disableiffalse":true,"hide":true,"setting":false},{"id":"serialBridgeport","define":"ESP_SERIAL_BRIDGE_OUTPUT","description":"Which serial port serial bridge to output to","depend":{"id":"serialBridge","value":[true]},"label":"Serial bridge port","type":"select","value":"-1","setting":true,"isport":true}]},{"id":"targetFW","description":"Targeted firmware that ESP3D will communicate with","label":"Target firmware","setting":true,"type":"group","value":[{"id":"systemtype","define":"SYSTEM_TYPE","description":"The type of your system","label":"System type","type":"select","value":"Printer3D","setting":false,"options":[{"label":"CNC","value":"CNC","help":"CNC system used for milling/laser engraving/cutting"},{"label":"3D printer","value":"Printer3D","help":"3D printer system used with filaments"},{"label":"Sand Table","value":"SandTable","help":"System doing kinetic art, zen garden, sand table, etc."}]},{"id":"defaultfw","define":"DEFAULT_FW","description":"The firmware that ESP3D will use by default","label":"Target firmware","type":"select","value":"UNKNOWN_FW","setting":true,"options":[{"label":"Undefined","value":"UNKNOWN_FW","help":"Undefined firmware"},{"label":"Marlin","value":"MARLIN","help":"Marlin 2.x firmware","depend":{"id":"systemtype","value":["Printer3D"]}},{"label":"Repetier","value":"REPETIER","help":"Repetier 1.x/2.x firmware","depend":{"id":"systemtype","value":["Printer3D"]}},{"label":"Smoothieware","value":"SMOOTHIEWARE","help":"Smoothieware 1.x/2.x firmware","depend":{"id":"systemtype","value":["Printer3D"]}},{"label":"Grbl","value":"GRBL","help":"Grbl 1.1 firmware","depend":{"id":"systemtype","value":["CNC","SandTable"]}}]}]}],"network":[{"id":"radiomode","description":"The radio mode ESP3D communicate with the network","label":"Radio mode of ESP3D","setting":true,"type":"group","value":[{"id":"wifi","define":"WIFI_FEATURE","label":"Use WiFi ","description":"Enable wifi communications","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"ethernet","define":"ETH_FEATURE","label":"Use Ethernet ","description":"Enable ethernet communications","type":"boolean","value":false,"disableiffalse":true,"setting":true,"depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3"]}]},{"id":"ethernetboard","define":"ESP3D_ETH_PHY_TYPE","label":"Ethernet chip","description":"Chip used by board","type":"select","value":"TYPE_ETH_PHY_LAN8720","depend":{"id":"ethernet","value":"true"},"setting":true,"usedescforoptions":true,"options":[{"label":"LAN8720","value":"TYPE_ETH_PHY_LAN8720"},{"label":"TLK110","value":"TYPE_ETH_PHY_TLK110"},{"label":"RTL8201","value":"TYPE_ETH_PHY_RTL8201"},{"label":"DP83848","value":"TYPE_ETH_PHY_DP83848"},{"label":"DM9051","value":"TYPE_ETH_PHY_DM9051"},{"label":"KSZ8041","value":"TYPE_ETH_PHY_KSZ8041"},{"label":"KSZ8081","value":"TYPE_ETH_PHY_KSZ8081"},{"label":"W5500 (SPI)","value":"TYPE_ETH_PHY_W5500"}]},{"id":"ethernetclock","define":"ESP3D_ETH_CLK_MODE","label":"Ethernet board clock mode","description":"Mode used by clock","type":"select","value":"MODE_ETH_CLOCK_GPIO17_OUT","depend":[{"id":"ethernetboard","notvalue":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true,"options":[{"label":"GPIO0 IN","value":"MODE_ETH_CLOCK_GPIO0_IN"},{"label":"GPIO0 OUT","value":"MODE_ETH_CLOCK_GPIO0_OUT"},{"label":"GPIO16 OUT","value":"MODE_ETH_CLOCK_GPIO16_OUT"},{"label":"GPIO17 OUT","value":"MODE_ETH_CLOCK_GPIO17_OUT"}]},{"id":"ethernetaddress","define":"ESP3D_ETH_PHY_ADDR","label":"Ethernet board address","description":"Address used by clock","type":"select","value":"1","depend":{"id":"ethernet","value":"true"},"setting":true,"usedescforoptions":true,"options":[{"label":"0","value":"0"},{"label":"1","value":"1"},{"label":"2","value":"2"},{"label":"3","value":"3"},{"label":"4","value":"4"},{"label":"5","value":"5"},{"label":"6","value":"6"},{"label":"7","value":"7"},{"label":"8","value":"8"},{"label":"9","value":"9"},{"label":"10","value":"10"},{"label":"11","value":"11"},{"label":"12","value":"12"},{"label":"13","value":"13"},{"label":"14","value":"14"},{"label":"15","value":"15"},{"label":"16","value":"16"},{"label":"17","value":"17"},{"label":"18","value":"18"},{"label":"19","value":"19"},{"label":"20","value":"20"},{"label":"21","value":"21"},{"label":"22","value":"22"},{"label":"23","value":"23"},{"label":"24","value":"24"},{"label":"25","value":"25"},{"label":"26","value":"26"},{"label":"27","value":"27"},{"label":"28","value":"28"},{"label":"29","value":"29"},{"label":"30","value":"30"},{"label":"31","value":"31"}]},{"id":"ethernetpowerpin","define":"ESP3D_ETH_PHY_POWER_PIN","label":"Ethernet power pin","description":"The pin used to power ethernet chip","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","notvalue":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetmdcpin","define":"ESP3D_ETH_PHY_MDC_PIN","label":"Ethernet mdc pin","description":"The pin used for MDC signal","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","notvalue":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetmdiopin","define":"ESP3D_ETH_PHY_MDIO_PIN","label":"Ethernet mdio pin","description":"The pin used for MDIO signal","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","notvalue":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetspiirqpin","define":"ETH_PHY_IRQ","label":"Ethernet irq pin","description":"The pin used for irq","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetspirstpin","define":"ETH_PHY_RST","label":"Ethernet reset pin","description":"The pin used for reset","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetspi","define":"","label":"Ethernet Dedicated SPI","description":"SPI Used by Ethernet","type":"select","value":"ETHERNET_SPI_USE_SPI2","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true,"options":[{"label":"SPI","value":"ETHERNET_SPI_USE_SPI"},{"label":"SPI2","value":"ETHERNET_SPI_USE_SPI2"}]},{"id":"ethernetspicspin","define":"ETH_PHY_CS","label":"Ethernet SPI CS pin","description":"The CS pin used by dedicated SPI ethernet","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetspimosipin","define":"ETH_SPI_MOSI","label":"Ethernet SPI MOSI pin","description":"The MOSI pin used by dedicated SPI ethernet","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetspimisopin","define":"ETH_SPI_MISO","label":"Ethernet SPI MISO pin","description":"The MISO pin used by dedicated SPI ethernet","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"ethernetspisckpin","define":"ETH_SPI_SCK","label":"Ethernet SPI SCK pin","description":"The SCK pin used by dedicated SPI ethernet","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"ethernetboard","value":"TYPE_ETH_PHY_W5500"},{"id":"ethernet","value":"true"}],"setting":true,"usedescforoptions":true},{"id":"bluetooth","define":"BLUETOOTH_FEATURE","label":"Use Bluetooth ","description":"Enable serial bluetooth communications","type":"boolean","value":false,"disableiffalse":true,"setting":true,"depend":{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3"]}}]},{"id":"channels","description":"The way ESP3D communicate","label":"Channels of ESP3D","setting":true,"type":"group","value":[{"id":"http","define":"HTTP_FEATURE","label":"Use webserver","description":"Enable http server","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"telnet","define":"TELNET_FEATURE","label":"Use telnet server","description":"Enable telnet light (raw tcp) communications","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"websocket","define":"WS_DATA_FEATURE","label":"Use Websocket server","description":"Enable websocket communications","type":"boolean","value":false,"disableiffalse":true,"setting":true},{"id":"notifications","define":"NOTIFICATION_FEATURE","label":"Enable notifications","description":"Allows to send notifications to the user","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"notificationonline","define":"NOTIFICATION_ESP_ONLINE","label":"Notification message when online","description":"The message that will be sent when the ESP is online","type":"text","needquote":true,"value":"Hi, %ESP_NAME% is now online at %ESP_IP%","setting":true,"depend":{"id":"notifications","value":[true]}},{"id":"notificationtitlemsg","define":"ESP_NOTIFICATION_TITLE","label":"Notification title message","description":"The title of notification","type":"text","needquote":true,"value":"ESP3D Notification","setting":true,"depend":{"id":"notifications","value":[true]}}]},{"id":"discovery","description":"The discovery methods of ESP3D","label":"Discovery methods of ESP3D","setting":true,"type":"group","value":[{"id":"captive","define":"CAPTIVE_PORTAL_FEATURE","label":"Use captive portal ","description":"Enable captive portal in AP mode","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"mdns","define":"MDNS_FEATURE","label":"Use mDNS discovery","description":"This method need `bonjour` protocol on windows, or `avahi` on linux","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"ssdp","define":"SSDP_FEATURE","label":"Use Simple Service Discovery Protocol","description":"It is supported on Windows out of the box","type":"boolean","value":true,"disableiffalse":true,"setting":true}]},{"id":"customizationSSDP","description":"Customize your ESP3D","label":"SSDP Customization settings","setting":true,"depend":{"id":"ssdp","value":[true]},"type":"group","value":[{"id":"ssdpmodelename32","define":"ESP_MODEL_NAME","label":"Model name","description":"Modele name of device","type":"text","value":"ESP32","needquote":true,"depend":{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3"]},"setting":true},{"id":"ssdpmodelename","define":"ESP_MODEL_NAME","label":"Model name","description":"Modele name of device","type":"text","value":"ESP8285","needquote":true,"depend":{"id":"targetmcu","value":["esp8285"]},"setting":true},{"id":"ssdpmodelename","define":"ESP_MODEL_NAME","label":"Model name","description":"Modele name of device","type":"text","value":"ESP8266","needquote":true,"depend":{"id":"targetmcu","value":["esp8266"]},"setting":true},{"id":"ssdpmodelenamenumber","define":"ESP_MODEL_NUMBER","label":"Model number","description":"Modele number of device","type":"text","needquote":true,"value":"ESP3D 3.0","setting":true},{"id":"ssdpmodeleurl","define":"ESP_MODEL_URL","label":"Model url","description":"Modele url of device","type":"text","needquote":true,"value":"https://www.espressif.com/en/products/devkits","setting":true},{"id":"ssdpmodelemanufacturername","define":"ESP_MANUFACTURER_NAME","label":"Manufacturer name","description":"Manufacturer name of device","type":"text","needquote":true,"value":"Espressif Systems","setting":true},{"id":"ssdpmodelemanufacturerurl","define":"ESP_MANUFACTURER_URL","label":"Manufacturer url","description":"Manufacturer url of device","type":"text","needquote":true,"value":"https://www.espressif.com","setting":true}]}],"filesystems":[{"id":"flash","description":"Filesystem on flash","label":"Flash filesystem","setting":true,"type":"group","value":[{"id":"flashFS","define":"FILESYSTEM_FEATURE","label":"File system type","description":"Type of file system used by ESP3D to store files","type":"select","value":"ESP_LITTLEFS_FILESYSTEM","setting":true,"usedescforoptions":true,"options":[{"label":"LittleFS","value":"ESP_LITTLEFS_FILESYSTEM"},{"label":"FatFS","value":"ESP_FAT_FILESYSTEM","help":"Only on ESP32 with large flash","depend":{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3"]}}]},{"id":"flashTimestamp","define":"FILESYSTEM_TIMESTAMP_FEATURE","label":"Enable date/time on files","description":"Set date/time on files using SNTP or last webui connection","type":"boolean","value":false,"disableiffalse":true,"setting":true}]},{"id":"sd","description":"Filesystem on SD card","label":"SD filesystem","setting":true,"type":"group","depend":{"id":"formfactor","notvalue":["esp01"]},"value":[{"id":"sdconnection","define":"SD_DEVICE_CONNECTION","label":"SD card connection","description":"Does your system has SD card and how it is connected to your ESP3D","type":"select","value":"-1","setting":true,"usedescforoptions":true,"options":[{"label":"None","value":"-1","help":"Your ESP does not have SDcard but your system may have one"},{"label":"Direct connection","value":"ESP_NOT_SHARED_SD","help":"Only your ESP board is connected to SDCard"},{"label":"Shared connection","value":"ESP_SHARED_SD","help":"Your system has SDCard and your ESP is connected to it using sharing solution"}]},{"id":"sdfs","define":"SD_DEVICE","label":"SD card library","description":"Library used by SD card driver","type":"select","value":"ESP_SDFAT2","depend":{"id":"sdconnection","value":["ESP_SHARED_SD","ESP_NOT_SHARED_SD"]},"setting":true,"options":[{"label":"Native from core","value":"ESP_SD_NATIVE","help":"No additionnal library required"},{"label":"SDFat","value":"ESP_SDFAT2","help":"SDFat 2 library required"},{"label":"SDIO","value":"ESP_SDIO","help":"Used by SDMMC","depend":{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3"]}}]},{"id":"sdio","define":"SDIO_BIT_MODE","label":"Sdio bit mode","description":"Mode used by SDIO library","type":"select","value":"SD_FOUR_BIT_MODE","depend":{"id":"sdfs","value":["ESP_SDIO"]},"setting":true,"options":[{"label":"1 bit","value":"SD_ONE_BIT_MODE"},{"label":"4 bits","value":"SD_FOUR_BIT_MODE"}]},{"id":"sdtimestamp","define":"SD_TIMESTAMP_FEATURE","label":"Enable date/time on files","description":"Set date/time on files using SNTP or last webui connection","type":"boolean","value":false,"disableiffalse":true,"setting":true}]},{"id":"sdpins","description":"SD card pins","label":"SD card pins","setting":true,"type":"group","depend":{"id":"sdconnection","value":["ESP_SHARED_SD","ESP_NOT_SHARED_SD"]},"value":[{"id":"detectsdpin","define":"ESP_SD_DETECT_PIN","label":"SD card detect pin","description":"The pin used to detect SD card","type":"select","ispin":true,"value":"-1","depend":{"id":"sdconnection","value":["ESP_SHARED_SD","ESP_NOT_SHARED_SD"]},"setting":true,"usedescforoptions":true},{"id":"sddetectvalue","define":"ESP_SD_DETECT_VALUE","label":"Pin value","description":"State of SD card detect pin when card is present","type":"select","value":"0","depend":{"id":"detectsdpin","notvalue":["-1"]},"setting":true,"usedescforoptions":true,"options":[{"label":"High","value":"1"},{"label":"Low","value":"0"}]},{"id":"shareflagsdpin","define":"ESP_FLAG_SHARED_SD_PIN","label":"SD shared flag pin","description":"The pin used to enable SD card for ESP board","type":"select","ispin":true,"value":"-1","depend":{"id":"sdconnection","value":["ESP_SHARED_SD"]},"setting":true,"usedescforoptions":true},{"id":"shareflagsdvalue","define":"ESP_FLAG_SHARED_SD_VALUE","label":"Pin value","description":"State of SD card share pin for ESP board","type":"select","value":"0","depend":{"id":"shareflagsdpin","notvalue":["-1"]},"setting":true,"usedescforoptions":true,"options":[{"label":"High","value":"1"},{"label":"Low","value":"0"}]},{"id":"sdcspin","define":"ESP_SD_CS_PIN","label":"SD card CS pin","description":"The pin used to select SD card in SPI mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"sdfs","notvalue":["ESP_SDIO"]},"setting":true,"usedescforoptions":true},{"id":"sdmosipin","define":"ESP_SD_MOSI_PIN","label":"SD card Mosi pin","description":"The Mosi pin used by SD in SPI mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"sdfs","notvalue":["ESP_SDIO"]},{"id":"targetmcu","notvalue":["esp8266","esp8285"]}],"setting":true,"usedescforoptions":true},{"id":"sdmisopin","define":"ESP_SD_MISO_PIN","label":"SD card Miso pin","description":"The Miso pin used by SD in SPI mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"sdfs","notvalue":["ESP_SDIO"]},{"id":"targetmcu","notvalue":["esp8266","esp8285"]}],"setting":true,"usedescforoptions":true},{"id":"sdsckpin","define":"ESP_SD_SCK_PIN","label":"SD card Sck pin","description":"The Sck pin used by SD in SPI mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"sdfs","notvalue":["ESP_SDIO"]},{"id":"targetmcu","notvalue":["esp8266","esp8285"]}],"setting":true,"usedescforoptions":true},{"id":"sdioclkpin","define":"ESP_SDIO_CLK_PIN","label":"SDIO card clk pin","description":"The clk pin used by SD card in SDIO mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"sdfs","value":["ESP_SDIO"]},"setting":true,"usedescforoptions":true},{"id":"sdiocmdpin","define":"ESP_SDIO_CMD_PIN","label":"SDIO card cmd pin","description":"The cmd pin used by SD card in SDIO mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"sdfs","value":["ESP_SDIO"]},"setting":true,"usedescforoptions":true},{"id":"sdiod0pin","define":"ESP_SDIO_D0_PIN","label":"SDIO card data 0 pin","description":"The d0 pin used by SD card in SDIO mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"sdfs","value":["ESP_SDIO"]},"setting":true,"usedescforoptions":true},{"id":"sdiod1pin","define":"ESP_SDIO_D1_PIN","label":"SDIO card data 1 pin","description":"The d1 pin used by SD card in SDIO mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"sdfs","value":["ESP_SDIO"]},{"id":"sdio","value":["SD_FOUR_BIT_MODE"]}],"setting":true,"usedescforoptions":true},{"id":"sdiod2pin","define":"ESP_SDIO_D2_PIN","label":"SDIO card data 2 pin","description":"The d2 pin used by SD card in SDIO mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"sdfs","value":["ESP_SDIO"]},{"id":"sdio","value":["SD_FOUR_BIT_MODE"]}],"setting":true,"usedescforoptions":true},{"id":"sdiod3pin","define":"ESP_SDIO_D3_PIN","label":"SDIO card data 3 pin","description":"The d3 pin used by SD card in SDIO mode","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":[{"id":"sdfs","value":["ESP_SDIO"]},{"id":"sdio","value":["SD_FOUR_BIT_MODE"]}],"setting":true,"usedescforoptions":true}]},{"id":"remote","description":"Remote filesystem access","label":"Remote access","setting":true,"type":"group","value":[{"id":"globalFS","define":"GLOBAL_FILESYSTEM_FEATURE","label":"Enable global filesystem","description":"Allows to access to all filesystems fromsame location","type":"boolean","value":false,"depend":{"id":"sdconnection","notvalue":["-1"]},"disableiffalse":true,"setting":true},{"id":"webdav","define":"WEBDAV_FEATURE","label":"WebDav access","description":"Use WebDav to access to your filesystem","type":"select","value":"-1","setting":true,"usedescforoptions":true,"options":[{"label":"None","value":"-1"},{"label":"All filesystems","value":"FS_ROOT","depend":{"id":"globalFS","value":[true]}},{"label":"ESP3D Flash","value":"FS_FLASH"},{"label":"ESP3D SD","value":"FS_SD","depend":{"id":"sdconnection","notvalue":["-1"]}}]},{"id":"ftp","define":"FTP_FEATURE","label":"FTP access","description":"Use FTP to access to your filesystem (1 connection only)","type":"select","value":"-1","setting":true,"usedescforoptions":true,"options":[{"label":"None","value":"-1"},{"label":"All filesystems","value":"FS_ROOT","depend":{"id":"globalFS","value":[true]}},{"label":"ESP3D Flash","value":"FS_FLASH"},{"label":"ESP3D SD","value":"FS_SD","depend":{"id":"sdconnection","notvalue":["-1"]}}]}]}],"update":[{"id":"reset","description":"Reset ESP3D settings","label":"Reset ESP3D","setting":true,"type":"group","value":[{"id":"resetfeature","define":"PIN_RESET_FEATURE","label":"Enable pin reset feature","description":"Use a pin to reset ESP3D settings","type":"boolean","value":false,"disableiffalse":true,"setting":false,"hide":true},{"id":"resetpin","define":"ESP3D_RESET_PIN","label":"Reset pin","description":"The pin used to reset ESP3D setting if set to low for more than 1 second at start","type":"select","ispin":true,"header":"#define PIN_RESET_FEATURE\\n","depend":{"id":"resetfeature","value":[true]},"value":"-1","setting":true,"usedescforoptions":true}]},{"id":"update","description":"Update ESP3D firmware","label":"Update ESP3D","setting":true,"depend":{"id":"targetflashsize","notvalue":["1","2"]},"type":"group","value":[{"id":"ota","define":"OTA_FEATURE","label":"Enable OTA","description":"Over The Air Update (OTA)","type":"boolean","value":false,"disableiffalse":true,"setting":true},{"id":"webupdate","define":"WEB_UPDATE_FEATURE","label":"Enable Web Update","description":"Update firmware using WebUI","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"sdupdate","define":"SD_UPDATE_FEATURE","label":"Enable SD card Update","description":"Update firmware and settings using file on SDCard","type":"boolean","depend":{"id":"sdconnection","notvalue":["-1"]},"value":true,"disableiffalse":true,"setting":true}]}],"devices":[{"id":"screens","description":"Rendering screens","label":"Display settings","setting":true,"type":"group","value":[{"id":"printerscreen","define":"PRINTER_HAS_DISPLAY","label":"Printer screen","description":"Your printer has a display","type":"boolean","value":true,"depend":{"id":"systemtype","value":["Printer3D"]},"disableiffalse":true,"setting":true},{"id":"displaytype","define":"DISPLAY_DEVICE","label":"ESP3D screen","description":"Screen connected to ESP board","type":"select","value":"-1","setting":true,"usedescforoptions":true,"depend":{"id":"formfactor","notvalue":["esp01"]},"options":[{"label":"None","value":"-1"},{"label":"OLED I2C SSD1306 128X64","value":"OLED_I2C_SSD1306_128X64"},{"label":"OLED I2C SSDSH1106 132X64","value":"OLED_I2C_SSDSH1106_132X64"},{"label":"TFT SPI ST7789 240X240","value":"TFT_SPI_ST7789_240X240"},{"label":"TFT SPI ST7789 135X240","value":"TFT_SPI_ST7789_135X240"}]},{"id":"flipdisplay","define":"DISPLAY_FLIP_VERTICALY","label":"Flip screen","description":"Flip/rotate screen","type":"boolean","value":false,"depend":{"id":"displaytype","notvalue":["-1"]},"disableiffalse":true,"setting":true},{"id":"i2caddressoled","define":"DISPLAY_I2C_ADDR","label":"Display i2C address","description":"Wire address of display","type":"text","value":"0x3c","depend":{"id":"displaytype","value":["OLED_I2C_SSD1306_128X64","OLED_I2C_SSDSH1106_132X64"]},"setting":true},{"id":"oledrstpin","define":"DISPLAY_I2C_PIN_RST","label":"Display reset pin","description":"The pin used to reset the screen (optional)","type":"select","ispin":true,"value":"-1","depend":{"id":"displaytype","value":["OLED_I2C_SSD1306_128X64","OLED_I2C_SSDSH1106_132X64"]},"setting":true,"usedescforoptions":true},{"id":"tftledpin","define":"DISPLAY_LED_PIN","label":"TFT led pin","description":"The pin used for the backlight","type":"select","ispin":true,"value":"-1","depend":{"id":"displaytype","value":["TFT_SPI_ST7789_135X240","TFT_SPI_ST7789_240X240"]},"setting":true,"usedescforoptions":true},{"id":"tftDCpin","define":"DISPLAY_DC_PIN","label":"TFT DC pin","description":"The dc pin used for the display","type":"select","ispin":true,"value":"-1","depend":{"id":"displaytype","value":["TFT_SPI_ST7789_135X240","TFT_SPI_ST7789_240X240"]},"setting":true,"usedescforoptions":true},{"id":"tftRSTpin","define":"DISPLAY_RST_PIN","label":"TFT RST pin","description":"The pin used to reset display","type":"select","ispin":true,"value":"-1","depend":{"id":"displaytype","value":["TFT_SPI_ST7789_135X240","TFT_SPI_ST7789_240X240"]},"setting":true,"usedescforoptions":true},{"id":"tftCSpin","define":"DISPLAY_CS_PIN","label":"TFT CS pin","description":"The CS pin used by display","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"displaytype","value":["TFT_SPI_ST7789_135X240","TFT_SPI_ST7789_240X240"]},"setting":true,"usedescforoptions":true},{"id":"tftMOSIpin","define":"DISPLAY_MOSI_PIN","label":"TFT MOSI pin","description":"The MOSI pin used by display","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"displaytype","value":["TFT_SPI_ST7789_135X240","TFT_SPI_ST7789_240X240"]},"setting":true,"usedescforoptions":true},{"id":"tftSCKpin","define":"DISPLAY_SCK_PIN","label":"TFT SCK pin","description":"The SCK pin used by display","type":"select","ispin":true,"usedefault":true,"value":"-1","depend":{"id":"displaytype","value":["TFT_SPI_ST7789_135X240","TFT_SPI_ST7789_240X240"]},"setting":true,"usedescforoptions":true}]},{"id":"buzzer","description":"Buzzer feature","label":"Audio settings","setting":true,"type":"group","value":[{"id":"buzzerfeature","define":"BUZZER_DEVICE","label":"Enable buzzer","description":"Your esp board has a passive buzzer","type":"boolean","value":false,"disableiffalse":true,"setting":true},{"id":"buzzerpin","define":"ESP3D_BUZZER_PIN","label":"Buzzer pin","description":"The pin used for the passive buzzer","type":"select","ispin":true,"value":"-1","depend":{"id":"buzzerfeature","value":[true]},"setting":true,"usedescforoptions":true}]},{"id":"sensor","description":"Sensor feature","label":"Sensor settings","setting":true,"type":"group","value":[{"id":"sensortype","define":"SENSOR_DEVICE","label":"ESP3D connected sensor","description":"Sensor connected to ESP board","type":"select","value":"-1","setting":true,"usedescforoptions":true,"options":[{"label":"None","value":"-1"},{"label":"DHT11","value":"DHT11_DEVICE"},{"label":"DHT22","value":"DHT22_DEVICE"},{"label":"BMP280","value":"BMP280_DEVICE"},{"label":"BME280","value":"BME280_DEVICE"},{"label":"Analog sensor","value":"ANALOG_DEVICE"}]},{"id":"i2caddresssensor","define":"SENSOR_ADDR","label":"Sensor i2C address","description":"Wire address of sensor","needquote":false,"type":"text","value":"0x76","depend":{"id":"sensortype","notvalue":["-1","ANALOG_DEVICE","DHT11_DEVICE","DHT22_DEVICE"]},"setting":true},{"id":"sensorpin","define":"ESP3D_SENSOR_PIN","label":"Sensor pin","description":"The pin used for the sensor","type":"select","ispin":true,"value":"-1","depend":{"id":"sensortype","notvalue":["-1","BMP280_DEVICE","BME280_DEVICE"]},"setting":true,"usedescforoptions":true},{"id":"analogsensorconverter","define":"SENSOR_CONVERTER(v)","label":"Conversion formula","description":"v is the value read from sensor","type":"text","value":"v*0.588","depend":{"id":"sensortype","value":["ANALOG_DEVICE"]},"setting":true},{"id":"sensorunit","define":"SENSOR__UNIT","label":"Unit","description":"Unit of the sensor result","type":"select","depend":{"id":"sensortype","notvalue":["-1"]},"value":"C","usedescforoptions":true,"options":[{"label":"C","value":"\\"C\\""},{"label":"K","value":"\\"K\\""},{"label":"V","value":"\\"V\\"","depend":{"id":"sensortype","value":["ANALOG_DEVICE"]}}],"setting":true}]},{"id":"camera","description":"Connected camera","label":"Camera settings","setting":true,"depend":[{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]},{"id":"formfactor","notvalue":["esp01"]},{"id":"has_psram","value":[true]}],"type":"group","value":[{"id":"cameratype","define":"CAMERA_DEVICE","label":"Camera type","description":"Camera connected to ESP board, only ones with PSRAM are supported","type":"select","value":"-1","setting":true,"usedescforoptions":true,"options":[{"label":"None","value":"-1"},{"label":"AI Thinker (ESP32-Cam)","value":"CAMERA_MODEL_AI_THINKER","depend":{"id":"targetmcu","value":["esp32"]}},{"label":"ESP-Eye","value":"CAMERA_MODEL_ESP_EYE","depend":{"id":"targetmcu","value":["esp32"]}},{"label":"ESP-Eye","value":"CAMERA_MODEL_ESP32S3_EYE","depend":{"id":"targetmcu","value":["esp32s3"]}},{"label":"M5Stack","value":"CAMERA_MODEL_M5STACK_PSRAM","depend":{"id":"targetmcu","value":["esp32"]}},{"label":"M5Stack V2","value":"CAMERA_MODEL_M5STACK_V2_PSRAM","depend":{"id":"targetmcu","value":["esp32"]}},{"label":"Wrover Kit","value":"CAMERA_MODEL_WROVER_KIT","depend":{"id":"targetmcu","value":["esp32"]}},{"label":"Espressif Camera","value":"CAMERA_MODEL_ESP32_CAM_BOARD","depend":{"id":"targetmcu","value":["esp32"]}},{"label":"Espressif Camera","value":"CAMERA_MODEL_ESP32S2_CAM_BOARD","depend":{"id":"targetmcu","value":["esp32s2"]}},{"label":"Espressif Camera","value":"CAMERA_MODEL_ESP32S3_CAM_LCD","depend":{"id":"targetmcu","value":["esp32s3"]}},{"label":"Seeed Studio Xiao S3 Sense Camera","value":"CAMERA_MODEL_XIAO_ESP32S3","depend":{"id":"targetmcu","value":["esp32s3"]}}]},{"id":"cameraflipverticaly","define":"CAMERA_DEVICE_FLIP_VERTICALY","label":"Flip vertically","description":"Flip camera verticaly","type":"boolean","depend":{"id":"cameratype","notvalue":["-1"]},"value":true,"disableiffalse":true,"setting":true},{"id":"camerafliphorizontaly","define":"CAMERA_DEVICE_FLIP_HORIZONTALY","label":"Flip horizontally","description":"Flip camera horizontally","type":"boolean","depend":{"id":"cameratype","notvalue":["-1"]},"value":true,"disableiffalse":true,"setting":true}]}],"security":[{"id":"security","description":"How commands are allowed to be sent to ESP3D","label":"Levels of security","setting":true,"type":"group","value":[{"id":"serialcmdfeature","define":"SERIAL_COMMAND_FEATURE","label":"Enable serial commands","description":"Allow commands to be sent to ESP3D via serial port","type":"boolean","value":true,"disableiffalse":true,"setting":true},{"id":"corsfeature","define":"ESP_ACCESS_CONTROL_ALLOW_ORIGIN","label":"Enable cross origin access","description":"Allow to show the camera in web page different than device web server","type":"boolean","value":false,"disableiffalse":true,"setting":true},{"id":"authentication","define":"AUTHENTICATION_FEATURE","label":"Enable authentication","description":"Force usage of authentication for commands","type":"boolean","value":false,"disableiffalse":true,"setting":true}]}],"others":[{"id":"additional","description":"Extra settings","label":"Additional features","setting":true,"type":"group","value":[{"id":"directpins","define":"DIRECT_PIN_FEATURE","label":"Enable direct control pin","description":"Controls pins using [ESP201]","type":"boolean","value":true,"disableiffalse":true,"setting":true}]},{"id":"scripting","description":"Scripting on ESP3D","label":"Scripting settings","setting":true,"type":"group","value":[{"id":"autorunscript","define":"AUTOSTART_SCRIPT_FEATURE","label":"Enable Autostart script","description":"Automaticaly launch script when ESP3D is started","setting":true,"type":"select","value":"-1","usedescforoptions":true,"options":[{"label":"None","value":"-1"},{"label":"Commands","value":"\\"script\\""},{"label":"File","value":"\\"file\\""}]},{"id":"autostartcommands","define":"ESP_AUTOSTART_SCRIPT","label":"Commands to run on startup","description":"Separate commands with \';\'","depend":{"id":"autorunscript","value":["\\"script\\""]},"type":"text","needquote":true,"value":"M117 Mounting SD;M21","disableiffalse":true,"setting":true},{"id":"autostartfile","define":"ESP_AUTOSTART_SCRIPT_FILE","label":"File to run on startup","description":"The file should be on ESP3D filesystem","depend":{"id":"autorunscript","value":["\\"file\\""]},"type":"text","needquote":true,"value":"autorun.gco","disableiffalse":true,"setting":true},{"id":"luainterpreter","define":"ESP_LUA_INTERPRETER_FEATURE","label":"Enable lua interpreter","description":"Allow to use lua interpreter on ESP3D","type":"boolean","value":false,"disableiffalse":true,"setting":true,"depend":{"id":"targetmcu","notvalue":["esp8285","esp8266"]}},{"id":"hook_ip","label":"Enable hook when getting IP","description":"Automaticaly launch script when get IP","setting":true,"type":"boolean","value":false,"disableiffalse":true},{"id":"get_ip_hook","define":"ESP_GOT_IP_HOOK","label":"Commands to run when got IP","description":"Separate commands with \';\'","depend":{"id":"hook_ip","value":[true]},"type":"text","needquote":true,"value":"[ESP212]IP:%ESP_IP%","setting":true},{"id":"hook_datetime","label":"Enable hook when getting date/time","description":"Automaticaly launch script when get date/time","setting":true,"type":"boolean","value":false,"disableiffalse":true},{"id":"get_datetime_hook","define":"ESP_GOT_DATE_TIME_HOOK","label":"Commands to run when got date/time","description":"Separate commands with \';\'","depend":{"id":"hook_datetime","value":[true]},"type":"text","needquote":true,"value":"[ESP212]DATE:%ESP_DATETIME%","disableiffalse":true,"setting":true}]}],"default":[{"id":"default","description":"Do not edit them","label":"Default settings for ESP3D","setting":true,"type":"group","value":[{"id":"gcodehost","define":"GCODE_HOST_FEATURE","label":"Gcode Host Feature","description":"This feature allows to process Gcode files like macros.","type":"boolean","value":true,"setting":true,"disableiffalse":true},{"id":"settings","define":"ESP_SAVE_SETTINGS","label":"Settings location","description":"Location where ESP3D will save settings","type":"select","value":"SETTINGS_IN_EEPROM","setting":true,"usedescforoptions":true,"options":[{"label":"EEPROM","value":"SETTINGS_IN_EEPROM"},{"label":"NFS","value":"SETTINGS_IN_PREFERENCES"}]}]}]}');const he={},me=L("DatasContext"),Ee=()=>J(me),Se=({children:e})=>{const t=K(be);he.getValue=(e,n,i)=>{const l=t.current[e][t.current[e].findIndex((e=>e.id===n))];return l.value[l.value.findIndex((e=>e.id===i))].value},he.getValueId=e=>{if(!e)return;const n=t.current;if(n)for(let t in n)if(Array.isArray(n[t]))for(let i=0;i<n[t].length;i++){if(n[t][i].id==e)return n[t][i].value;if(Array.isArray(n[t][i].value))for(let l=0;l<n[t][i].value.length;l++)if(n[t][i].value[l].id==e)return n[t][i].value[l].value}else for(let i in n[t])if(Array.isArray(n[t][i]))for(let l=0;l<n[t][i].length;l++)if(n[t][i][l].id==e)return n[t][i][l].value};const n={configuration:t};return p(me.Provider,{value:n},e)};var ge=de("button","btn",{donotdisable:"do-not-disable",group:"input-group-btn",link:"btn-link",primary:"btn-primary",error:"btn-error",success:"btn-success",lg:"btn-lg",sm:"btn-sm",xs:"btn-xs",block:"btn-block",action:"btn-action",circle:"s-circle",active:"active",disable:"disable",loading:"loading",tooltip:"tooltip",btooltip:"tooltip-bottom",ltooltip:"tooltip tooltip-left",rtooltip:"tooltip tooltip-right",mx2:"mx-2",m05:"m-05",m2:"m-2",m1:"m-1"});function ye(){return ye=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},ye.apply(this,arguments)}var Te=({label:e,icon:t,iconRight:n,width:i,nomin:l,style:o,showlow:s,className:a,...r})=>p(ge,ye({class:`feather-icon-container ${a||""}`},r,{style:(l?o:"min-width:2rem;"+o)+";display:inline-block;white-space: nowrap;"}),p("div",{style:"overflow:hidden!important;white-space: nowrap;text-overflow:ellipsis!important;cursor: pointer;pointer-events: none;"},n?"":t,e&&p("label",{class:i?""+(s?"":"hide-low"):s?"":"hide-low",style:"display:inline"+(i?"max-width:"+i:"max-width:3rem")},e),n?t:""));function Pe(){return Pe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Pe.apply(this,arguments)}var De=({id:e,label:t,validation:n,value:i=!1,type:l,depend:o,setValue:s,inline:a,...r})=>{const d={name:e,id:e,checked:i,...r};return q((()=>{s&&s(null,!0)}),[i]),p("label",{class:"form-switch"},p("input",Pe({type:"checkbox"},d,{onChange:e=>{s&&s(e.target.checked)}})),p("i",{class:"form-icon"})," ",p("span",{class:a?"text-dark":"d-none"},t))};var Ie=({className:e,inline:t,validation:n=null,children:i,label:l,id:o,type:s})=>p("div",{class:`${e||""} ${(e=>{if(null!==e&&1==e.valid){if(e.modified)return"form-group has-modification";if(e.success)return"form-group has-success"}return null!=e&&0==e.valid?"form-group has-error":"form-group"})(n)}`,id:o?"group-"+o:""},p("div",{class:t?"columns mt-2":"flex-cols"},l&&p("label",{class:t&&"boolean"==s?"d-none":"form-label text-dark "+(t?"column col-auto":""),htmlFor:o},l),i),n&&n.message&&p("div",{className:"form-input-hint "+(t?"text-left":"text-center")},n.message));const Oe=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),p("line",{x1:"1",y1:"1",x2:"23",y2:"23"}))},Ae=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),p("circle",{cx:"12",cy:"12",r:"3"}))},we=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("polyline",{points:"6 9 12 15 18 9"}))},Ce=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("circle",{cx:"12",cy:"12",r:"10"}),p("path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3"}),p("line",{x1:"12",y1:"17",x2:"12.01",y2:"17"}))};const Me={...JSON.parse('{"lang":"English","about":"This configurator will help you to configure your ESP3D 3.0 for a list of features that fit your needs, and be sure it will compile properly.","Features":"Features","Network":"Network","FileSystems":"FileSystems","Devices":"Devices","Update":"Update","Security":"Security","Others":"Others","Download":"Download","Previous":"Previous","Next":"Next"}')};let Re=Me;function ke(e,t=!1,n=null){let i=t?Me[e]:n?n[e]:Re[e];return e&&"object"!=typeof e&&isNaN(e)&&isNaN(e.charAt(0))?(void 0===i&&(i=Me[e],void 0===i&&(i=e)),i):e}const Le=()=>{const{modals:e}=fe();return e.modalList&&e.modalList.length>0&&ce(!0),e.modalList&&e.modalList.length>0&&e.modalList.map(((t,n)=>{t.size;return p(We,{class:"active",id:"modal-"+t.id,style:"z-index:20000",key:n},p(We.Overlay,{"aria-label":"Close",onClick:()=>{pe.haptic(),t.overlay&&e.removeModal(n)}}),p(We.Container,null,p(We.Header,null,p("button",{className:t.hideclose?"d-none":"btn btn-clear float-right btn-close","aria-label":"Close",onClick:()=>{pe.haptic(),e.removeModal(n)}}),p("div",{className:"modal-title h5"},t.title&&t.title)),p(We.Body,null,p("div",{className:"content"},t.content&&t.content)),t.footer&&p(We.Footer,null,t.footer)))}))};function Ne(){return Ne=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Ne.apply(this,arguments)}const Fe=({applyTo:e})=>{const[t,n]=j(!1);return q((()=>{e.current.type=t?"text":"password"}),[]),p("div",{class:"form-icon passwordReveal",onCLick:()=>{n(!t),e.current.type=t?"password":"text"}},p(t?Oe:Ae,{size:"1rem",class:"has-error",style:"margin-top:0.15rem"}))};var Ue=({label:e="",type:t="text",id:n="",value:i="",width:l,setValue:o,options:s=[],extra:a,inline:r,append:d,depend:u,help:c,button:_,disabled:f,className:v,...b})=>{const{step:h}=b,m=K(),E=e=>{o&&o(e.target.value)},{modals:S}=fe(),g={type:t,id:n,name:n,value:i,step:h||"any"};return q((()=>{o&&o(null,!0)}),[i]),"password"===t?p("div",Ne({class:"has-icon-right "+(r?"column":"")},b),p("input",Ne({spellcheck:"false",autocorrect:"off",autocomplete:"off",ref:m,class:"form-input"},g,{placeholder:""},b,{onInput:E})),p(Fe,{applyTo:m})):"dropList"==a?p("div",{class:`input-group ${r?"column":""} `},p("input",Ne({spellcheck:"false",autocorrect:"off",autocomplete:"off",lang:"en-US",ref:m,style:l?"width:"+l:"",id:n,class:"form-input"},g,{placeholder:""},b,{onInput:E})),d&&p("span",{class:"input-group-addon"},ke(d)),s.length>0&&p(Te,{class:"input-group-btn",icon:p(we,{color:"blue"}),"data-tooltip":ke(c),onClick:e=>{e.target.blur();const t="list"+n;(({modals:e,title:t,button1:n,button2:i,content:l,icon:o,id:s,hideclose:a,overlay:r})=>{-1==e.getModalIndex(s)&&e.addModal({id:s,title:p("div",{class:"text-primary feather-icon-container",style:"line-height:24px!important"},o,p("label",null,t)),content:l,footer:p("div",null,n&&p("button",{id:n.id?n.id:null,class:"btn mx-2",onClick:()=>{pe.haptic(),n&&1!=n.noclose&&e.removeModal(e.getModalIndex(s)),n&&n.cb&&n.cb()}},n.text),i&&p("button",{id:i.id?i.id:null,class:"btn mx-2",onClick:()=>{pe.haptic(),i&&1!=i.noclose&&e.removeModal(e.getModalIndex(s)),i&&i.cb&&i.cb()}},i.text)),overlay:r,hideclose:a})})({modals:S,title:ke("S198"),button2:{text:ke("S24")},icon:p(Ce,null),id:t,content:p("ul",{class:"selection-list"},s.map((e=>p("li",{class:"item-selection-list",onclick:n=>{o(e.value),S.removeModal(S.getModalIndex(t))}},e.display))))})}})):p("div",{class:`input-group ${r?"column":""} ${_?"has-button-submit":"no-button-submit"} ${c?"tooltip":""}`,"data-tooltip":ke(c)},p("input",Ne({class:"form-input "+v,disabled:f,spellcheck:"false",autocorrect:"off",autocomplete:"off"},g,b,{onInput:E})),d&&p("span",{class:"input-group-addon"},ke(d)),_)};function xe(){return xe=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},xe.apply(this,arguments)}const He=({label:e,...t})=>p("option",t,e);var Be=({label:e="",id:t="",options:n=[],inline:i,setValue:l,value:o,button:s,className:a,...r})=>{const d=n.map((e=>p(He,e))),u={id:t,name:t};return q((()=>{l&&l(null,!0)}),[o]),p(f,null,p("select",xe({class:`form-select ${i?"column":""} ${a}`},u,r,{value:o,onChange:e=>{l&&l(e.target.value)}}),d),s)};var Ge=({label:e="",id:t="",value:n="",setValue:i,...l})=>(q((()=>{i&&i(null,!0)}),[n]),null);const ze=e=>{const{type:t,id:n}=e;switch(t){case"label":return p(Ie,e,p(Ge,e));case"icon":return p(Ie,e,p(IconSelect,e));case"select":return p(Ie,e,p(Be,e));case"boolean":return p(Ie,e,p(De,e));default:return p(Ie,e,p(Ue,e))}};var Ve=de("div","loading",{lg:"loading-lg",large:"loading-lg"});const Ye=de("div","modal",{lg:"text-lg",large:"text-lg",sm:"text-sm",small:"text-sm"});Ye.Overlay=de("a","modal-overlay"),Ye.Container=de("div","modal-container"),Ye.Header=de("div","modal-header"),Ye.Body=de("div","modal-body"),Ye.Footer=de("div","modal-footer");var We=Ye;const $e=de("div","toast",{primary:"toast-primary",success:"toast-success",warning:"toast-warning",error:"toast-error"});$e.Close=de("button","btn btn-clear float-right");var je=$e;var qe=({className:e,children:t,label:n,id:i})=>p("fieldset",{class:`${e||""}`+(n?"fieldset-top-separator":"fieldset-no-top-separator")+" fieldset-bottom-separator field-group",id:i},p("legend",null,p("label",{class:"m-1"},n)),p("div",{class:"field-group-content"},t));const Ke=({index:e,type:t="",children:n,timeout:i=2e3,remove:l})=>(q((()=>{let t;if(i)return t=setTimeout((()=>{l(e)}),i),()=>clearTimeout(t)}),[]),p(je,{[t]:!0},p(je.Close,{onClick:()=>{useUiContextFn.haptic(),l(e)}}),n)),Xe=()=>{const{toasts:e}=fe();return e.toastList&&p("div",{class:"toasts-container"},e.toastList.map((t=>{const{id:n,type:i,content:l}=t;return p(Ke,{remove:e.removeToast,index:n,type:i,key:n},ke(l))})))},Je=({height:e="50px",color:t="currentColor",bgcolor:n="white"})=>p("svg",{height:e,viewBox:"22 56 240 180",fill:n,stroke:t,class:"esp3dlogo"},p("path",{d:"m 227,91.9 -97,-0.3 0,100.4 83,0 c 20,0 46,-6 47,-36 l 0,-24 c 1,-20 -13,-40 -33,-40.1 z"}),p("path",{fill:t,stroke:n,d:"M79.7,200.2h124c-15.5,16.5-37.6,26.7-62,26.7S95.3,216.7,79.7,200.2z"}),p("path",{fill:t,stroke:n,d:"M203.7,83.2h-124c15.5-16.5,37.6-26.7,62-26.7S188.2,66.8,203.7,83.2z"}),p("path",{fill:t,stroke:n,d:"M200.3,152.7c0,2.7-0.5,5-1.5,7.1s-2.4,3.8-4.2,5.2c-1.8,1.4-4,2.5-6.5,3.2c-2.5,0.7-5.3,1.1-8.3,1.1c-1.8,0-3.5-0.1-5.1-0.4c-1.6-0.3-3-0.6-4.2-1c-1.2-0.4-2.2-0.8-3-1.2c-0.8-0.4-1.3-0.7-1.6-0.9c-0.2-0.2-0.4-0.5-0.6-0.7c-0.1-0.3-0.2-0.6-0.3-1c-0.1-0.4-0.2-0.8-0.2-1.4c0-0.6-0.1-1.2-0.1-2c0-1.3,0.1-2.2,0.3-2.7c0.2-0.5,0.5-0.8,1-0.8c0.3,0,0.7,0.2,1.4,0.6c0.7,0.4,1.5,0.8,2.6,1.2c1,0.4,2.3,0.8,3.7,1.2c1.4,0.4,3,0.6,4.8,0.6c1.5,0,2.8-0.2,4-0.5c1.2-0.4,2.1-0.9,2.9-1.5c0.8-0.6,1.4-1.4,1.8-2.3c0.4-0.9,0.6-1.9,0.6-3.1c0-1.2-0.2-2.3-0.7-3.3c-0.5-1-1.2-1.8-2.1-2.5c-0.9-0.7-2.1-1.2-3.6-1.6c-1.4-0.4-3.1-0.6-5.1-0.6h-4.6c-0.4,0-0.7,0-0.9-0.1c-0.2-0.1-0.5-0.3-0.6-0.6c-0.2-0.3-0.3-0.7-0.3-1.3c-0.1-0.5-0.1-1.2-0.1-2.1c0-0.8,0-1.4,0.1-2c0.1-0.5,0.2-0.9,0.3-1.2c0.2-0.3,0.3-0.5,0.6-0.6c0.2-0.1,0.5-0.2,0.8-0.2h4.6c1.6,0,3-0.2,4.2-0.6c1.2-0.4,2.3-0.9,3.1-1.6c0.8-0.7,1.5-1.5,1.9-2.5c0.4-1,0.7-2,0.7-3.2c0-0.9-0.2-1.8-0.5-2.6c-0.3-0.8-0.7-1.5-1.3-2.1c-0.6-0.6-1.3-1.1-2.3-1.4c-0.9-0.3-2-0.5-3.3-0.5c-1.4,0-2.8,0.2-4,0.6c-1.3,0.4-2.4,0.9-3.4,1.4c-1,0.5-1.8,1-2.5,1.4c-0.7,0.4-1.2,0.7-1.5,0.7c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.3-0.3-0.4-0.6c-0.1-0.3-0.2-0.7-0.2-1.2c-0.1-0.5-0.1-1.2-0.1-2c0-0.7,0-1.3,0-1.7c0-0.5,0.1-0.8,0.2-1.1c0.1-0.3,0.2-0.6,0.3-0.8c0.1-0.2,0.3-0.5,0.6-0.7c0.3-0.3,0.8-0.7,1.7-1.2c0.8-0.5,1.9-1,3.2-1.5c1.3-0.5,2.8-0.9,4.5-1.3c1.7-0.3,3.5-0.5,5.5-0.5c2.6,0,4.9,0.3,6.8,0.9c2,0.6,3.7,1.5,5,2.6c1.4,1.1,2.4,2.5,3.1,4.2c0.7,1.7,1,3.5,1,5.6c0,1.6-0.2,3.1-0.6,4.5c-0.4,1.4-1,2.6-1.8,3.7c-0.8,1.1-1.8,2-3,2.8c-1.2,0.8-2.6,1.3-4.1,1.7v0.1c1.9,0.2,3.5,0.7,5,1.4c1.5,0.7,2.7,1.6,3.8,2.7c1,1.1,1.8,2.3,2.4,3.7C200,149.7,200.3,151.2,200.3,152.7z"}),p("path",{fill:t,stroke:n,d:"M249.6,141c0,4.9-0.6,9-1.9,12.5c-1.3,3.5-3.1,6.3-5.5,8.5c-2.4,2.2-5.3,3.8-8.7,4.8c-3.4,1-7.5,1.5-12.2,1.5h-12.7c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.4-0.9-2.6v-46.4c0-1.2,0.3-2.1,0.9-2.6c0.6-0.5,1.4-0.8,2.3-0.8h13.6c4.7,0,8.8,0.6,12.1,1.7c3.3,1.1,6.1,2.8,8.3,4.9c2.3,2.2,4,4.9,5.2,8.1C249,133,249.6,136.7,249.6,141z M238.5,141.3c0-2.5-0.3-4.9-0.9-7c-0.6-2.2-1.5-4-2.8-5.6c-1.3-1.6-3-2.8-5-3.7c-2-0.9-4.7-1.3-8-1.3h-5.5v36.2h5.6c3,0,5.5-0.4,7.5-1.2c2-0.8,3.7-1.9,5.1-3.5c1.4-1.5,2.4-3.5,3-5.8C238.1,147.1,238.5,144.4,238.5,141.3z"}),p("path",{fill:t,stroke:n,d:"M222.1,90.3h-34.9H61.4c-21.5,0-39,17.5-39,39v24.9c0,21.5,17.5,39,39,39h68.4h92.3c21.5,0,39-17.5,39-39v-24.9C261.1,107.8,243.6,90.3,222.1,90.3z M155.1,179.4c5-7,4.9-16.5,4.9-16.5v-42.5c0-15,12.2-27.2,27.2-27.2h34.9c19.8,0,36,16.1,36,36v24.9c0,19.8-16.1,36-36,36h-79.2C142.9,190.2,149.6,187.2,155.1,179.4z"}),p("path",{d:"M69.7,164.1c0,0.8,0,1.5-0.1,2c-0.1,0.5-0.2,1-0.3,1.3c-0.1,0.3-0.3,0.6-0.5,0.7c-0.2,0.2-0.4,0.2-0.7,0.2H41.4c-0.9,0-1.7-0.3-2.3-0.8c-0.6-0.5-0.9-1.4-0.9-2.6v-46.4c0-1.2,0.3-2.1,0.9-2.6c0.6-0.5,1.4-0.8,2.3-0.8H68c0.2,0,0.5,0.1,0.7,0.2c0.2,0.1,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.8,0.3,1.3c0.1,0.5,0.1,1.2,0.1,2c0,0.8,0,1.4-0.1,2c-0.1,0.5-0.2,1-0.3,1.3c-0.1,0.3-0.3,0.6-0.5,0.7c-0.2,0.2-0.4,0.2-0.7,0.2H49v13H65c0.2,0,0.5,0.1,0.7,0.2c0.2,0.2,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.7,0.3,1.3c0.1,0.5,0.1,1.2,0.1,2c0,0.8,0,1.5-0.1,2c-0.1,0.5-0.2,0.9-0.3,1.3c-0.1,0.3-0.3,0.5-0.5,0.7c-0.2,0.1-0.4,0.2-0.7,0.2H49v15h19.2c0.2,0,0.5,0.1,0.7,0.2c0.2,0.2,0.4,0.4,0.5,0.7c0.1,0.3,0.2,0.8,0.3,1.3C69.7,162.6,69.7,163.3,69.7,164.1z"}),p("path",{d:"M109.4,152.4c0,2.8-0.5,5.2-1.6,7.4c-1,2.1-2.5,3.9-4.2,5.3c-1.8,1.4-3.9,2.5-6.2,3.2c-2.4,0.7-4.9,1.1-7.6,1.1c-1.8,0-3.5-0.2-5.1-0.5c-1.6-0.3-3-0.7-4.2-1.1c-1.2-0.4-2.2-0.9-3-1.3c-0.8-0.5-1.4-0.9-1.7-1.2c-0.4-0.4-0.6-0.9-0.8-1.5c-0.2-0.7-0.2-1.6-0.2-2.9c0-0.8,0-1.6,0.1-2.1c0.1-0.6,0.1-1,0.3-1.4c0.1-0.4,0.3-0.6,0.5-0.8c0.2-0.2,0.4-0.2,0.7-0.2c0.4,0,0.9,0.2,1.6,0.7c0.7,0.5,1.6,1,2.7,1.5c1.1,0.5,2.4,1,3.9,1.5c1.5,0.5,3.3,0.7,5.3,0.7c1.3,0,2.5-0.2,3.5-0.5c1-0.3,1.9-0.8,2.7-1.3c0.7-0.6,1.3-1.3,1.7-2.1c0.4-0.8,0.6-1.8,0.6-2.8c0-1.2-0.3-2.2-1-3.1c-0.7-0.9-1.5-1.6-2.6-2.3c-1.1-0.7-2.3-1.3-3.6-1.9c-1.3-0.6-2.7-1.2-4.2-1.9c-1.4-0.7-2.8-1.4-4.2-2.2c-1.3-0.8-2.5-1.8-3.6-3c-1.1-1.2-1.9-2.5-2.6-4.1c-0.7-1.6-1-3.5-1-5.7c0-2.5,0.5-4.8,1.4-6.7c0.9-1.9,2.2-3.5,3.8-4.8c1.6-1.3,3.5-2.2,5.7-2.9c2.2-0.6,4.5-0.9,6.9-0.9c1.3,0,2.5,0.1,3.8,0.3c1.3,0.2,2.4,0.5,3.5,0.8c1.1,0.3,2.1,0.7,2.9,1.1c0.8,0.4,1.4,0.8,1.7,1c0.3,0.3,0.5,0.5,0.6,0.7c0.1,0.2,0.2,0.4,0.2,0.8c0.1,0.3,0.1,0.7,0.1,1.2c0,0.5,0,1.1,0,1.8c0,0.8,0,1.5-0.1,2c0,0.5-0.1,1-0.2,1.4c-0.1,0.4-0.2,0.6-0.4,0.8c-0.2,0.2-0.4,0.2-0.7,0.2c-0.3,0-0.8-0.2-1.4-0.6c-0.7-0.4-1.5-0.8-2.4-1.3c-1-0.5-2.1-0.9-3.3-1.2c-1.3-0.4-2.6-0.6-4.2-0.6c-1.2,0-2.2,0.1-3.1,0.4c-0.9,0.3-1.6,0.7-2.2,1.2c-0.6,0.5-1,1.1-1.3,1.8c-0.3,0.7-0.4,1.5-0.4,2.3c0,1.2,0.3,2.2,1,3.1c0.6,0.9,1.5,1.6,2.6,2.3c1.1,0.7,2.3,1.3,3.7,1.9c1.4,0.6,2.8,1.2,4.2,1.9c1.4,0.7,2.8,1.4,4.2,2.2c1.4,0.8,2.6,1.8,3.7,3c1.1,1.2,1.9,2.5,2.6,4.1C109.1,148.4,109.4,150.2,109.4,152.4z"}),p("path",{d:"M151.4,131.2c0,3-0.5,5.6-1.4,7.9c-0.9,2.3-2.3,4.2-4.1,5.8c-1.8,1.6-4,2.8-6.6,3.6c-2.6,0.8-5.6,1.2-9.1,1.2h-4.4v17c0,0.3-0.1,0.5-0.3,0.7c-0.2,0.2-0.5,0.4-0.9,0.5c-0.4,0.1-1,0.2-1.6,0.3c-0.7,0.1-1.6,0.1-2.6,0.1c-1,0-1.9,0-2.6-0.1c-0.7-0.1-1.3-0.2-1.7-0.3c-0.4-0.1-0.7-0.3-0.9-0.5c-0.2-0.2-0.2-0.5-0.2-0.7v-47.8c0-1.3,0.3-2.3,1-2.9c0.7-0.6,1.6-1,2.7-1h12.5c1.3,0,2.5,0,3.6,0.1c1.1,0.1,2.5,0.3,4.1,0.6c1.6,0.3,3.2,0.9,4.8,1.7c1.6,0.8,3,1.9,4.2,3.2c1.2,1.3,2,2.8,2.6,4.6C151.1,127.1,151.4,129,151.4,131.2z M140.1,132c0-1.9-0.3-3.4-1-4.6c-0.7-1.2-1.5-2.1-2.4-2.7c-1-0.6-2-0.9-3-1.1c-1.1-0.2-2.1-0.2-3.3-0.2h-4.6v18h4.8c1.7,0,3.2-0.2,4.3-0.7c1.2-0.5,2.1-1.1,2.9-2c0.7-0.8,1.3-1.8,1.7-3C139.9,134.6,140.1,133.3,140.1,132z"}));function Ze(){return Ze=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},Ze.apply(this,arguments)}const Qe=({children:e,routesList:t,localDefault:n})=>{const[i,l]=j(!0),{setActiveRoute:o,setRoutes:s,activeRoute:a,routes:r,defaultRoute:d,activeTab:u}=oe();const c=n?u.current:d.current,_=Object.values(t).find((e=>e.path==c)),[v,b]=j(_.component),h=function(e,t){return H=8,X((function(){return e}),t)}((()=>{m()}),[]),m=()=>{let e=!1;l(!0);const n=function(){if("undefined"!=typeof window){const e=window.location.hash.slice(1).toLowerCase();return"/config"==e?("file:"==window.location.protocol?window.location.href=window.location.protocol+"//"+window.location.pathname+"#"+u.current:window.location.href="/#"+u.current,u.current):e}return d}().split("/");for(let i=0;i<n.length;i++){const s=n.slice(0,i+1).join("/");for(const n in t)if(Object.prototype.hasOwnProperty.call(t,n)){const i=t[n];if(i.path===s||s.startsWith(i.path)){o(i.path),b(i.component),e=!0,l(!1);break}}}e||("file:"==window.location.protocol?window.location.href=window.location.protocol+"//"+window.location.pathname+"#"+c:window.location.href="/#"+c)};return q((()=>{s({...r,...t}),m()}),[]),q((()=>{a.startsWith("/config/")&&u.current!=a&&(u.current=a,m())}),[a]),q((()=>(m(),a.startsWith("/config/")&&(u.current=a),window.addEventListener("hashchange",h),()=>window.removeEventListener("hashchange",h))),[]),i?p(Ve,{large:!0}):p(f,null,v,e)},et=({activeClassName:e="",className:t="",href:n,children:i,...l})=>{const{activeRoute:o}=oe(),[s,a]=j();return q((()=>{const i=window.location.hash.slice(1).toLowerCase();"/config"==o&&n==i||i.startsWith("/config")&&"/config"==n?a(`${t} ${e}`):a(o===n?`${t} ${e}`:t)}),[o]),s&&p("a",Ze({href:`#${n}`,className:s},l),i)},tt=[{label:p(Je,{bgcolor:"#ffffff"}),icon:null,href:"/about"},{label:"Configurator for ESP3D 3.0",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("circle",{cx:"12",cy:"12",r:"3"}),p("path",{d:"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z"}))}),null),href:"/config",id:"connfigLink"}],nt=()=>p("header",{class:"navbar"},p("section",{class:"navbar-section"},tt&&tt.map((({label:e,icon:t,href:n,id:i})=>p(et,{onclick:e=>{},id:i,className:"/about"==n?"navbar-brand logo no-box ":"btn btn-link no-box feather-icon-container",activeClassName:"active",href:n},t,p("label",{class:"/about"==n?"":"hide-low"},ke(e))))))),it=()=>p("div",{id:"menu",class:"menu-container"},p(nt,null)),lt="1.0.0-a33",ot=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"}))};var st=()=>(console.log("about"),p("div",{id:"about",class:"container"},p("div",{style:"min-height:200px;height:100%;display:flex; flex-flow: column; justify-content:center; align-items:middle"},p("center",null,p("div",{class:"m-2 text-primary"},"ESP3D-Configurator V",lt," ",p(Te,{icon:p(ot,null),onclick:()=>{window.open("https://github.com/luc-github/ESP3D-Configurator","_BLANK")}})),ke("about"))),p("br",null)));const at=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("line",{x1:"19",y1:"12",x2:"5",y2:"12"}),p("polyline",{points:"12 19 5 12 12 5"}))},rt=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("line",{x1:"5",y1:"12",x2:"19",y2:"12"}),p("polyline",{points:"12 5 19 12 12 19"}))};var dt=JSON.parse('[{"label":"None","value":"-1"},{"label":"GPIO 0","value":"0","depend":{"id":"targetmcu","value":["esp8266","esp32","esp32s2","esp32s3","esp32c6"]}},{"label":"GPIO 0","value":"0","depend":[{"id":"targetmcu","value":["esp32c3"]},{"id":"formfactor","notvalue":["esp01"]}]},{"label":"GPIO 1","value":"1","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 2","value":"2"},{"label":"GPIO 3","value":"3","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 4","value":"4","depend":{"id":"formfactor","notvalue":["esp01"]}},{"label":"GPIO 5","value":"5","depend":{"id":"formfactor","notvalue":["esp01"]}},{"label":"GPIO 6","value":"6","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 7","value":"7","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 8","value":"8","depend":{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}},{"label":"GPIO 9","value":"9","depend":{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}},{"label":"GPIO 10","value":"10","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 11","value":"11","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3","esp32c6"]}]},{"label":"GPIO 12","value":"12","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp8266","esp32","esp32s2","esp32s3","esp32c6"]}]},{"label":"GPIO 13","value":"13","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp8266","esp32","esp32s2","esp32s3","esp32c6"]}]},{"label":"GPIO 14","value":"14","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp8266","esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 15","value":"15","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp8266","esp32","esp32s2","esp32s3","esp32c6"]}]},{"label":"GPIO 16","value":"16","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp8266","esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 17","value":"17","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 18","value":"18","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 19","value":"19","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 21","value":"21","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3","esp32c6"]}]},{"label":"GPIO 22","value":"22","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32c6"]}]},{"label":"GPIO 23","value":"23","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s3","esp32c6"]}]},{"label":"GPIO 25","value":"25","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32"]}]},{"label":"GPIO 26","value":"26","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 27","value":"27","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 28","value":"28","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s3"]}]},{"label":"GPIO 29","value":"29","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s3"]}]},{"label":"GPIO 30","value":"30","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s3"]}]},{"label":"GPIO 31","value":"31","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 32","value":"32","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s3"]}]},{"label":"GPIO 33","value":"33","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 34","value":"34","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 35","value":"35","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 36","value":"36","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 37","value":"37","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 38","value":"38","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 39","value":"39","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32","esp32s2","esp32s3"]}]},{"label":"GPIO 40","value":"40","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 41","value":"41","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 42","value":"42","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 43","value":"43","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 44","value":"44","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 45","value":"45","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 46","value":"46","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s2","esp32s3"]}]},{"label":"GPIO 47","value":"47","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s3"]}]},{"label":"GPIO 48","value":"48","depend":[{"id":"formfactor","notvalue":["esp01"]},{"id":"targetmcu","value":["esp32s3"]}]}]'),ut=JSON.parse('[{"label":"0","value":"USE_SERIAL_0","help":"Also used by bootloader output, so consider to make it quiet"},{"label":"1","value":"USE_SERIAL_1","depend":{"id":"targetmcu","value":["esp32","esp32s2","esp32s3","esp32c3","esp32c6"]}},{"label":"2","value":"USE_SERIAL_2","depend":{"id":"targetmcu","value":["esp32","esp32s3"]}}]');function ct(){return ct=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(e[i]=n[i])}return e},ct.apply(this,arguments)}const pt={current:[]},_t={current:["USE_SERIAL_0"]},ft=(e,t)=>{"-1"!=e&&(t.current=t.current.filter((t=>t!=e)))},vt=(e,t)=>{if(e){const n=JSON.parse(JSON.stringify(e));return t&&t.forEach((e=>{const t=n.findIndex((t=>t.value==e.value));t>-1?n[t].depend=e.depend:n.push(e)})),n}return null},bt=(e,t)=>{if(e){const n=e.findIndex((e=>e.value==t));if(n>-1)return e[n].help}return null},ht=(e,t,n,i=pt)=>{if(t&&"-1"!=t){if(t==n&&ht(e))return!0;if(i.current.includes(t))return!1}if(e){if(Array.isArray(e)){return e.reduce(((e,t)=>{if(!e)return e;const n=he.getValueId(t.id);return t.value?t.value.includes(n):t.notvalue?!t.notvalue.includes(n):void 0}),!0)}{const t=he.getValueId(e.id);if(e.value)return e.value.includes(t);if(e.notvalue)return!e.notvalue.includes(t)}}return!0},mt=({previous:e,next:t})=>p("div",{style:"display:flex;justify-content:space-around"},e&&p(Te,{m2:!0,label:ke("Previous"),icon:p(at,null),onclick:()=>{document.getElementById(e)&&document.getElementById(e).click()}}),t&&p(Te,{m2:!0,label:ke("Next"),icon:p(rt,null),iconRight:!0,onclick:()=>{document.getElementById(t)&&document.getElementById(t).click()}})),Et=({previous:e,current:t,next:n})=>{const{configuration:i}=Ee(),l=e=>({message:"",valid:!0,modified:!1}),[o,s]=j(!0);return q((()=>{s(!1)}),[]),p("div",{id:t,class:"m-2"},o&&p(Ve,{large:!0}),!o&&p("div",{class:"center"},p(mt,{previous:e,next:n}),i.current[t]&&i.current[t].map(((e,n)=>"group"===e.type?ht(e.depend)?p(qe,{id:e.id,label:ke(e.label)},e.value.map(((e,n)=>{if(!ht(e.depend))return null;void 0===e.initial&&(e.initial=e.value);const{label:i,initial:o,type:s,options:a,value:r,...d}=e,u=e.ispin?e.usedefault?JSON.parse(JSON.stringify(vt(dt,a)).replaceAll("None","Default")):vt(dt,a):e.isport?e.usedefault?JSON.parse(JSON.stringify(vt(ut,a)).replaceAll("None","Default")):vt(ut,a):a,c=u?u.filter((t=>ht(t.depend,e.ispin||e.isport?t.value:null,e.ispin||e.isport?e.value:null,e.ispin?pt:e.isport?_t:null))):null;c&&-1==c.findIndex((t=>t.value==e.value))&&((e.ispin||e.isport)&&ft(e.value,e.ispin?pt:_t),e.value=c[0].value);const[_,v]=j(e.options?bt(u,e.value):e.description),[b,h]=j();return q((()=>{v(u?bt(u,e.value):e.description)}),[]),q((()=>{v(u?bt(u,e.value):e.description)}),[e.value,t]),p(f,null,p(ze,ct({inline:!0,className:"fit-content",label:ke(i),options:c,value:r,type:s},d,{validationfn:l,setValue:(t,n=!1)=>{var i,l;n||((e.ispin||e.isport)&&(ft(e.value,e.ispin?pt:_t),i=t,l=e.ispin?pt:_t,"-1"!=i&&l.current.push(i),console.log(e.ispin?pt:_t)),e.value=t,v(a?bt(u,t):e.description)),h({message:"",valid:!0,modified:!1})},validation:b})),_&&p("div",{class:"m-1"},_),e.usedescforoptions&&p("div",{class:"m-1"},e.description),p("div",{class:"m-1 divider",style:"border-color: #dadee4"}))}))):null:p(f,null,e.label))),p(mt,{previous:e,next:n}),p("br",null)))},St=e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z"}),p("polyline",{points:"17 21 17 13 7 13 7 21"}),p("polyline",{points:"7 3 7 8 15 8"}))};const gt=p("svg",{width:"24",height:"24",viewBox:"0 0 256 256",xmlns:"http://www.w3.org/2000/svg",preserveAspectRatio:"xMidYMid"},p("path",{d:"M128 0C93.81 0 61.666 13.314 37.49 37.49 13.314 61.666 0 93.81 0 128c0 34.19 13.314 66.334 37.49 90.51C61.666 242.686 93.81 256 128 256c34.19 0 66.334-13.314 90.51-37.49C242.686 194.334 256 162.19 256 128c0-34.19-13.314-66.334-37.49-90.51C194.334 13.314 162.19 0 128 0",fill:"#5755d9"}),p("path",{d:"M249.386 128c0 67.04-54.347 121.386-121.386 121.386C60.96 249.386 6.613 195.04 6.613 128 6.613 60.96 60.96 6.614 128 6.614c67.04 0 121.386 54.346 121.386 121.386",fill:"#FFF"}),p("path",{d:"M160.869 74.062l5.145-18.537c5.264-.47 9.392-4.886 9.392-10.273 0-5.7-4.62-10.32-10.32-10.32s-10.32 4.62-10.32 10.32c0 3.755 2.013 7.03 5.01 8.837l-5.05 18.195c-14.437-3.67-26.625-3.39-26.625-3.39l-2.258 1.01v140.872l2.258.753c13.614 0 73.177-41.133 73.323-85.27 0-31.624-21.023-45.825-40.555-52.197zM146.53 164.8c-11.617-18.557-6.706-61.751 23.643-67.925 8.32-1.333 18.509 4.134 21.51 16.279 7.582 25.766-37.015 61.845-45.153 51.646zm18.216-39.752a9.399 9.399 0 0 0-9.399 9.399 9.399 9.399 0 0 0 9.4 9.399 9.399 9.399 0 0 0 9.398-9.4 9.399 9.399 0 0 0-9.399-9.398zm2.81 8.672a2.374 2.374 0 1 1 0-4.749 2.374 2.374 0 0 1 0 4.749z",fill:"#5755d9"}),p("path",{d:"M101.371 72.709l-5.023-18.901c2.874-1.832 4.786-5.04 4.786-8.701 0-5.7-4.62-10.32-10.32-10.32-5.699 0-10.319 4.62-10.319 10.32 0 5.682 4.592 10.289 10.267 10.317L95.8 74.378c-19.609 6.51-40.885 20.742-40.885 51.88.436 45.01 59.572 85.267 73.186 85.267V68.892s-12.252-.062-26.729 3.817zm10.395 92.09c-8.138 10.2-52.735-25.88-45.154-51.645 3.002-12.145 13.19-17.612 21.511-16.28 30.35 6.175 35.26 49.369 23.643 67.926zm-18.82-39.46a9.399 9.399 0 0 0-9.399 9.398 9.399 9.399 0 0 0 9.4 9.4 9.399 9.399 0 0 0 9.398-9.4 9.399 9.399 0 0 0-9.399-9.399zm-2.81 8.671a2.374 2.374 0 1 1 0-4.748 2.374 2.374 0 0 1 0 4.748z",fill:"#5755d9"})),yt=e=>`// This file was generated by ESP3D-Configurator V${lt} \n/*\n configuration.h - ESP3D configuration file\n\n Copyright (c) 2014 Luc Lebosse. All rights reserved.\n\n This code is free software; you can redistribute it and/or\n modify it under the terms of the GNU Lesser General Public\n License as published by the Free Software Foundation; either\n version 2.1 of the License, or (at your option) any later version.\n\n This code is distributed in the hope that it will be useful,\n but WITHOUT ANY WARRANTY; without even the implied warranty of\n MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU\n Lesser General Public License for more details.\n\n You should have received a copy of the GNU Lesser General Public\n License along with This code; if not, write to the Free Software\n Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA\n*/\n#ifndef _CONFIGURATION_H\n#define _CONFIGURATION_H\n//Setup station as default, use AP mode first if not done\n//Note: need both defined to enable it\n//Uncomment and edit them to define\n//#define STATION_WIFI_SSID "*********"\n//#define STATION_WIFI_PASSWORD "*********"\n\n//You can also use a different config file for SSID/password\n//Just save it in same location as this configuration.h\n//This file is ignored by github\n#if defined __has_include\n# if __has_include ("myconfig.h")\n# include "myconfig.h"\n# endif\n#endif\n\n`+Ct(e)+'\n\n\n/************************************\n*\n* Development setting \n* Do not modify them for production \n************************************/\n\n//Enable debug mode\n//Do not do this when connected to printer !!!\n//be noted all upload may failed if enabled\n//DEBUG_OUTPUT_SERIAL0\n//DEBUG_OUTPUT_SERIAL1\n//DEBUG_OUTPUT_SERIAL2\n//DEBUG_OUTPUT_TELNET\n//DEBUG_OUTPUT_WEBSOCKET\n//#define ESP_DEBUG_FEATURE DEBUG_OUTPUT_SERIAL0\n\n#ifdef ESP_DEBUG_FEATURE\n#define DEBUG_BAUDRATE 115200\n#define DEBUG_ESP3D_OUTPUT_PORT 8000\n#endif //ESP_DEBUG_FEATURE\n\n//Enable benchmark report in dev console\n//#define ESP_BENCHMARK_FEATURE\n\n//Disable sanity check at compilation\n//#define ESP_NO_SANITY_CHECK\n\n\n/************************************\n*\n* Sanity checks \n* Do not modify \n************************************/\n\n#if defined(ESP_GOT_DATE_TIME_HOOK) || defined (SD_TIMESTAMP_FEATURE) || defined (FILESYSTEM_TIMESTAMP_FEATURE)\n #define TIMESTAMP_FEATURE\n#endif //SD_TIMESTAMP_FEATURE || FILESYSTEM_TIMESTAMP_FEATURE \n\n#if defined(PRINTER_HAS_DISPLAY)\n#define HAS_SERIAL_DISPLAY ""\n#endif // PRINTER_HAS_DISPLAY\n\n#if defined(CAMERA_DEVICE)\n#if CAMERA_DEVICE==CAMERA_MODEL_ESP32_CAM_BOARD || CAMERA_DEVICE==CAMERA_MODEL_ESP32S2_CAM_BOARD\n#define USE_BOARD_HEARDER 1\n#endif // CAMERA_DEVICE==CAMERA_MODEL_ESP32_CAM_BOARD || CAMERA_DEVICE==CAMERA_MODEL_ESP32S2_CAM_BOARD\n#endif // CAMERA_DEVICE\n\n#if !defined(WIFI_FEATURE) && !defined(ETH_FEATURE)\n#undef HTTP_FEATURE\n#undef TELNET_FEATURE\n#undef WEBDAV_FEATURE\n#undef FTP_FEATURE\n#undef WEB_UPDATE_FEATURE\n#undef CAPTIVE_PORTAL_FEATURE\n#undef SSDP_FEATURE\n#undef MDNS_FEATURE\n#undef NOTIFICATION_FEATURE\n#endif\n\n#endif //_CONFIGURATION_H\n',Tt=()=>`;This file was generated by ESP3D-Configurator V${lt} \n; PlatformIO Project Configuration File\n;\n; Build options: build flags, source filter\n; Upload options: custom upload port, speed and extra flags\n; Library options: dependencies, extra library storages\n; Advanced options: extra scripting\n;\n; Please visit documentation for the other options and examples\n; https://docs.platformio.org/page/projectconf.html\n\n[platformio]\nsrc_dir = esp3d\nbuild_dir = .pioenvs\nlib_dir = libraries\nlibdeps_dir = .piolibdeps\ndata_dir = esp3d/data\n`+Ot()+"\n",Pt={esp32:{common:"platform = espressif32@6.2.0\nboard = esp32dev\nframework = arduino\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp32_exception_decoder\n; set frequency to 240MHz\n;board_build.f_cpu = 240000000L\n; set frequency to 80MHz\n;board_build.f_flash = 80000000L\nboard_build.flash_mode = $flash_mode\nupload_speed = 460800\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:" -DCORE_DEBUG_LEVEL=0\n",defaultMosi:23,defaultSck:18,defaultCs:5,defaultMiso:19,defaultSda:21,defaultScl:22,lib_ignore:"esp32-usb-serial\n"},esp32s2:{common:"platform = espressif32@6.2.0\nboard = esp32-s2-saola-1\nframework = arduino\nboard_build.mcu = esp32s2\nboard_build.variant = esp32s2\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp32_exception_decoder\n; set frequency to 240MHz\nboard_build.f_cpu = 240000000L\n; set frequency to 80MHz\nboard_build.f_flash = 80000000L\nboard_build.flash_mode = $flash_mode\nupload_speed = 460800\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:"\n -DCORE_DEBUG_LEVEL=0\n -DARDUINO_USB_CDC_ON_BOOT=0\n -DARDUINO_USB_MSC_ON_BOOT=0\n -DARDUINO_USB_DFU_ON_BOOT=0\n -DCONFIG_IDF_TARGET_ESP32S2=1\n",defaultMosi:35,defaultSck:36,defaultCs:34,defaultMiso:37,defaultSda:8,defaultScl:9},esp32s3:{common:"platform = espressif32@6.2.0\nboard = esp32-s3-devkitc-1\nframework = arduino\nboard_build.mcu = esp32s3\nboard_build.variant = esp32s3\nboard_build.arduino.memory_type = $memory_type\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp32_exception_decoder\n; set frequency to 240MHz\nboard_build.f_cpu = 240000000L\n; set frequency to 80MHz\nboard_build.f_flash = 80000000L\nboard_build.flash_mode = $flash_mode\nupload_speed = 460800\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:"\n -DCORE_DEBUG_LEVEL=0\n -DARDUINO_USB_CDC_ON_BOOT=0\n -DARDUINO_USB_MSC_ON_BOOT=0\n -DARDUINO_USB_DFU_ON_BOOT=0\n -DCONFIG_IDF_TARGET_ESP32S3=1\n",defaultMosi:11,defaultSck:12,defaultCs:10,defaultMiso:13,defaultSda:8,defaultScl:9},esp32c3:{common:"platform = espressif32@6.2.0\nboard = esp32-c3-devkitm-1\nframework = arduino\nboard_build.mcu = esp32c3\nboard_build.variant = esp32c3\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp32_exception_decoder\n; set frequency to 240MHz\nboard_build.f_cpu = 240000000L\n; set frequency to 80MHz\nboard_build.f_flash = 80000000L\nboard_build.flash_mode = $flash_mode\nupload_speed = 460800\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:" -DCORE_DEBUG_LEVEL=0\n -DCONFIG_IDF_TARGET_ESP32C3=1\n",lib_ignore:"esp32-usb-serial\n",defaultMosi:6,defaultSck:4,defaultCs:7,defaultMiso:5,defaultSda:8,defaultScl:9},esp32c6:{common:"platform = espressif32@6.2.0\nboard = esp32-c6-devkitc-1\nframework = arduino\nboard_build.mcu = esp32c6\nboard_build.variant = esp32c6\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp32_exception_decoder\n; set frequency to 240MHz\nboard_build.f_cpu = 240000000L\n; set frequency to 80MHz\nboard_build.f_flash = 80000000L\nboard_build.flash_mode = $flash_mode\nupload_speed = 460800\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:" -DCORE_DEBUG_LEVEL=0\n -DCONFIG_IDF_TARGET_ESP32C6=1\n",lib_ignore:"esp32-usb-serial\n",defaultMosi:6,defaultSck:4,defaultCs:7,defaultMiso:5,defaultSda:8,defaultScl:9},esp8266:{common:"platform = espressif8266@4.1.0\nboard = esp12e\nframework = arduino\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp8266_exception_decoder\n; set frequency to 160MHz\nboard_build.f_cpu = 160000000L\n; set frequency to 40MHz\nboard_build.f_flash = 40000000L\nboard_build.flash_mode = $flash_mode\nupload_resetmethod = $resetmethod\nupload_speed = 115200\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:"\n -D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY\n -DNONOSDK221=1\n -DNDEBUG -DVTABLES_IN_FLASH\n -DWAVEFORM_LOCKED_PWM\n",lib_ignore:"\n\tESP32SSDP\n\tesp32-usb-serial\n",defaultMosi:13,defaultSck:14,defaultCs:15,defaultMiso:12,defaultSda:4,defaultScl:5},esp8285:{common:"platform = espressif8266@4.1.0\nboard = esp8285\nframework = arduino\nmonitor_speed = 115200\nmonitor_echo = yes\nmonitor_filters = send_on_enter, colorize, esp8266_exception_decoder\n; set frequency to 160MHz\nboard_build.f_cpu = 160000000L\n; set frequency to 40MHz\nboard_build.f_flash = 40000000L\nboard_build.flash_mode = $flash_mode\nupload_resetmethod = $resetmethod\nupload_speed = 115200\nextra_scripts = pre:platformIO/extra_script.py\nboard_build.filesystem = $filesystem\n",build_flags:"\n -D PIO_FRAMEWORK_ARDUINO_LWIP2_LOW_MEMORY\n -DNONOSDK221=1\n -DNDEBUG -DVTABLES_IN_FLASH\n -DWAVEFORM_LOCKED_PWM\n",lib_ignore:"\n\tESP32SSDP\n\tesp32-usb-serial\n",defaultMosi:13,defaultSck:14,defaultCs:15,defaultMiso:12,defaultSda:4,defaultScl:5}},Dt=({target:e,targetsize:t,hasWifi:n,hasEthernet:i,hasBT:l,has_psram:o,displayName:s})=>"build_flags = "+Pt[e].build_flags+((e,t)=>{if("TFT_SPI_ST7789_240X240"==t||"TFT_SPI_ST7789_135X240"==t){const n="TFT_SPI_ST7789_135X240"==t?135:240,i=240,l=he.getValueId("tftRSTpin"),o=he.getValueId("tftDCpin"),s=he.getValueId("tftCSpin"),a=he.getValueId("tftMOSIpin"),r=he.getValueId("tftSCKpin"),d=he.getValueId("tftledpin"),u=Pt[e].defaultMosi,c=Pt[e].defaultSck,p=Pt[e].defaultCs;return` -Os\n -DUSER_SETUP_LOADED=1\n -DST7789_DRIVER=1\n -DTFT_SDA_READY=1\n -DCGRAM_OFFSET=1\n -DTFT_WIDTH=${n}\n -DTFT_HEIGHT=${i}\n -DTFT_MOSI=${"-1"==a?u:a}\n -DTFT_SCLK=${"-1"==r?c:r}\n -DTFT_CS=${"-1"==s?p:s}\n -DTFT_DC=${o}\n -DTFT_RST=${l}\n -DTFT_BL=${d}\n -DTFT_BACKLIGHT_ON=${"-1"==d?0:1}\n -DLOAD_GLCD=1\n -DLOAD_FONT2=1\n -DLOAD_FONT4=1\n -DLOAD_FONT6=1\n -DLOAD_FONT7=1\n -DLOAD_FONT8=1\n -DLOAD_GFXFF=1\n -DSMOOTH_FONT=1\n -DSPI_FREQUENCY=40000000\n -DSPI_READ_FREQUENCY=6000000\n`}return""})(e,s)+((e,t)=>t?" -DBOARD_HAS_PSRAM\n"+("esp32"==e?" -mfix-esp32-psram-cache-issue\n":""):"")(e,o),It=({target:e,targetsize:t,hasWifi:n,hasEthernet:i,hasBT:l,cameraName:o,has_psram:s,displayName:a,envName:r,flash_mode:d,filesystem:u,resetmethod:c,memory_type:p})=>{let _="[env:"+r+"]\n"+Pt[e].common+((e,t)=>{if("esp8266"===e)switch(t){case"1":return"board_build.ldscript = eagle.flash.1m256.ld\n";case"2":return"board_build.ldscript = eagle.flash.2m256.ld\n";case"4":return"board_build.ldscript = eagle.flash.4m2m.ld\n";case"8":return"board_build.ldscript = eagle.flash.8m6m.ld\n";case"16":return"board_build.ldscript = eagle.flash.16m14m.ld\n";default:return""}else switch(t){case"2":return"board_upload.flash_size = 4MB\nboard_build.partitions = minimal.csv";case"4":return"board_upload.flash_size = 4MB\nboard_build.partitions = min_spiffs.csv\n";case"8":return"board_upload.flash_size = 8MB\nboard_build.partitions = default_8MB.csv\n";case"16":return"board_upload.flash_size = 16MB\nboard_build.partitions = large_spiffs_16MB.csv\n";default:return""}})(e,t)+(({target:e,targetsize:t,hasWifi:n,hasEthernet:i,hasBT:l,cameraName:o,displayName:s,envName:a})=>Pt[e].lib_ignore?"lib_ignore = "+Pt[e].lib_ignore+"\n":"")({target:e,targetsize:t,hasWifi:n,hasEthernet:i,hasBT:l,cameraName:o,displayName:a})+Dt({target:e,targetsize:t,hasWifi:n,hasEthernet:i,hasBT:l,has_psram:s,displayName:a});return _=_.replace(/\$flash_mode/g,d),_=_.replace(/\$filesystem/g,u),_=_.replace(/\$resetmethod/g,c),_=_.replace(/\$memory_type/g,p),_},Ot=()=>{const e=he.getValueId("targetmcu"),t=he.getValueId("targetflashsize"),n=he.getValueId("wifi"),i=he.getValueId("ethernet"),l=he.getValueId("bluetooth"),o=he.getValueId("cameratype"),s=he.getValueId("has_psram"),a=he.getValueId("displaytype"),r="esp8285"==e||"esp8266"==e?he.getValueId("flash_mod1"):he.getValueId("flash_mode"),d="ESP_LITTLEFS_FILESYSTEM"==he.getValueId("flashFS")?"littlefs":"fatfs",u=he.getValueId("resetmethod"),c=he.getValueId("memory_type");console.log("filesystem",d);const p=`${e}_${t}MB${"-1"==o?"":"_cam"}${"-1"==a?"":"_disp"}${n?"_wifi":""}${i?"_eth":""}${l?"_bt":""}`;return`default_envs = ${p}\n\n`+It({target:e,targetsize:t,hasWifi:n,hasEthernet:i,hasBT:l,cameraName:o,has_psram:s,displayName:a,envName:p,flash_mode:r,filesystem:d,resetmethod:u,memory_type:c})},At=(e,t)=>{if(e){const n=e.findIndex((e=>e.value==t));if(n>-1)return e[n].label}return null},wt=(e,t,n)=>{if(t&&"-1"!=t){if(t==n&&wt(e))return!0;if(usedPinsList.current.includes(t))return!1}if(e){if(Array.isArray(e)){return e.reduce(((e,t)=>{if(!e)return e;const n=he.getValueId(t.id);return t.value?t.value.includes(n):t.notvalue?!t.notvalue.includes(n):void 0}),!0)}{const t=he.getValueId(e.id);if(e.value)return e.value.includes(t);if(e.notvalue)return!e.notvalue.includes(t)}}return!0},Ct=e=>Object.keys(e).reduce(((t,n)=>e[n].reduce(((e,t)=>{if("group"==t.type){if(!wt(t.depend))return e;const l=t.value.reduce(((e,t)=>{if(!wt(t.depend))return e;if(t.setting){if("-1"==t.value||!t.value&&t.disableiffalse)return e;if("select"==t.type){const n=((e,t)=>{if(e){const n=e.findIndex((e=>e.value==t));if(n>-1)return e[n].help}return null})(t.options,t.value),i=At(t.options,t.value);return e+`\n// ${t.label}\n`+(n?"// "+n+"\n":i?"// "+i+"\n":"")+(t.usedescforoptions?"// "+t.description+"\n":"")+(t.header?t.header:"")+(t.define?`#define ${t.define} ${t.value}\n`:`#define ${t.value}\n`)}return"boolean"==t.type?e+`\n// ${t.label}\n`+`// ${t.description}\n`+(t.header?t.header:"")+(t.define?`#define ${t.define} ${t.disableiffalse?"":t.value}\n`:""):"text"==t.type||"number"==t.type?e+`\n// ${t.label}\n`+`// ${t.description}\n`+(t.header?t.header:"")+`#define ${t.define} ${t.needquote?'"':""}${t.value}${t.needquote?'"':""}\n`:(console.log("unknown type",t.type," for ",t),e+`\n// Unknow parameter: ${t.label}\n`+`// ${t.description}\n`)}return t.hide?e:e+`// ${t.label}=${At(t.options,t.value)}\n`}),"");return 0==l.length?e:e+(n=t.label,i=t.description,`\n/************************************\n*\n* ${n}\n*\n* ${i}\n*\n************************************/\n`)+l}var n,i;console.log("Group definition is missing for "+t.label)}),t)),""),Mt=(e,t)=>{const n=new Blob([e],{type:"application/txt"});if(window.navigator.msSaveOrOpenBlob)window.navigator.msSaveOrOpenBlob(n,t);else{const e=document.createElement("a"),i=URL.createObjectURL(n);e.href=i,e.download=t,document.body.appendChild(e),e.click(),setTimeout((function(){document.body.removeChild(e),window.URL.revokeObjectURL(i)}),0)}};let Rt=!1,kt=!1;const Lt=({previous:e,next:t})=>{const{configuration:n}=Ee();return p("div",{style:"display:flex;justify-content:space-around"},e&&p(Te,{m2:!0,icon:p(at,null),label:"Previous",onclick:()=>{document.getElementById(e)&&document.getElementById(e).click()}}),p(Te,{m2:!0,icon:p(St,null),label:ke("Download configuration.h"),onclick:()=>{Mt(yt(n.current),"configuration.h")}}),p(Te,{m2:!0,icon:gt,label:ke("Download platformio.ini"),onclick:()=>{Mt(Tt(),"platformio.ini")}}),p(Te,{m2:!0,icon:p(Ae,null),label:ke("Download WebUI"),onclick:()=>{const e=he.getValue("features","targetFW","defaultfw"),t={MARLIN:"Marlin",GRBL:"GRBL",REPETIER:"Repetier",SMOOTHIEWARE:"Smoothieware"},n=he.getValue("features","targetFW","systemtype");"UNKNOWN_FW"==e?window.open("https://github.com/luc-github/ESP3D-WEBUI/tree/3.0/dist/","_blank"):window.open(`https://github.com/luc-github/ESP3D-WEBUI/blob/3.0/dist/${n}/${t[e]}/index.html.gz?raw=true`,"_blank")}}))},Nt=[{label:"Features",icon:p(Je,{height:"24px"}),href:"/config/features",id:"featuresLink"},{label:"Network",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M5 12.55a11 11 0 0 1 14.08 0"}),p("path",{d:"M1.42 9a16 16 0 0 1 21.16 0"}),p("path",{d:"M8.53 16.11a6 6 0 0 1 6.95 0"}),p("line",{x1:"12",y1:"20",x2:"12.01",y2:"20"}))}),null),href:"/config/network",id:"networkLink"},{label:"Filesystems",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("line",{x1:"22",y1:"12",x2:"2",y2:"12"}),p("path",{d:"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"}),p("line",{x1:"6",y1:"16",x2:"6.01",y2:"16"}),p("line",{x1:"10",y1:"16",x2:"10.01",y2:"16"}))}),null),href:"/config/filesystems",id:"filesystemsLink"},{label:"Update",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),p("polyline",{points:"17 8 12 3 7 8"}),p("line",{x1:"12",y1:"3",x2:"12",y2:"15"}))}),null),href:"/config/update",id:"updateLink"},{label:"Devices",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z"}),p("circle",{cx:"12",cy:"13",r:"4"}))}),null),href:"/config/devices",id:"devicesLink"},{label:"Security",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("rect",{x:"3",y:"11",width:"18",height:"11",rx:"2",ry:"2"}),p("path",{d:"M7 11V7a5 5 0 0 1 10 0v4"}))}),null),href:"/config/security",id:"securityLink"},{label:"Others",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z"}))}),null),href:"/config/others",id:"othersLink"},{label:"Download",icon:p((e=>{const t=e.color||"currentColor",n=e.size||24;return delete e.color,delete e.size,p("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",width:n,height:n,viewBox:"0 0 24 24",fill:"none",stroke:t,"stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e),p("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),p("polyline",{points:"7 10 12 15 17 10"}),p("line",{x1:"12",y1:"15",x2:"12",y2:"3"}))}),null),href:"/config/generate",id:"generateLink"}],Ft=()=>{const{uisettings:e}=fe();return p("ul",{class:"tab tab-block"},Nt&&Nt.map((({label:e,icon:t,href:n,id:i})=>p("li",{class:"tab-item"},p(et,{id:i,className:"btn btn-link no-box feather-icon-container",activeClassName:"active",href:n,onclick:e=>{}},t,p("label",{class:"hide-low"},ke(e)))))))},Ut={FEATURES:{component:p(Et,{current:"features",next:"networkLink"}),path:"/config/features"},NETWORK:{component:p(Et,{current:"network",previous:"featuresLink",next:"filesystemsLink"}),path:"/config/network"},FILESYSTEMS:{component:p(Et,{current:"filesystems",previous:"networkLink",next:"updateLink"}),path:"/config/filesystems"},UPDATE:{component:p(Et,{current:"update",previous:"filesystemsLink",next:"devicesLink"}),path:"/config/update"},DEVICES:{component:p(Et,{current:"devices",previous:"updateLink",next:"securityLink"}),path:"/config/devices"},SECURITY:{component:p(Et,{current:"security",previous:"devicesLink",next:"othersLink"}),path:"/config/security"},OTHERS:{component:p(Et,{current:"others",previous:"securityLink",next:"generateLink"}),path:"/config/others"},GENERATE:{component:p((({previous:e})=>{const{configuration:t}=Ee(),[n,i]=j(Rt),[l,o]=j(kt);return p("div",{id:"generate",class:"m-2"},p(Lt,{previous:e}),p("div",{class:"accordion"},p("input",{type:"checkbox",id:"accordion-1",name:"accordion-checkbox",hidden:!0}),p("label",{class:"accordion-header",for:"accordion-1",style:"cursor:pointer",onclick:()=>{Rt=!Rt,i(Rt)}},!n&&p("i",{class:"icon icon-arrow-right mr-1"}),n&&p("i",{class:"icon icon-arrow-down mr-1"}),"Configuration.h"),n&&p("div",{class:"accordion-body"},p("code",null,p("pre",null,yt(t.current))))),p("div",{class:"accordion"},p("input",{type:"checkbox",id:"accordion-2",name:"accordion-checkbox",hidden:!0}),p("label",{class:"accordion-header",for:"accordion-2",style:"cursor:pointer",onclick:()=>{kt=!kt,o(kt)}},!l&&p("i",{class:"icon icon-arrow-right mr-1"}),l&&p("i",{class:"icon icon-arrow-down mr-1"}),"platformio.ini"),l&&p("div",{class:"accordion-body"},p("code",null,p("pre",null,Tt()))),p("div",{class:"m-2"})),n&&p(Lt,{previous:e}),p("br",null))}),{previous:"othersLink"}),path:"/config/generate"}};var xt=()=>p("div",{id:"settings",class:"container"},p(Ft,null),p(Qe,{routesList:Ut,localDefault:"/config/features"}));const Ht=()=>p("div",{class:"footer-container"}),Bt={ABOUT:{component:p(st,null),path:"/about"},Config:{component:p(xt,null),path:"/config"}},Gt=()=>{const{uisettings:e,modals:t}=fe(),[n,i]=j({...Bt});return p("div",{id:"main",class:"main-page-container"},p(Qe,{routesList:n}),p(Ht,null))},zt=()=>p(f,null,p(it,null),p(Gt,null)),Vt=()=>{const{toasts:e,modals:t}=fe();return q((()=>{}),[]),p(zt,null)};k(p((()=>p("div",{id:"app"},p(Se,null,p(se,null,p(ve,null,p(Xe,null),p(Le,null),p(Vt,null)))))),null),document.body)}()</script></body></html> |