diff --git a/data_svelte/build/bundle.css b/data_svelte/build/bundle.css index 4ff0a630..63507544 100644 --- a/data_svelte/build/bundle.css +++ b/data_svelte/build/bundle.css @@ -11,7 +11,7 @@ Consolas, 'Liberation Mono', Menlo, - monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.grd-1col1{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center}.grd-2col1{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}.grd-2col2{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));justify-items:center;gap:1rem}.grd-3col1{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-3col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-3col1{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-3col1{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-3col1{grid-template-columns:repeat(3, minmax(0, 1fr))}}.crd-itm-psn{margin-bottom:0.75rem;display:flex;height:2rem;align-items:center}.wgt-dscr-stl{padding-right:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.wgt-adt-stl{text-align:center;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.tbl{margin-top:0.5rem;margin-bottom:0.5rem;width:100%;table-layout:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tbl-hd{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem;text-align:center;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.tbl-bdy-lg{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem;text-align:center}.tbl-bdy-sm{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem}.ipt-lg{margin-top:0.5rem;height:1rem;align-content:center;border-width:2px;--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.ipt-lg:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.ipt-lg{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-lg:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-lg{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-lg:focus{outline:2px solid transparent;outline-offset:2px}@media(min-width: 640px){.ipt-lg{height:1.75rem}}@media(min-width: 768px){.ipt-lg{height:1.75rem}}@media(min-width: 1024px){.ipt-lg{height:1.75rem}}@media(min-width: 1280px){.ipt-lg{height:1.75rem}}@media(min-width: 1536px){.ipt-lg{height:1.75rem}}.ipt-sm{height:0.75rem;align-content:center;border-radius:0.125rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.ipt-sm:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.ipt-sm{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-sm:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-sm{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-sm:focus{outline:2px solid transparent;outline-offset:2px}@media(min-width: 640px){.ipt-sm{height:1.5rem}}@media(min-width: 768px){.ipt-sm{height:1.5rem}}@media(min-width: 1024px){.ipt-sm{height:1.5rem}}@media(min-width: 1280px){.ipt-sm{height:1.5rem}}@media(min-width: 1536px){.ipt-sm{height:1.5rem}}.ipt-rnd{height:2rem;width:100%;align-content:center;border-radius:0.25rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-rnd:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-rnd{padding-left:0.5rem;padding-right:0.5rem;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-rnd:focus{outline:2px solid transparent;outline-offset:2px}.ipt-big{height:2rem;width:100%;align-content:center;border-radius:0.25rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.ipt-big:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.ipt-big{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-big:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-big{padding-left:0.5rem;padding-right:0.5rem;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-big:focus{outline:2px solid transparent;outline-offset:2px}.txt-ita{display:inline-block;text-align:right;vertical-align:top;font-style:italic;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.txt-pad{padding-left:0.5rem;padding-right:0.5rem;padding-top:0px;padding-bottom:0px}@media(min-width: 640px){.txt-pad{padding-top:0px;padding-bottom:0px}}@media(min-width: 768px){.txt-pad{padding-top:0px;padding-bottom:0px}}@media(min-width: 1024px){.txt-pad{padding-top:0.25rem;padding-bottom:0.25rem}}@media(min-width: 1280px){.txt-pad{padding-top:0.5rem;padding-bottom:0.5rem}}@media(min-width: 1536px){.txt-pad{padding-top:0.5rem;padding-bottom:0.5rem}}.txt-sz{font-size:.5rem}@media(min-width: 640px){.txt-sz{font-size:1rem}}@media(min-width: 768px){.txt-sz{font-size:1rem}}@media(min-width: 1024px){.txt-sz{font-size:1rem}}@media(min-width: 1280px){.txt-sz{font-size:1rem}}@media(min-width: 1536px){.txt-sz{font-size:1rem}}.btn-lg{margin-top:0px;display:flex;height:1.5rem;width:100%;align-content:center;justify-content:center;overflow-wrap:break-word;border-radius:0.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.btn-lg:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.btn-lg{font-size:.875rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}@media(min-width: 640px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 768px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 1024px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 1280px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 1536px){.btn-lg{height:2rem;font-size:1rem}}.slct-lg{margin-bottom:0px;display:flex;height:1.5rem;width:100%;align-content:center;justify-content:center;overflow-wrap:break-word;border-radius:0.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.slct-lg:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.slct-lg{font-size:.875rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}@media(min-width: 640px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 768px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 1024px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 1280px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 1536px){.slct-lg{height:2rem;font-size:1rem}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-1{top:0.25rem}.left-1{left:0.25rem}.z-10{z-index:10}.z-50{z-index:50}.m-auto{margin:auto}.mt-0{margin-top:0px}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mb-0{margin-bottom:0px}.mb-2{margin-bottom:0.5rem}.mb-3{margin-bottom:0.75rem}.ml-0{margin-left:0px}.ml-36{margin-left:9rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:0.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-1\/12{width:8.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.flex-1{flex:1 1 0%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgba(96, 165, 250, var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107, 114, 128, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254, 242, 242, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220, 38, 38, var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255, 251, 235, var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239, 246, 255, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgba(185, 28, 28, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-cover{background-size:cover}.p-0{padding:0px}.p-2{padding:0.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0px;padding-bottom:0px}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pt-0{padding-top:0px}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.pl-4{padding-left:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17, 24, 39, var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245, 158, 11, var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgba(52, 211, 153, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(59, 130, 246, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239, 68, 68, var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99, 102, 241, var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}#menu__toggle{position:relative;opacity:0}#menu__toggle:checked~.menu__btn>span{transform:rotate(45deg)}#menu__toggle:checked~.menu__btn>span::before{top:0;transform:rotate(0)}#menu__toggle:checked~.menu__btn>span::after{top:0;transform:rotate(90deg)}#menu__toggle:checked~.menu__box{visibility:visible;left:0}#menu__toggle:checked~.menu__main{margin-left:150px;transition-duration:0.25s}.menu__btn{display:flex;align-items:center;position:fixed;z-index:1;top:10px;left:20px;width:20px;height:20px;cursor:pointer}.menu__btn>span,.menu__btn>span::before,.menu__btn>span::after{display:block;position:absolute;width:100%;height:2px;background-color:#616161;transition-duration:0.25s}.menu__btn>span::before{content:"";top:-8px}.menu__btn>span::after{content:"";top:8px}.menu__box{display:block;position:fixed;visibility:hidden;top:0;left:-100%;width:150px;height:100%;margin:0;padding:80px 0;list-style:none;background-color:#eceff1;box-shadow:1px 0px 6px rgba(0, 0, 0, 0.2);transition-duration:0.25s}.menu__item{display:block;padding:12px 24px;color:rgba(51, 51, 51, 0.788);font-family:"Roboto", sans-serif;font-size:15px;font-weight:600;text-decoration:none;transition-duration:0.25s}.menu__item:hover{background-color:#cfd8dc}.upper__bar{background-color:rgba(51, 51, 51, 0.144);height:70px;position:fixed;z-index:-1;top:0px;left:0;width:100%;margin:0;padding:0;box-shadow:1px 0px 3px rgba(0, 0, 0, 0.2)}input[type="date"]::-webkit-calendar-picker-indicator{margin-left:5px;margin-right:-8px}input[type="time"]::-webkit-calendar-picker-indicator{margin-left:5px;margin-right:-8px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{margin-left:7px;margin-right:-6px;width:30px;height:30px;opacity:1}input:checked~.dot{transform:translateX(100%)}@media(min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0px}.sm\:ml-3{margin-left:0.75rem}.sm\:ml-4{margin-left:1rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:p-0{padding:0px}.sm\:p-2{padding:0.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0px;padding-bottom:0px}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}}@media(min-width: 768px){.md\:h-6{height:1.5rem}.md\:h-7{height:1.75rem}.md\:h-8{height:2rem}.md\:p-2{padding:0.5rem}.md\:py-0{padding-top:0px;padding-bottom:0px}.md\:text-base{font-size:1rem}}@media(min-width: 1024px){.lg\:h-6{height:1.5rem}.lg\:h-7{height:1.75rem}.lg\:h-8{height:2rem}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}.lg\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.lg\:text-base{font-size:1rem}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.xl\:h-6{height:1.5rem}.xl\:h-7{height:1.75rem}.xl\:h-8{height:2rem}.xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:text-base{font-size:1rem}}@media(min-width: 1536px){.\32xl\:h-6{height:1.5rem}.\32xl\:h-7{height:1.75rem}.\32xl\:h-8{height:2rem}.\32xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-4{padding-left:1rem;padding-right:1rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}.\32xl\:text-base{font-size:1rem}}*,::before,::after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui, + monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.grd-1col1{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center}.grd-2col1{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-2col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}.grd-2col2{display:grid;grid-template-columns:repeat(2, minmax(0, 1fr));justify-items:center;gap:1rem}.grd-3col1{display:grid;grid-template-columns:repeat(1, minmax(0, 1fr));justify-items:center;gap:1rem}@media(min-width: 640px){.grd-3col1{grid-template-columns:repeat(2, minmax(0, 1fr))}}@media(min-width: 1024px){.grd-3col1{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1280px){.grd-3col1{grid-template-columns:repeat(3, minmax(0, 1fr))}}@media(min-width: 1536px){.grd-3col1{grid-template-columns:repeat(3, minmax(0, 1fr))}}.crd-itm-psn{margin-bottom:0.5rem;display:flex;height:2rem;align-items:center}.wgt-dscr-stl{padding-right:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.wgt-adt-stl{text-align:center;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.tbl{margin-top:0.5rem;margin-bottom:0.5rem;width:100%;table-layout:fixed;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.tbl-hd{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem;text-align:center;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.tbl-bdy-lg{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem;text-align:center}.tbl-bdy-sm{overflow-wrap:break-word;padding-left:0.25rem;padding-right:0.25rem}.ipt-lg{margin-top:0.5rem;height:1rem;align-content:center;border-width:2px;--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.ipt-lg:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.ipt-lg{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-lg:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-lg{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-lg:focus{outline:2px solid transparent;outline-offset:2px}@media(min-width: 640px){.ipt-lg{height:1.75rem}}@media(min-width: 768px){.ipt-lg{height:1.75rem}}@media(min-width: 1024px){.ipt-lg{height:1.75rem}}@media(min-width: 1280px){.ipt-lg{height:1.75rem}}@media(min-width: 1536px){.ipt-lg{height:1.75rem}}.ipt-sm{height:0.75rem;align-content:center;border-radius:0.125rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.ipt-sm:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.ipt-sm{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-sm:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-sm{text-align:center;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-sm:focus{outline:2px solid transparent;outline-offset:2px}@media(min-width: 640px){.ipt-sm{height:1.5rem}}@media(min-width: 768px){.ipt-sm{height:1.5rem}}@media(min-width: 1024px){.ipt-sm{height:1.5rem}}@media(min-width: 1280px){.ipt-sm{height:1.5rem}}@media(min-width: 1536px){.ipt-sm{height:1.5rem}}.ipt-rnd{height:2rem;width:100%;align-content:center;border-radius:0.25rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-rnd:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-rnd{padding-left:0.5rem;padding-right:0.5rem;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-rnd:focus{outline:2px solid transparent;outline-offset:2px}.ipt-big{height:2rem;width:100%;align-content:center;border-radius:0.25rem;border-width:2px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.ipt-big:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.ipt-big{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.ipt-big:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.ipt-big{padding-left:0.5rem;padding-right:0.5rem;line-height:1.25;--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.ipt-big:focus{outline:2px solid transparent;outline-offset:2px}.txt-ita{display:inline-block;text-align:right;vertical-align:top;font-style:italic;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.txt-pad{padding-left:0.5rem;padding-right:0.5rem;padding-top:0px;padding-bottom:0px}@media(min-width: 640px){.txt-pad{padding-top:0px;padding-bottom:0px}}@media(min-width: 768px){.txt-pad{padding-top:0px;padding-bottom:0px}}@media(min-width: 1024px){.txt-pad{padding-top:0.25rem;padding-bottom:0.25rem}}@media(min-width: 1280px){.txt-pad{padding-top:0.5rem;padding-bottom:0.5rem}}@media(min-width: 1536px){.txt-pad{padding-top:0.5rem;padding-bottom:0.5rem}}.txt-sz{font-size:.5rem}@media(min-width: 640px){.txt-sz{font-size:1rem}}@media(min-width: 768px){.txt-sz{font-size:1rem}}@media(min-width: 1024px){.txt-sz{font-size:1rem}}@media(min-width: 1280px){.txt-sz{font-size:1rem}}@media(min-width: 1536px){.txt-sz{font-size:1rem}}.btn-lg{margin-top:0px;display:flex;height:1.5rem;width:100%;align-content:center;justify-content:center;overflow-wrap:break-word;border-radius:0.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.btn-lg:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.btn-lg{font-size:.875rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}@media(min-width: 640px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 768px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 1024px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 1280px){.btn-lg{height:2rem;font-size:1rem}}@media(min-width: 1536px){.btn-lg{height:2rem;font-size:1rem}}.slct-lg{margin-bottom:0px;display:flex;height:1.5rem;width:100%;align-content:center;justify-content:center;overflow-wrap:break-word;border-radius:0.25rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.slct-lg:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.slct-lg{font-size:.875rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}@media(min-width: 640px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 768px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 1024px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 1280px){.slct-lg{height:2rem;font-size:1rem}}@media(min-width: 1536px){.slct-lg{height:2rem;font-size:1rem}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-1{top:0.25rem}.left-1{left:0.25rem}.z-10{z-index:10}.z-50{z-index:50}.m-auto{margin:auto}.mt-0{margin-top:0px}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mb-0{margin-bottom:0px}.mb-2{margin-bottom:0.5rem}.ml-0{margin-left:0px}.ml-36{margin-left:9rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:0.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-1\/12{width:8.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.flex-1{flex:1 1 0%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgba(96, 165, 250, var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107, 114, 128, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254, 242, 242, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220, 38, 38, var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255, 251, 235, var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239, 246, 255, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgba(185, 28, 28, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-cover{background-size:cover}.p-0{padding:0px}.p-2{padding:0.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0px;padding-bottom:0px}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pt-0{padding-top:0px}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.pl-4{padding-left:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17, 24, 39, var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245, 158, 11, var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgba(52, 211, 153, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(59, 130, 246, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239, 68, 68, var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99, 102, 241, var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}#menu__toggle{position:relative;opacity:0}#menu__toggle:checked~.menu__btn>span{transform:rotate(45deg)}#menu__toggle:checked~.menu__btn>span::before{top:0;transform:rotate(0)}#menu__toggle:checked~.menu__btn>span::after{top:0;transform:rotate(90deg)}#menu__toggle:checked~.menu__box{visibility:visible;left:0}#menu__toggle:checked~.menu__main{margin-left:150px;transition-duration:0.25s}.menu__btn{display:flex;align-items:center;position:fixed;z-index:1;top:10px;left:20px;width:20px;height:20px;cursor:pointer}.menu__btn>span,.menu__btn>span::before,.menu__btn>span::after{display:block;position:absolute;width:100%;height:2px;background-color:#616161;transition-duration:0.25s}.menu__btn>span::before{content:"";top:-8px}.menu__btn>span::after{content:"";top:8px}.menu__box{display:block;position:fixed;visibility:hidden;top:0;left:-100%;width:150px;height:100%;margin:0;padding:80px 0;list-style:none;background-color:#eceff1;box-shadow:1px 0px 6px rgba(0, 0, 0, 0.2);transition-duration:0.25s}.menu__item{display:block;padding:12px 24px;color:rgba(51, 51, 51, 0.788);font-family:"Roboto", sans-serif;font-size:15px;font-weight:600;text-decoration:none;transition-duration:0.25s}.menu__item:hover{background-color:#cfd8dc}.upper__bar{background-color:rgba(51, 51, 51, 0.144);height:70px;position:fixed;z-index:-1;top:0px;left:0;width:100%;margin:0;padding:0;box-shadow:1px 0px 3px rgba(0, 0, 0, 0.2)}input[type="date"]::-webkit-calendar-picker-indicator{margin-left:5px;margin-right:-8px}input[type="time"]::-webkit-calendar-picker-indicator{margin-left:5px;margin-right:-8px}input[type="number"]::-webkit-outer-spin-button,input[type="number"]::-webkit-inner-spin-button{margin-left:7px;margin-right:-6px;width:30px;height:30px;opacity:1}input:checked~.dot{transform:translateX(100%)}@media(min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0px}.sm\:ml-3{margin-left:0.75rem}.sm\:ml-4{margin-left:1rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:p-0{padding:0px}.sm\:p-2{padding:0.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0px;padding-bottom:0px}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}}@media(min-width: 768px){.md\:h-6{height:1.5rem}.md\:h-7{height:1.75rem}.md\:h-8{height:2rem}.md\:p-2{padding:0.5rem}.md\:py-0{padding-top:0px;padding-bottom:0px}.md\:text-base{font-size:1rem}}@media(min-width: 1024px){.lg\:h-6{height:1.5rem}.lg\:h-7{height:1.75rem}.lg\:h-8{height:2rem}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}.lg\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.lg\:text-base{font-size:1rem}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.xl\:h-6{height:1.5rem}.xl\:h-7{height:1.75rem}.xl\:h-8{height:2rem}.xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:text-base{font-size:1rem}}@media(min-width: 1536px){.\32xl\:h-6{height:1.5rem}.\32xl\:h-7{height:1.75rem}.\32xl\:h-8{height:2rem}.\32xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-4{padding-left:1rem;padding-right:1rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}.\32xl\:text-base{font-size:1rem}}*,::before,::after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui, -apple-system, /* Firefox supports this but not yet `system-ui` */ 'Segoe UI', Roboto, @@ -24,7 +24,7 @@ Consolas, 'Liberation Mono', Menlo, - monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.alm{margin-bottom:0.5rem;width:100%;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));padding:0.5rem;--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}@media(min-width: 640px){.alm{padding:0.5rem}}@media(min-width: 768px){.alm{padding:0.5rem}}@media(min-width: 1024px){.alm{padding:0.5rem;--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.alm{padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem}}@media(min-width: 1536px){.alm{padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem}}.alm-hdr{padding-bottom:0px;text-align:center;font-size:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-1{top:0.25rem}.left-1{left:0.25rem}.z-10{z-index:10}.z-50{z-index:50}.m-auto{margin:auto}.mt-0{margin-top:0px}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mb-0{margin-bottom:0px}.mb-2{margin-bottom:0.5rem}.mb-3{margin-bottom:0.75rem}.ml-0{margin-left:0px}.ml-36{margin-left:9rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:0.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-1\/12{width:8.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.flex-1{flex:1 1 0%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgba(96, 165, 250, var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107, 114, 128, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254, 242, 242, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220, 38, 38, var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255, 251, 235, var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239, 246, 255, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgba(185, 28, 28, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-cover{background-size:cover}.p-0{padding:0px}.p-2{padding:0.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0px;padding-bottom:0px}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pt-0{padding-top:0px}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.pl-4{padding-left:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17, 24, 39, var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245, 158, 11, var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgba(52, 211, 153, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(59, 130, 246, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239, 68, 68, var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99, 102, 241, var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}@media(min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0px}.sm\:ml-3{margin-left:0.75rem}.sm\:ml-4{margin-left:1rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:p-0{padding:0px}.sm\:p-2{padding:0.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0px;padding-bottom:0px}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}}@media(min-width: 768px){.md\:h-6{height:1.5rem}.md\:h-7{height:1.75rem}.md\:h-8{height:2rem}.md\:p-2{padding:0.5rem}.md\:py-0{padding-top:0px;padding-bottom:0px}.md\:text-base{font-size:1rem}}@media(min-width: 1024px){.lg\:h-6{height:1.5rem}.lg\:h-7{height:1.75rem}.lg\:h-8{height:2rem}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}.lg\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.lg\:text-base{font-size:1rem}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.xl\:h-6{height:1.5rem}.xl\:h-7{height:1.75rem}.xl\:h-8{height:2rem}.xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:text-base{font-size:1rem}}@media(min-width: 1536px){.\32xl\:h-6{height:1.5rem}.\32xl\:h-7{height:1.75rem}.\32xl\:h-8{height:2rem}.\32xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-4{padding-left:1rem;padding-right:1rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}.\32xl\:text-base{font-size:1rem}}*,::before,::after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui, + monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.alm{margin-bottom:0.5rem;width:100%;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));padding:0.5rem;--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}@media(min-width: 640px){.alm{padding:0.5rem}}@media(min-width: 768px){.alm{padding:0.5rem}}@media(min-width: 1024px){.alm{padding:0.5rem;--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.alm{padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem}}@media(min-width: 1536px){.alm{padding-left:1rem;padding-right:1rem;padding-top:0.5rem;padding-bottom:0.5rem}}.alm-hdr{padding-bottom:0px;text-align:center;font-size:1rem;font-weight:700;--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-1{top:0.25rem}.left-1{left:0.25rem}.z-10{z-index:10}.z-50{z-index:50}.m-auto{margin:auto}.mt-0{margin-top:0px}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mb-0{margin-bottom:0px}.mb-2{margin-bottom:0.5rem}.ml-0{margin-left:0px}.ml-36{margin-left:9rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:0.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-1\/12{width:8.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.flex-1{flex:1 1 0%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgba(96, 165, 250, var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107, 114, 128, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254, 242, 242, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220, 38, 38, var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255, 251, 235, var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239, 246, 255, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgba(185, 28, 28, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-cover{background-size:cover}.p-0{padding:0px}.p-2{padding:0.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0px;padding-bottom:0px}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pt-0{padding-top:0px}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.pl-4{padding-left:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17, 24, 39, var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245, 158, 11, var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgba(52, 211, 153, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(59, 130, 246, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239, 68, 68, var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99, 102, 241, var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}@media(min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0px}.sm\:ml-3{margin-left:0.75rem}.sm\:ml-4{margin-left:1rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:p-0{padding:0px}.sm\:p-2{padding:0.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0px;padding-bottom:0px}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}}@media(min-width: 768px){.md\:h-6{height:1.5rem}.md\:h-7{height:1.75rem}.md\:h-8{height:2rem}.md\:p-2{padding:0.5rem}.md\:py-0{padding-top:0px;padding-bottom:0px}.md\:text-base{font-size:1rem}}@media(min-width: 1024px){.lg\:h-6{height:1.5rem}.lg\:h-7{height:1.75rem}.lg\:h-8{height:2rem}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}.lg\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.lg\:text-base{font-size:1rem}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.xl\:h-6{height:1.5rem}.xl\:h-7{height:1.75rem}.xl\:h-8{height:2rem}.xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:text-base{font-size:1rem}}@media(min-width: 1536px){.\32xl\:h-6{height:1.5rem}.\32xl\:h-7{height:1.75rem}.\32xl\:h-8{height:2rem}.\32xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-4{padding-left:1rem;padding-right:1rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}.\32xl\:text-base{font-size:1rem}}*,::before,::after{box-sizing:border-box}html{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui, -apple-system, /* Firefox supports this but not yet `system-ui` */ 'Segoe UI', Roboto, @@ -37,4 +37,4 @@ Consolas, 'Liberation Mono', Menlo, - monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.crd{margin-bottom:0.5rem;width:100%;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));padding:0.5rem;--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}@media(min-width: 640px){.crd{padding:0.5rem}}@media(min-width: 768px){.crd{padding:0.5rem}}@media(min-width: 1024px){.crd{padding:0.5rem;--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.crd{padding-left:1rem;padding-right:1rem;padding-top:1rem;padding-bottom:1rem}}@media(min-width: 1536px){.crd{padding-left:1rem;padding-right:1rem;padding-top:1rem;padding-bottom:1rem}}.crd-hdr{padding-bottom:1rem;text-align:center;font-size:1.125rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-1{top:0.25rem}.left-1{left:0.25rem}.z-10{z-index:10}.z-50{z-index:50}.m-auto{margin:auto}.mt-0{margin-top:0px}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mb-0{margin-bottom:0px}.mb-2{margin-bottom:0.5rem}.mb-3{margin-bottom:0.75rem}.ml-0{margin-left:0px}.ml-36{margin-left:9rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:0.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-1\/12{width:8.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.flex-1{flex:1 1 0%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgba(96, 165, 250, var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107, 114, 128, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254, 242, 242, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220, 38, 38, var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255, 251, 235, var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239, 246, 255, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgba(185, 28, 28, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-cover{background-size:cover}.p-0{padding:0px}.p-2{padding:0.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0px;padding-bottom:0px}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pt-0{padding-top:0px}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.pl-4{padding-left:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17, 24, 39, var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245, 158, 11, var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgba(52, 211, 153, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(59, 130, 246, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239, 68, 68, var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99, 102, 241, var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}@media(min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0px}.sm\:ml-3{margin-left:0.75rem}.sm\:ml-4{margin-left:1rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:p-0{padding:0px}.sm\:p-2{padding:0.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0px;padding-bottom:0px}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}}@media(min-width: 768px){.md\:h-6{height:1.5rem}.md\:h-7{height:1.75rem}.md\:h-8{height:2rem}.md\:p-2{padding:0.5rem}.md\:py-0{padding-top:0px;padding-bottom:0px}.md\:text-base{font-size:1rem}}@media(min-width: 1024px){.lg\:h-6{height:1.5rem}.lg\:h-7{height:1.75rem}.lg\:h-8{height:2rem}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}.lg\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.lg\:text-base{font-size:1rem}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.xl\:h-6{height:1.5rem}.xl\:h-7{height:1.75rem}.xl\:h-8{height:2rem}.xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:text-base{font-size:1rem}}@media(min-width: 1536px){.\32xl\:h-6{height:1.5rem}.\32xl\:h-7{height:1.75rem}.\32xl\:h-8{height:2rem}.\32xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-4{padding-left:1rem;padding-right:1rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}.\32xl\:text-base{font-size:1rem}} \ No newline at end of file + monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}button,[type='button']{-webkit-appearance:button}::-moz-focus-inner{border-style:none;padding:0}legend{padding:0}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}button{background-color:transparent;background-image:none}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::before,::after{box-sizing:border-box;border-width:0;border-style:solid;border-color:currentColor}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input:-ms-input-placeholder,textarea:-ms-input-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}pre,code,kbd,samp{font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,::before,::after{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.crd{margin-bottom:0.5rem;width:100%;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity));padding:0.5rem;--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}@media(min-width: 640px){.crd{padding:0.5rem}}@media(min-width: 768px){.crd{padding:0.5rem}}@media(min-width: 1024px){.crd{padding:0.5rem;--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.crd{padding-left:1rem;padding-right:1rem;padding-top:1rem;padding-bottom:1rem}}@media(min-width: 1536px){.crd{padding-left:1rem;padding-right:1rem;padding-top:1rem;padding-bottom:1rem}}.crd-hdr{padding-bottom:1rem;text-align:center;font-size:1.125rem;font-weight:700;--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.inset-0{top:0px;right:0px;bottom:0px;left:0px}.top-1{top:0.25rem}.left-1{left:0.25rem}.z-10{z-index:10}.z-50{z-index:50}.m-auto{margin:auto}.mt-0{margin-top:0px}.mt-2{margin-top:0.5rem}.mt-3{margin-top:0.75rem}.mb-0{margin-bottom:0px}.mb-2{margin-bottom:0.5rem}.ml-0{margin-left:0px}.ml-36{margin-left:9rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.h-3{height:0.75rem}.h-4{height:1rem}.h-6{height:1.5rem}.h-8{height:2rem}.h-10{height:2.5rem}.h-20{height:5rem}.h-auto{height:auto}.h-screen{height:100vh}.min-h-screen{min-height:100vh}.w-4{width:1rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-10{width:2.5rem}.w-20{width:5rem}.w-1\/3{width:33.333333%}.w-2\/3{width:66.666667%}.w-1\/4{width:25%}.w-3\/4{width:75%}.w-3\/6{width:50%}.w-4\/6{width:66.666667%}.w-1\/12{width:8.333333%}.w-11\/12{width:91.666667%}.w-full{width:100%}.flex-1{flex:1 1 0%}.table-fixed{table-layout:fixed}.transform{--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translateX(var(--tw-translate-x)) translateY(var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{75%,100%{transform:scale(2);opacity:0}}@keyframes ping{75%,100%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(0.8,0,1,1);animation-timing-function:cubic-bezier(0.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,0.2,1);animation-timing-function:cubic-bezier(0,0,0.2,1)}}.animate-spin{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1, minmax(0, 1fr))}.grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.flex-col{flex-direction:column}.content-center{align-content:center}.items-end{align-items:flex-end}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.gap-4{gap:1rem}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.break-words{overflow-wrap:break-word}.rounded{border-radius:0.25rem}.rounded-md{border-radius:0.375rem}.rounded-lg{border-radius:0.5rem}.rounded-full{border-radius:9999px}.border-2{border-width:2px}.border-4{border-width:4px}.border{border-width:1px}.border-solid{border-style:solid}.border-transparent{border-color:transparent}.border-gray-100{--tw-border-opacity:1;border-color:rgba(243, 244, 246, var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity:1;border-color:rgba(229, 231, 235, var(--tw-border-opacity))}.border-gray-300{--tw-border-opacity:1;border-color:rgba(209, 213, 219, var(--tw-border-opacity))}.border-red-500{--tw-border-opacity:1;border-color:rgba(239, 68, 68, var(--tw-border-opacity))}.border-blue-400{--tw-border-opacity:1;border-color:rgba(96, 165, 250, var(--tw-border-opacity))}.border-indigo-500{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.focus\:border-indigo-500:focus{--tw-border-opacity:1;border-color:rgba(99, 102, 241, var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity:1;background-color:rgba(243, 244, 246, var(--tw-bg-opacity))}.bg-gray-200{--tw-bg-opacity:1;background-color:rgba(229, 231, 235, var(--tw-bg-opacity))}.bg-gray-500{--tw-bg-opacity:1;background-color:rgba(107, 114, 128, var(--tw-bg-opacity))}.bg-gray-600{--tw-bg-opacity:1;background-color:rgba(75, 85, 99, var(--tw-bg-opacity))}.bg-red-50{--tw-bg-opacity:1;background-color:rgba(254, 242, 242, var(--tw-bg-opacity))}.bg-red-400{--tw-bg-opacity:1;background-color:rgba(248, 113, 113, var(--tw-bg-opacity))}.bg-red-600{--tw-bg-opacity:1;background-color:rgba(220, 38, 38, var(--tw-bg-opacity))}.bg-yellow-50{--tw-bg-opacity:1;background-color:rgba(255, 251, 235, var(--tw-bg-opacity))}.bg-green-50{--tw-bg-opacity:1;background-color:rgba(236, 253, 245, var(--tw-bg-opacity))}.bg-blue-50{--tw-bg-opacity:1;background-color:rgba(239, 246, 255, var(--tw-bg-opacity))}.bg-blue-100{--tw-bg-opacity:1;background-color:rgba(219, 234, 254, var(--tw-bg-opacity))}.bg-indigo-500{--tw-bg-opacity:1;background-color:rgba(99, 102, 241, var(--tw-bg-opacity))}.hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgba(249, 250, 251, var(--tw-bg-opacity))}.hover\:bg-red-700:hover{--tw-bg-opacity:1;background-color:rgba(185, 28, 28, var(--tw-bg-opacity))}.hover\:bg-blue-200:hover{--tw-bg-opacity:1;background-color:rgba(191, 219, 254, var(--tw-bg-opacity))}.hover\:bg-indigo-700:hover{--tw-bg-opacity:1;background-color:rgba(67, 56, 202, var(--tw-bg-opacity))}.focus\:bg-white:focus{--tw-bg-opacity:1;background-color:rgba(255, 255, 255, var(--tw-bg-opacity))}.bg-opacity-75{--tw-bg-opacity:0.75}.bg-cover{background-size:cover}.p-0{padding:0px}.p-2{padding:0.5rem}.px-1{padding-left:0.25rem;padding-right:0.25rem}.px-2{padding-left:0.5rem;padding-right:0.5rem}.px-4{padding-left:1rem;padding-right:1rem}.py-0{padding-top:0px;padding-bottom:0px}.py-1{padding-top:0.25rem;padding-bottom:0.25rem}.py-2{padding-top:0.5rem;padding-bottom:0.5rem}.py-3{padding-top:0.75rem;padding-bottom:0.75rem}.pt-0{padding-top:0px}.pt-4{padding-top:1rem}.pt-5{padding-top:1.25rem}.pr-4{padding-right:1rem}.pb-4{padding-bottom:1rem}.pb-20{padding-bottom:5rem}.pl-4{padding-left:1rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-baseline{vertical-align:baseline}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.align-bottom{vertical-align:bottom}.text-xxs{font-size:.5rem}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-base{font-size:1rem}.text-lg{font-size:1.125rem}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.italic{font-style:italic}.leading-6{line-height:1.5rem}.leading-tight{line-height:1.25}.text-black{--tw-text-opacity:1;color:rgba(0, 0, 0, var(--tw-text-opacity))}.text-white{--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity:1;color:rgba(107, 114, 128, var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity:1;color:rgba(55, 65, 81, var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity:1;color:rgba(17, 24, 39, var(--tw-text-opacity))}.text-red-400{--tw-text-opacity:1;color:rgba(248, 113, 113, var(--tw-text-opacity))}.text-red-500{--tw-text-opacity:1;color:rgba(239, 68, 68, var(--tw-text-opacity))}.text-yellow-500{--tw-text-opacity:1;color:rgba(245, 158, 11, var(--tw-text-opacity))}.text-green-400{--tw-text-opacity:1;color:rgba(52, 211, 153, var(--tw-text-opacity))}.text-green-500{--tw-text-opacity:1;color:rgba(16, 185, 129, var(--tw-text-opacity))}.text-blue-500{--tw-text-opacity:1;color:rgba(59, 130, 246, var(--tw-text-opacity))}*,::before,::after{--tw-shadow:0 0 #0000}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}*,::before,::after{--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.focus\:ring-red-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(239, 68, 68, var(--tw-ring-opacity))}.focus\:ring-indigo-400:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(129, 140, 248, var(--tw-ring-opacity))}.focus\:ring-indigo-500:focus{--tw-ring-opacity:1;--tw-ring-color:rgba(99, 102, 241, var(--tw-ring-opacity))}.focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition{transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-property:background-color, border-color, color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}@media(min-width: 640px){.sm\:my-8{margin-top:2rem;margin-bottom:2rem}.sm\:mt-0{margin-top:0px}.sm\:ml-3{margin-left:0.75rem}.sm\:ml-4{margin-left:1rem}.sm\:block{display:block}.sm\:inline-block{display:inline-block}.sm\:flex{display:flex}.sm\:h-6{height:1.5rem}.sm\:h-7{height:1.75rem}.sm\:h-8{height:2rem}.sm\:h-screen{height:100vh}.sm\:w-auto{width:auto}.sm\:w-full{width:100%}.sm\:max-w-lg{max-width:32rem}.sm\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.sm\:flex-row-reverse{flex-direction:row-reverse}.sm\:items-start{align-items:flex-start}.sm\:p-0{padding:0px}.sm\:p-2{padding:0.5rem}.sm\:p-6{padding:1.5rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:py-0{padding-top:0px;padding-bottom:0px}.sm\:pb-4{padding-bottom:1rem}.sm\:text-left{text-align:left}.sm\:align-middle{vertical-align:middle}.sm\:text-sm{font-size:.875rem}.sm\:text-base{font-size:1rem}}@media(min-width: 768px){.md\:h-6{height:1.5rem}.md\:h-7{height:1.75rem}.md\:h-8{height:2rem}.md\:p-2{padding:0.5rem}.md\:py-0{padding-top:0px;padding-bottom:0px}.md\:text-base{font-size:1rem}}@media(min-width: 1024px){.lg\:h-6{height:1.5rem}.lg\:h-7{height:1.75rem}.lg\:h-8{height:2rem}.lg\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.lg\:p-2{padding:0.5rem}.lg\:py-1{padding-top:0.25rem;padding-bottom:0.25rem}.lg\:text-base{font-size:1rem}.lg\:shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}}@media(min-width: 1280px){.xl\:h-6{height:1.5rem}.xl\:h-7{height:1.75rem}.xl\:h-8{height:2rem}.xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.xl\:px-4{padding-left:1rem;padding-right:1rem}.xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.xl\:py-4{padding-top:1rem;padding-bottom:1rem}.xl\:text-base{font-size:1rem}}@media(min-width: 1536px){.\32xl\:h-6{height:1.5rem}.\32xl\:h-7{height:1.75rem}.\32xl\:h-8{height:2rem}.\32xl\:grid-cols-2{grid-template-columns:repeat(2, minmax(0, 1fr))}.\32xl\:grid-cols-3{grid-template-columns:repeat(3, minmax(0, 1fr))}.\32xl\:px-4{padding-left:1rem;padding-right:1rem}.\32xl\:py-2{padding-top:0.5rem;padding-bottom:0.5rem}.\32xl\:py-4{padding-top:1rem;padding-bottom:1rem}.\32xl\:text-base{font-size:1rem}} \ No newline at end of file diff --git a/data_svelte/build/bundle.js b/data_svelte/build/bundle.js index aef8995e..7c7a9b7c 100644 --- a/data_svelte/build/bundle.js +++ b/data_svelte/build/bundle.js @@ -1,2 +1,2 @@ -var app=function(){"use strict";function t(){}function e(t){return t()}function n(){return Object.create(null)}function s(t){t.forEach(e)}function l(t){return"function"==typeof t}function r(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function o(e,n,s){e.$$.on_destroy.push(function(e,...n){if(null==e)return t;const s=e.subscribe(...n);return s.unsubscribe?()=>s.unsubscribe():s}(n,s))}function c(t,e,n,s){if(t){const l=i(t,e,n,s);return t[0](l)}}function i(t,e,n,s){return t[1]&&s?function(t,e){for(const n in e)t[n]=e[n];return t}(n.ctx.slice(),t[1](s(e))):n.ctx}function a(t,e,n,s){if(t[2]&&s){const l=t[2](s(n));if(void 0===e.dirty)return l;if("object"==typeof l){const t=[],n=Math.max(e.dirty.length,l.length);for(let s=0;s32){const e=[],n=t.ctx.length/32;for(let t=0;tt.removeEventListener(e,n,s)}function y(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function k(t){return""===t?null:+t}function _(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function J(t,e){t.value=null==e?"":e}function j(t,e){for(let n=0;n{Y.delete(t),s&&(n&&t.d(1),s())})),t.o(e)}}function X(t,e,n){const s=t.$$.props[e];void 0!==s&&(t.$$.bound[s]=n,n(t.$$.ctx[s]))}function tt(t){t&&t.c()}function et(t,n,r,o){const{fragment:c,on_mount:i,on_destroy:a,after_update:u}=t.$$;c&&c.m(n,r),o||z((()=>{const n=i.map(e).filter(l);a?a.push(...n):s(n),t.$$.on_mount=[]})),u.forEach(z)}function nt(t,e){const n=t.$$;null!==n.fragment&&(s(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function st(e,l,r,o,c,i,a,u=[-1]){const d=S;T(e);const f=e.$$={fragment:null,ctx:null,props:i,update:t,not_equal:c,bound:n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l.context||(d?d.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:l.target||d.$$.root};a&&a(f.root);let p=!1;if(f.ctx=r?r(e,l.props||{},((t,n,...s)=>{const l=s.length?s[0]:n;return f.ctx&&c(f.ctx[t],f.ctx[t]=l)&&(!f.skip_bound&&f.bound[t]&&f.bound[t](l),p&&function(t,e){-1===t.$$.dirty[0]&&(N.push(t),D(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const rt=[];function ot(e,n=t){let s;const l=new Set;function o(t){if(r(e,t)&&(e=t,s)){const t=!rt.length;for(const t of l)t[1](),rt.push(t,e);if(t){for(let t=0;t{l.delete(i),0===l.size&&(s(),s=null)}}}}function ct(t,e=!1){return(t=t.slice(t.startsWith("/#")?2:0,t.endsWith("/*")?-2:void 0)).startsWith("/")||(t="/"+t),"/"===t&&(t=""),e&&!t.endsWith("/")&&(t+="/"),t}function it(t,e,n){if(""===n)return t;if("/"===n[0])return n;let s=t=>t.split("/").filter((t=>""!==t)),l=s(t);return"/"+(e?s(e):[]).map(((t,e)=>l[e])).join("/")+"/"+n}function at(t,e,n,s){let l=[e,"data-"+e].reduce(((e,s)=>{let l=t.getAttribute(s);return n&&t.removeAttribute(s),null===l?e:l}),!1);return!s&&""===l||(l||s||!1)}function ut(t){let e=t.split("&").map((t=>t.split("="))).reduce(((t,e)=>{let n=e[0];if(!n)return t;let s=!(e.length>1)||e[e.length-1];return"string"==typeof s&&s.includes(",")&&(s=s.split(",")),void 0===t[n]?t[n]=[s]:t[n].push(s),t}),{});return Object.entries(e).reduce(((t,e)=>(t[e[0]]=e[1].length>1?e[1]:e[1][0],t)),{})}var dt,ft,pt={HISTORY:1,HASH:2,MEMORY:3,OFF:4,run:function(t,e,n,s){return 1===t?e&&e():2===t?n&&n():s&&s()},getDeafault:function(){return window&&"srcdoc"!==window.location.pathname?1:3}},gt=function(){let t,e=pt.getDeafault(),n=n=>t&&t(mt(e));function s(t){t&&(e=t),window.onhashchange=window.onpopstate=ft=null,e!==pt.OFF&&pt.run(e,(t=>window.onpopstate=n),(t=>window.onhashchange=n))&&n()}return{mode:t=>s(t),get:t=>mt(e),go(t,s){(function(t,e,n){let s=t=>history[n?"replaceState":"pushState"]({},"",t);pt.run(t,(t=>s(e)),(t=>s(`#${e}`)),(t=>ft=e))})(e,t,s),n()},start(e){t=e,s()},stop(){t=null,s(pt.OFF)}}}();function mt(t){let e=dt,n=dt=pt.run(t,(t=>window.location.pathname+window.location.search),(t=>String(window.location.hash.slice(1)||"/")),(t=>ft||"/")),s=n.match(/^([^?#]+)(?:\?([^#]+))?(?:\#(.+))?$/);return{url:n,from:e,path:s[1]||"",query:ut(s[2]||""),hash:s[3]||""}}function ht(t){let e=L("tinro");e&&(e.exact||e.fallback)&&function(t){throw new Error("[Tinro] "+t)}(`${t.fallback?"":``} can't be inside ${e.fallback?"":` with exact path`}`);let n=t.fallback?"fallbacks":"childs",s=ot({}),l={router:{},exact:!1,pattern:null,meta:{},parent:e,fallback:t.fallback,redirect:!1,firstmatch:!1,breadcrumb:null,matched:!1,childs:new Set,activeChilds:new Set,fallbacks:new Set,update(t){l.exact=!t.path.endsWith("/*"),l.pattern=ct(`${l.parent&&l.parent.pattern||""}${t.path}`),l.redirect=t.redirect,l.firstmatch=t.firstmatch,l.breadcrumb=t.breadcrumb,l.match()},register:()=>{if(l.parent)return l.parent[n].add(l),()=>{l.parent[n].delete(l),l.router.un&&l.router.un()}},show:()=>{t.onShow(),!l.fallback&&l.parent&&l.parent.activeChilds.add(l)},hide:()=>{t.onHide(),!l.fallback&&l.parent&&l.parent.activeChilds.delete(l)},match:async()=>{l.matched=!1;let{path:e,url:n,from:r,query:o}=l.router,c=function(t,e){t=ct(t,!0),e=ct(e,!0);let n=[],s={},l=!0,r=t.split("/").map((t=>t.startsWith(":")?(n.push(t.slice(1)),"([^\\/]+)"):t)).join("\\/"),o=e.match(new RegExp(`^${r}$`));return o||(l=!1,o=e.match(new RegExp(`^${r}`))),o?(n.forEach(((t,e)=>s[t]=o[e+1])),{exact:l,params:s,part:o[0].slice(0,-1)}):null}(l.pattern,e);if(!l.fallback&&c&&l.redirect&&(!l.exact||l.exact&&c.exact)){await B();let t=it(e,l.parent&&l.parent.pattern,l.redirect);return bt.goto(t,!0)}if(l.meta=c&&{from:r,url:n,query:o,match:c.part,pattern:l.pattern,breadcrumbs:l.parent&&l.parent.meta&&l.parent.meta.breadcrumbs.slice()||[],params:c.params,subscribe:s.subscribe},l.breadcrumb&&l.meta&&l.meta.breadcrumbs.push({name:l.breadcrumb,path:c.part}),s.set(l.meta),!c||l.fallback||!(!l.exact||l.exact&&c.exact)||l.parent&&l.parent.firstmatch&&l.parent.matched?l.hide():(t.onMeta(l.meta),l.parent&&(l.parent.matched=!0),l.show()),await B(),c&&!l.fallback&&(l.childs.size>0&&0==l.activeChilds.size||0==l.childs.size&&l.fallbacks.size>0)){let t=l;for(;0==t.fallbacks.size;)if(t=t.parent,!t)return;t&&t.fallbacks.forEach((t=>{if(t.redirect){let e=it("/",t.parent&&t.parent.pattern,t.redirect);bt.goto(e,!0)}else t.show()}))}}};return r="tinro",o=l,O().$$.context.set(r,o),C((()=>l.register())),l.router.un=bt.subscribe((t=>{l.router.path=t.path,l.router.url=t.url,l.router.query=t.query,l.router.from=t.from,null!==l.pattern&&l.match()})),l;var r,o}function $t(){return L("tinro").meta}var bt=function(){let{subscribe:t}=ot(gt.get(),(t=>{gt.start(t);let e=function(t){let e=e=>{let n=e.target.closest("a[href]"),s=n&&at(n,"target",!1,"_self"),l=n&&at(n,"tinro-ignore"),r=e.ctrlKey||e.metaKey||e.altKey||e.shiftKey;if("_self"==s&&!l&&!r&&n){let s=n.getAttribute("href").replace(/^\/#/,"");/^\/\/|^[a-zA-Z]+:/.test(s)||(e.preventDefault(),t(s.startsWith("/")?s:n.href.replace(window.location.origin,"")))}};return addEventListener("click",e),()=>removeEventListener("click",e)}(gt.go);return()=>{gt.stop(),e()}}));return{subscribe:t,goto:gt.go,params:wt,meta:$t,useHashNavigation:t=>gt.mode(t?pt.HASH:pt.HISTORY),mode:{hash:()=>gt.mode(pt.HASH),history:()=>gt.mode(pt.HISTORY),memory:()=>gt.mode(pt.MEMORY)}}}();function wt(){return L("tinro").meta.params}const xt=t=>({params:2&t,meta:4&t}),vt=t=>({params:t[1],meta:t[2]});function yt(t){let e;const n=t[9].default,s=c(n,t,t[8],vt);return{c(){s&&s.c()},m(t,n){s&&s.m(t,n),e=!0},p(t,l){s&&s.p&&(!e||262&l)&&u(s,n,t,t[8],e?a(n,t[8],l,xt):d(t[8]),vt)},i(t){e||(G(s,t),e=!0)},o(t){V(s,t),e=!1},d(t){s&&s.d(t)}}}function kt(t){let e,n,s=t[0]&&yt(t);return{c(){s&&s.c(),e=x()},m(t,l){s&&s.m(t,l),p(t,e,l),n=!0},p(t,[n]){t[0]?s?(s.p(t,n),1&n&&G(s,1)):(s=yt(t),s.c(),G(s,1),s.m(e.parentNode,e)):s&&(Q(),V(s,1,1,(()=>{s=null})),Z())},i(t){n||(G(s),n=!0)},o(t){V(s),n=!1},d(t){s&&s.d(t),t&&g(e)}}}function _t(t,e,n){let{$$slots:s={},$$scope:l}=e,{path:r="/*"}=e,{fallback:o=!1}=e,{redirect:c=!1}=e,{firstmatch:i=!1}=e,{breadcrumb:a=null}=e,u=!1,d={},f={};const p=ht({fallback:o,onShow(){n(0,u=!0)},onHide(){n(0,u=!1)},onMeta(t){n(2,f=t),n(1,d=f.params)}});return t.$$set=t=>{"path"in t&&n(3,r=t.path),"fallback"in t&&n(4,o=t.fallback),"redirect"in t&&n(5,c=t.redirect),"firstmatch"in t&&n(6,i=t.firstmatch),"breadcrumb"in t&&n(7,a=t.breadcrumb),"$$scope"in t&&n(8,l=t.$$scope)},t.$$.update=()=>{232&t.$$.dirty&&p.update({path:r,redirect:c,firstmatch:i,breadcrumb:a})},[u,d,f,r,o,c,i,a,l,s]}class Jt extends lt{constructor(t){super(),st(this,t,_t,kt,r,{path:3,fallback:4,redirect:5,firstmatch:6,breadcrumb:7})}}function jt(e){let n,s,r,o,c;return{c(){n=$("svg"),s=$("line"),r=$("line"),y(s,"x1","18"),y(s,"y1","6"),y(s,"x2","6"),y(s,"y2","18"),y(r,"x1","6"),y(r,"y1","6"),y(r,"x2","18"),y(r,"y2","18"),y(n,"class","h-6 w-6 text-red-400 cursor-pointer"),y(n,"viewBox","0 -2 24 24"),y(n,"fill","none"),y(n,"stroke","currentColor"),y(n,"stroke-width","2"),y(n,"stroke-linecap","round"),y(n,"stroke-linejoin","round")},m(t,i){p(t,n,i),f(n,s),f(n,r),o||(c=v(n,"click",(function(){l(e[0]())&&e[0]().apply(this,arguments)})),o=!0)},p(t,[n]){e=t},i:t,o:t,d(t){t&&g(n),o=!1,c()}}}function qt(t,e,n){let{click:s=(()=>{})}=e;return t.$$set=t=>{"click"in t&&n(0,s=t.click)},[s]}class St extends lt{constructor(t){super(),st(this,t,qt,jt,r,{click:0})}}function Tt(t){let e,n,s,l,r,o,c,i;return c=new St({props:{click:t[5]}}),{c(){e=h("div"),n=h("div"),s=h("h1"),l=b(t[0]),r=w(),o=h("div"),tt(c.$$.fragment),y(s,"class","alm-hdr"),y(n,"class","w-11/12"),y(o,"class","flex justify-end w-1/12"),y(e,"class","flex items-center")},m(t,a){p(t,e,a),f(e,n),f(n,s),f(s,l),f(e,r),f(e,o),et(c,o,null),i=!0},p(t,e){(!i||1&e)&&_(l,t[0]);const n={};4&e&&(n.click=t[5]),c.$set(n)},i(t){i||(G(c.$$.fragment,t),i=!0)},o(t){V(c.$$.fragment,t),i=!1},d(t){t&&g(e),nt(c)}}}function Ot(e){let n,s;return{c(){n=h("h1"),s=b(e[0]),y(n,"class","alm-hdr")},m(t,e){p(t,n,e),f(n,s)},p(t,e){1&e&&_(s,t[0])},i:t,o:t,d(t){t&&g(n)}}}function Ct(t){let e,n,s,l,r;const o=[Ot,Tt],i=[];function m(t,e){return t[0]&&!t[1]?0:t[0]&&t[1]?1:-1}~(n=m(t))&&(s=i[n]=o[n](t));const $=t[4].default,b=c($,t,t[3],null);return{c(){e=h("div"),s&&s.c(),l=w(),b&&b.c(),y(e,"class","alm")},m(t,s){p(t,e,s),~n&&i[n].m(e,null),f(e,l),b&&b.m(e,null),r=!0},p(t,[c]){let f=n;n=m(t),n===f?~n&&i[n].p(t,c):(s&&(Q(),V(i[f],1,1,(()=>{i[f]=null})),Z()),~n?(s=i[n],s?s.p(t,c):(s=i[n]=o[n](t),s.c()),G(s,1),s.m(e,l)):s=null),b&&b.p&&(!r||8&c)&&u(b,$,t,t[3],r?a($,t[3],c,null):d(t[3]),null)},i(t){r||(G(s),G(b,t),r=!0)},o(t){V(s),V(b,t),r=!1},d(t){t&&g(e),~n&&i[n].d(),b&&b.d(t)}}}function Lt(t,e,n){let{$$slots:s={},$$scope:l}=e,{title:r=!1}=e,{cross:o=!1}=e,{close:c=(()=>{})}=e;return t.$$set=t=>{"title"in t&&n(0,r=t.title),"cross"in t&&n(1,o=t.cross),"close"in t&&n(2,c=t.close),"$$scope"in t&&n(3,l=t.$$scope)},[r,o,c,l,s,()=>c()]}class Nt extends lt{constructor(t){super(),st(this,t,Lt,Ct,r,{title:0,cross:1,close:2})}}function Et(e){let n;return{c(){n=h("div"),n.innerHTML=' \n
',y(n,"class","z-50")},m(t,e){p(t,n,e)},p:t,i:t,o:t,d(t){t&&g(n)}}}class Mt extends lt{constructor(t){super(),st(this,t,null,Et,r,{})}}function Ht(t){let e,n;return{c(){e=h("h1"),n=b(t[0]),y(e,"class","crd-hdr")},m(t,s){p(t,e,s),f(e,n)},p(t,e){1&e&&_(n,t[0])},d(t){t&&g(e)}}}function Pt(t){let e,n,s,l=t[0]&&Ht(t);const r=t[2].default,o=c(r,t,t[1],null);return{c(){e=h("div"),l&&l.c(),n=w(),o&&o.c(),y(e,"class","crd")},m(t,r){p(t,e,r),l&&l.m(e,null),f(e,n),o&&o.m(e,null),s=!0},p(t,[c]){t[0]?l?l.p(t,c):(l=Ht(t),l.c(),l.m(e,n)):l&&(l.d(1),l=null),o&&o.p&&(!s||2&c)&&u(o,r,t,t[1],s?a(r,t[1],c,null):d(t[1]),null)},i(t){s||(G(o,t),s=!0)},o(t){V(o,t),s=!1},d(t){t&&g(e),l&&l.d(),o&&o.d(t)}}}function At(t,e,n){let{$$slots:s={},$$scope:l}=e,{title:r=!1}=e;return t.$$set=t=>{"title"in t&&n(0,r=t.title),"$$scope"in t&&n(1,l=t.$$scope)},[r,l,s]}class Dt extends lt{constructor(t){super(),st(this,t,At,Pt,r,{title:0})}}function Bt(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"step","0.1"),y(e,"type","number")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[3]),v(e,"input",t[4])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&k(e.value)!==t[0].status&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function zt(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"type","text")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[5]),v(e,"input",t[6])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&e.value!==t[0].status&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function It(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"type","date")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[7]),v(e,"input",t[8])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function Rt(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"type","time")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[9]),v(e,"input",t[10])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function Ft(e){let n,s,l,r,o,c,i,a,u,d=(e[0].descr?e[0].descr:"")+"",m="number"==e[0].type&&Bt(e),$="text"==e[0].type&&zt(e),x="date"==e[0].type&&It(e),v="time"==e[0].type&&Rt(e);return{c(){n=h("div"),s=h("div"),l=h("label"),r=b(d),o=w(),c=h("div"),m&&m.c(),i=w(),$&&$.c(),a=w(),x&&x.c(),u=w(),v&&v.c(),y(l,"class","wgt-dscr-stl"),y(s,"class","w-2/3"),y(c,"class","flex justify-end w-1/3"),y(n,"class","crd-itm-psn")},m(t,e){p(t,n,e),f(n,s),f(s,l),f(l,r),f(n,o),f(n,c),m&&m.m(c,null),f(c,i),$&&$.m(c,null),f(c,a),x&&x.m(c,null),f(c,u),v&&v.m(c,null)},p(t,[e]){1&e&&d!==(d=(t[0].descr?t[0].descr:"")+"")&&_(r,d),"number"==t[0].type?m?m.p(t,e):(m=Bt(t),m.c(),m.m(c,i)):m&&(m.d(1),m=null),"text"==t[0].type?$?$.p(t,e):($=zt(t),$.c(),$.m(c,a)):$&&($.d(1),$=null),"date"==t[0].type?x?x.p(t,e):(x=It(t),x.c(),x.m(c,u)):x&&(x.d(1),x=null),"time"==t[0].type?v?v.p(t,e):(v=Rt(t),v.c(),v.m(c,null)):v&&(v.d(1),v=null)},i:t,o:t,d(t){t&&g(n),m&&m.d(),$&&$.d(),x&&x.d(),v&&v.d()}}}function Wt(t,e,n){let{widget:s}=e,{wsPush:l=((t,e,n)=>{})}=e,{value:r}=e;r=r;return t.$$set=t=>{"widget"in t&&n(0,s=t.widget),"wsPush"in t&&n(1,l=t.wsPush),"value"in t&&n(2,r=t.value)},[s,l,r,()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=k(this.value),n(0,s)},()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)},()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)},()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)}]}class Ut extends lt{constructor(t){super(),st(this,t,Wt,Ft,r,{widget:0,wsPush:1,value:2})}}function Yt(e){let n,l,r,o,c,i,a,u,d,m,$,x,k,j,q,S,T,O,C=(e[0].descr?e[0].descr:"")+"";return{c(){n=h("div"),l=h("div"),r=h("label"),o=b(C),c=w(),i=h("div"),a=h("label"),u=h("div"),d=h("input"),$=w(),x=h("div"),k=w(),j=h("div"),y(r,"class","wgt-dscr-stl"),y(l,"class","w-2/3"),y(d,"id",m=e[0].topic),y(d,"type","checkbox"),y(d,"class","sr-only"),y(x,"class","block bg-gray-600 w-10 h-6 rounded-full"),y(j,"class",q="dot "+(1==e[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition"),y(u,"class","relative"),y(a,"for",S=e[0].topic),y(a,"class","items-center cursor-pointer"),y(i,"class","flex justify-end w-1/3"),y(n,"class","crd-itm-psn")},m(t,s){p(t,n,s),f(n,l),f(l,r),f(r,o),f(n,c),f(n,i),f(i,a),f(a,u),f(u,d),J(d,e[0].status),f(u,$),f(u,x),f(u,k),f(u,j),T||(O=[v(d,"change",e[3]),v(d,"change",e[4])],T=!0)},p(t,[e]){1&e&&C!==(C=(t[0].descr?t[0].descr:"")+"")&&_(o,C),1&e&&m!==(m=t[0].topic)&&y(d,"id",m),1&e&&J(d,t[0].status),1&e&&q!==(q="dot "+(1==t[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition")&&y(j,"class",q),1&e&&S!==(S=t[0].topic)&&y(a,"for",S)},i:t,o:t,d(t){t&&g(n),T=!1,s(O)}}}function Kt(t,e,n){let{widget:s}=e,{value:l}=e;l=l;let{wsPush:r=((t,e,n)=>{})}=e;return t.$$set=t=>{"widget"in t&&n(0,s=t.widget),"value"in t&&n(2,l=t.value),"wsPush"in t&&n(1,r=t.wsPush)},[s,r,l,()=>(n(0,s.send=!0,s),r(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)}]}class Qt extends lt{constructor(t){super(),st(this,t,Kt,Yt,r,{widget:0,value:2,wsPush:1})}}function Zt(e){let n,s,l,r,o,c,i,a,u,d,m,$,x=(e[0].descr?e[0].descr:"")+"",v=(e[0].status?e[0].status:"")+"",k=(e[0].after?e[0].after:"")+"";return{c(){n=h("div"),s=h("div"),l=h("label"),r=b(x),o=w(),c=h("div"),i=h("label"),a=b(v),u=w(),d=h("label"),m=b(" "),$=b(k),y(l,"class","wgt-dscr-stl"),y(s,"class","w-2/3"),y(i,"class","wgt-adt-stl"),y(d,"class","wgt-adt-stl"),y(c,"class","flex justify-end w-1/3"),y(n,"class","crd-itm-psn")},m(t,e){p(t,n,e),f(n,s),f(s,l),f(l,r),f(n,o),f(n,c),f(c,i),f(i,a),f(c,u),f(c,d),f(d,m),f(d,$)},p(t,[e]){1&e&&x!==(x=(t[0].descr?t[0].descr:"")+"")&&_(r,x),1&e&&v!==(v=(t[0].status?t[0].status:"")+"")&&_(a,v),1&e&&k!==(k=(t[0].after?t[0].after:"")+"")&&_($,k)},i:t,o:t,d(t){t&&g(n)}}}function Gt(t,e,n){let{widget:s}=e,{value:l}=e;return l=l,t.$$set=t=>{"widget"in t&&n(0,s=t.widget),"value"in t&&n(1,l=t.value)},[s,l]}class Vt extends lt{constructor(t){super(),st(this,t,Gt,Zt,r,{widget:0,value:1})}}function Xt(t,e,n){const s=t.slice();return s[9]=e[n],s[11]=n,s}function te(t,e,n){const s=t.slice();return s[12]=e[n],s[13]=e,s[11]=n,s}function ee(e){let n,s;return n=new Nt({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function ne(t){let e,n,s,l=t[0]===[]&&se(),r=t[1],o=[];for(let e=0;eV(o[t],1,1,(()=>{o[t]=null}));return{c(){e=h("div"),l&&l.c(),n=w();for(let t=0;t{l=null})),Z()),11&s){let n;for(r=t[1],n=0;n{r=null})),Z()),"toggle"===t[12].widget?o?(o.p(t,l),1&l&&G(o,1)):(o=oe(t),o.c(),G(o,1),o.m(n.parentNode,n)):o&&(Q(),V(o,1,1,(()=>{o=null})),Z()),"anydata"===t[12].widget?c?(c.p(t,l),1&l&&G(c,1)):(c=ce(t),c.c(),G(c,1),c.m(s.parentNode,s)):c&&(Q(),V(c,1,1,(()=>{c=null})),Z())},i(t){l||(G(r),G(o),G(c),l=!0)},o(t){V(r),V(o),V(c),l=!1},d(t){r&&r.d(t),t&&g(e),o&&o.d(t),t&&g(n),c&&c.d(t),t&&g(s)}}}function re(t){let e,n,s;function l(e){t[5](e,t[12])}let r={widget:t[12],wsPush:t[4]};return void 0!==t[12].status&&(r.value=t[12].status),e=new Ut({props:r}),E.push((()=>X(e,"value",l))),{c(){tt(e.$$.fragment)},m(t,n){et(e,t,n),s=!0},p(s,l){t=s;const r={};1&l&&(r.widget=t[12]),8&l&&(r.wsPush=t[4]),!n&&1&l&&(n=!0,r.value=t[12].status,I((()=>n=!1))),e.$set(r)},i(t){s||(G(e.$$.fragment,t),s=!0)},o(t){V(e.$$.fragment,t),s=!1},d(t){nt(e,t)}}}function oe(t){let e,n,s;function l(e){t[7](e,t[12])}let r={widget:t[12],wsPush:t[6]};return void 0!==t[12].status&&(r.value=t[12].status),e=new Qt({props:r}),E.push((()=>X(e,"value",l))),{c(){tt(e.$$.fragment)},m(t,n){et(e,t,n),s=!0},p(s,l){t=s;const r={};1&l&&(r.widget=t[12]),8&l&&(r.wsPush=t[6]),!n&&1&l&&(n=!0,r.value=t[12].status,I((()=>n=!1))),e.$set(r)},i(t){s||(G(e.$$.fragment,t),s=!0)},o(t){V(e.$$.fragment,t),s=!1},d(t){nt(e,t)}}}function ce(t){let e,n,s;function l(e){t[8](e,t[12])}let r={widget:t[12]};return void 0!==t[12].status&&(r.value=t[12].status),e=new Vt({props:r}),E.push((()=>X(e,"value",l))),{c(){tt(e.$$.fragment)},m(t,n){et(e,t,n),s=!0},p(s,l){t=s;const r={};1&l&&(r.widget=t[12]),!n&&1&l&&(n=!0,r.value=t[12].status,I((()=>n=!1))),e.$set(r)},i(t){s||(G(e.$$.fragment,t),s=!0)},o(t){V(e.$$.fragment,t),s=!1},d(t){nt(e,t)}}}function ie(t){let e,n,s=t[12].page===t[9].page&&le(t);return{c(){s&&s.c(),e=x()},m(t,l){s&&s.m(t,l),p(t,e,l),n=!0},p(t,n){t[12].page===t[9].page?s?(s.p(t,n),3&n&&G(s,1)):(s=le(t),s.c(),G(s,1),s.m(e.parentNode,e)):s&&(Q(),V(s,1,1,(()=>{s=null})),Z())},i(t){n||(G(s),n=!0)},o(t){V(s),n=!1},d(t){s&&s.d(t),t&&g(e)}}}function ae(t){let e,n,s=t[0],l=[];for(let e=0;eV(l[t],1,1,(()=>{l[t]=null}));return{c(){for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function fe(t,e,n){let{layoutJson:s}=e,{pages:l}=e,{show:r}=e,{wsPush:o=((t,e,n)=>{})}=e;return t.$$set=t=>{"layoutJson"in t&&n(0,s=t.layoutJson),"pages"in t&&n(1,l=t.pages),"show"in t&&n(2,r=t.show),"wsPush"in t&&n(3,o=t.wsPush)},[s,l,r,o,(t,e,n)=>o(t,e,n),function(e,l){t.$$.not_equal(l.status,e)&&(l.status=e,n(0,s))},(t,e,n)=>o(t,e,n),function(e,l){t.$$.not_equal(l.status,e)&&(l.status=e,n(0,s))},function(e,l){t.$$.not_equal(l.status,e)&&(l.status=e,n(0,s))}]}class pe extends lt{constructor(t){super(),st(this,t,fe,de,r,{layoutJson:0,pages:1,show:2,wsPush:3})}}function ge(e){let n,s,r,o,c,i,a;return{c(){n=$("svg"),s=$("path"),r=$("circle"),o=$("circle"),c=$("circle"),y(s,"stroke","none"),y(s,"d","M0 0h24v24H0z"),y(r,"cx","5"),y(r,"cy","12"),y(r,"r","1"),y(o,"cx","12"),y(o,"cy","12"),y(o,"r","1"),y(c,"cx","19"),y(c,"cy","12"),y(c,"r","1"),y(n,"class","h-6 w-6 text-green-400 cursor-pointer"),y(n,"width","24"),y(n,"height","24"),y(n,"viewBox","0 -2 24 24"),y(n,"stroke-width","2"),y(n,"stroke","currentColor"),y(n,"fill","none"),y(n,"stroke-linecap","round"),y(n,"stroke-linejoin","round")},m(t,u){p(t,n,u),f(n,s),f(n,r),f(n,o),f(n,c),i||(a=v(n,"click",(function(){l(e[0]())&&e[0]().apply(this,arguments)})),i=!0)},p(t,[n]){e=t},i:t,o:t,d(t){t&&g(n),i=!1,a()}}}function me(t,e,n){let{click:s=(()=>{})}=e;return t.$$set=t=>{"click"in t&&n(0,s=t.click)},[s]}class he extends lt{constructor(t){super(),st(this,t,me,ge,r,{click:0})}}function $e(t,e,n){const s=t.slice();return s[19]=e[n],s[20]=e,s[21]=n,s}function be(t,e,n){const s=t.slice();return s[22]=e[n][0],s[23]=e[n][1],s[24]=e,s[25]=n,s}function we(t,e,n){const s=t.slice();return s[26]=e[n],s}function xe(t,e,n){const s=t.slice();return s[29]=e[n],s}function ve(e){let n,s;return n=new Nt({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function ye(t){let e,n,s;return n=new Dt({props:{$$slots:{default:[Ce]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),y(e,"class","grd-1col1")},m(t,l){p(t,e,l),et(n,e,null),s=!0},p(t,e){const s={};119&e[0]|2&e[1]&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){t&&g(e),nt(n)}}}function ke(t){let e,n;return{c(){e=h("optgroup"),y(e,"label",n=t[29].header)},m(t,n){p(t,e,n)},p(t,s){4&s[0]&&n!==(n=t[29].header)&&y(e,"label",n)},d(t){t&&g(e)}}}function _e(t){let e,n,s,l,r=t[29].name+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[29].num,e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){4&s[0]&&r!==(r=t[29].name+"")&&_(n,r),4&s[0]&&l!==(l=t[29].num)&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function Je(t){let e,n,s=t[29].header&&ke(t),l=!t[29].header&&_e(t);return{c(){s&&s.c(),e=x(),l&&l.c(),n=x()},m(t,r){s&&s.m(t,r),p(t,e,r),l&&l.m(t,r),p(t,n,r)},p(t,r){t[29].header?s?s.p(t,r):(s=ke(t),s.c(),s.m(e.parentNode,e)):s&&(s.d(1),s=null),t[29].header?l&&(l.d(1),l=null):l?l.p(t,r):(l=_e(t),l.c(),l.m(n.parentNode,n))},d(t){s&&s.d(t),t&&g(e),l&&l.d(t),t&&g(n)}}}function je(t){let e,n,s,l,r=t[26].label+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[26].name,e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){2&s[0]&&r!==(r=t[26].label+"")&&_(n,r),2&s[0]&&l!==(l=t[26].name)&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function qe(t){let e,n=Object.entries(t[19]),s=[];for(let e=0;eV(T[t],1,1,(()=>{T[t]=null}));return{c(){e=h("div"),n=h("select");for(let t=0;tТип \n Id \n Виджет \n Вкладка \n Название \n \n ',u=w(),d=h("tbody");for(let t=0;tt[9].call(n))),o.__value="Выберите пресет",o.value=o.__value,y(r,"class","slct-lg"),y(e,"class","grd-2col2"),y(a,"class","bg-gray-100"),y(d,"class","bg-white"),y(i,"class","tbl"),y(b,"class","btn-lg")},m(s,g){p(s,e,g),f(e,n);for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function Ne(t,e,n){let{configJson:s}=e,{widgetsJson:l}=e,{itemsJson:r}=e,{show:o}=e,c=0,{saveConfig:i=(()=>{})}=e,a=!0;function u(){for(let t=0;t{"configJson"in t&&n(0,s=t.configJson),"widgetsJson"in t&&n(1,l=t.widgetsJson),"itemsJson"in t&&n(2,r=t.itemsJson),"show"in t&&n(3,o=t.show),"saveConfig"in t&&n(4,i=t.saveConfig)},[s,l,r,o,i,c,a,u,d,function(){c=q(this),n(5,c),n(2,r)},()=>u(),function(t,e){t[e].id=this.value,n(0,s),n(1,l)},function(t,e){t[e].widget=q(this),n(0,s),n(1,l)},function(t,e){t[e].page=this.value,n(0,s),n(1,l)},function(t,e){t[e].descr=this.value,n(0,s),n(1,l)},()=>n(6,a=!a),t=>d(t),function(t,e,r){e[r][t]=this.value,n(0,s),n(1,l)},()=>i()]}class Ee extends lt{constructor(t){super(),st(this,t,Ne,Le,r,{configJson:0,widgetsJson:1,itemsJson:2,show:3,saveConfig:4},null,[-1,-1])}}function Me(t,e,n){const s=t.slice();return s[22]=e[n][0],s[23]=e[n][1],s}function He(e){let n,s;return n=new Nt({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function Pe(t){let e,n,s,l,r,o,c,i;return n=new Dt({props:{title:"Подключение к WiFi",$$slots:{default:[Be]},$$scope:{ctx:t}}}),l=new Dt({props:{title:"Подключение к MQTT",$$slots:{default:[We]},$$scope:{ctx:t}}}),c=new Dt({props:{$$slots:{default:[Ue]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),s=w(),tt(l.$$.fragment),r=w(),o=h("div"),tt(c.$$.fragment),y(e,"class","grd-2col1"),y(o,"class","grd-1col1")},m(t,a){p(t,e,a),et(n,e,null),f(e,s),et(l,e,null),p(t,r,a),p(t,o,a),et(c,o,null),i=!0},p(t,e){const s={};67108919&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s);const r={};67108931&e&&(r.$$scope={dirty:e,ctx:t}),l.$set(r);const o={};67108992&e&&(o.$$scope={dirty:e,ctx:t}),c.$set(o)},i(t){i||(G(n.$$.fragment,t),G(l.$$.fragment,t),G(c.$$.fragment,t),i=!0)},o(t){V(n.$$.fragment,t),V(l.$$.fragment,t),V(c.$$.fragment,t),i=!1},d(t){t&&g(e),nt(n),nt(l),t&&g(r),t&&g(o),nt(c)}}}function Ae(t){let e,n,s,l,r=t[23]+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[23],e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){4&s&&r!==(r=t[23]+"")&&_(n,r),4&s&&l!==(l=t[23])&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function De(t){let e,n,s;return n=new Nt({props:{title:"Введен неправильный пароль"}}),{c(){e=h("div"),tt(n.$$.fragment),y(e,"class","grd-1col1")},m(t,l){p(t,e,l),et(n,e,null),s=!0},i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){t&&g(e),nt(n)}}}function Be(t){let e,n,l,r,o,c,i,a,u,d,$,b,x,k,_,q,S,T,O,C,L,N,E,M,H,P,A,D,B,I,R,F,W,U,Y,K=Object.entries(t[2]),X=[];for(let e=0;eНазвание устройства

',l=w(),r=h("div"),o=h("input"),c=w(),i=h("div"),a=h("div"),a.innerHTML='

Точка доступа

',u=w(),d=h("div"),$=h("input"),b=w(),x=h("div"),k=h("div"),k.innerHTML='

Пароль точки доступа

',_=w(),q=h("div"),S=h("input"),T=w(),O=h("div"),C=h("div"),C.innerHTML='

Название wifi сети

',L=w(),N=h("div"),E=h("select");for(let t=0;tПароль

',A=w(),D=h("div"),B=h("input"),I=w(),tt&&tt.c(),R=w(),F=h("button"),F.textContent="Сохранить",y(n,"class","w-4/6"),y(o,"class","ipt-rnd text-left focus:border-indigo-500"),y(o,"type","text"),y(r,"class","flex justify-end w-3/6"),y(e,"class","crd-itm-psn"),y(a,"class","w-4/6"),y($,"class","ipt-rnd text-left focus:border-indigo-500"),y($,"type","text"),y(d,"class","flex justify-end w-3/6"),y(i,"class","crd-itm-psn"),y(k,"class","w-4/6"),y(S,"class","ipt-rnd text-left focus:border-indigo-500"),y(S,"type","text"),y(q,"class","flex justify-end w-3/6"),y(x,"class","crd-itm-psn"),y(C,"class","w-4/6"),y(E,"class","ipt-rnd text-left focus:border-indigo-500"),void 0===t[0].routerssid&&z((()=>t[11].call(E))),y(N,"class","flex justify-end w-3/6"),y(O,"class","crd-itm-psn"),y(P,"class","w-4/6"),y(B,"class","ipt-rnd text-left focus:border-indigo-500"),y(B,"type","text"),y(D,"class","flex justify-end w-3/6"),y(H,"class","crd-itm-psn"),y(F,"class","btn-lg")},m(s,g){p(s,e,g),f(e,n),f(e,l),f(e,r),f(r,o),J(o,t[0].name),p(s,c,g),p(s,i,g),f(i,a),f(i,u),f(i,d),f(d,$),J($,t[0].apssid),p(s,b,g),p(s,x,g),f(x,k),f(x,_),f(x,q),f(q,S),J(S,t[0].appass),p(s,T,g),p(s,O,g),f(O,C),f(O,L),f(O,N),f(N,E);for(let t=0;t{tt=null})),Z())},i(t){W||(G(tt),W=!0)},o(t){V(tt),W=!1},d(t){t&&g(e),t&&g(c),t&&g(i),t&&g(b),t&&g(x),t&&g(T),t&&g(O),m(X,t),t&&g(M),t&&g(H),t&&g(I),tt&&tt.d(t),t&&g(R),t&&g(F),U=!1,s(Y)}}}function ze(t){let e;return{c(){e=h("p"),e.textContent="Ошибка",y(e,"class","text-red-500 font-bold h-8 bg-red-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function Ie(t){let e;return{c(){e=h("p"),e.textContent="Ожидание",y(e,"class","text-blue-500 font-bold h-8 bg-blue-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function Re(t){let e;return{c(){e=h("p"),e.textContent="Подключение",y(e,"class","text-yellow-500 font-bold h-8 bg-yellow-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function Fe(t){let e;return{c(){e=h("p"),e.textContent="Подключено",y(e,"class","text-green-500 font-bold h-8 bg-green-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function We(t){let e,n,l,r,o,c,i,a,u,d,m,$,b,x,k,_,j,q,S,T,O,C,L,N,E,M,H,P,A,D,B,z,I,R,F,W,U,Y;function K(t,e){return"e5"===t[1].mqtt?Fe:"e13"===t[1].mqtt?Re:void 0===t[1].mqtt?Ie:ze}let Q=K(t),Z=Q(t);return{c(){e=h("div"),n=h("div"),n.innerHTML='

Состояние подключения

',l=w(),r=h("div"),Z.c(),o=w(),c=h("div"),i=h("div"),i.innerHTML='

Название сервера

',a=w(),u=h("div"),d=h("input"),m=w(),$=h("div"),b=h("div"),b.innerHTML='

Порт

',x=w(),k=h("div"),_=h("input"),j=w(),q=h("div"),S=h("div"),S.innerHTML='

Префикс

',T=w(),O=h("div"),C=h("input"),L=w(),N=h("div"),E=h("div"),E.innerHTML='

Имя пользователя

',M=w(),H=h("div"),P=h("input"),A=w(),D=h("div"),B=h("div"),B.innerHTML='

Пароль

',z=w(),I=h("div"),R=h("input"),F=w(),W=h("button"),W.textContent="Сохранить",y(n,"class","w-4/6"),y(r,"class","flex justify-center w-3/6 align-baseline text-sm sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words"),y(e,"class","crd-itm-psn"),y(i,"class","w-4/6"),y(d,"class","ipt-rnd text-left focus:border-indigo-500"),y(d,"type","text"),y(u,"class","flex justify-end w-3/6"),y(c,"class","crd-itm-psn"),y(b,"class","w-4/6"),y(_,"class","ipt-rnd text-left focus:border-indigo-500"),y(_,"type","text"),y(k,"class","flex justify-end w-3/6"),y($,"class","crd-itm-psn"),y(S,"class","w-4/6"),y(C,"class","ipt-rnd text-left focus:border-indigo-500"),y(C,"type","text"),y(O,"class","flex justify-end w-3/6"),y(q,"class","crd-itm-psn"),y(E,"class","w-4/6"),y(P,"class","ipt-rnd text-left focus:border-indigo-500"),y(P,"type","text"),y(H,"class","flex justify-end w-3/6"),y(N,"class","crd-itm-psn"),y(B,"class","w-4/6"),y(R,"class","ipt-rnd text-left focus:border-indigo-500"),y(R,"type","text"),y(I,"class","flex justify-end w-3/6"),y(D,"class","crd-itm-psn"),y(W,"class","btn-lg")},m(s,g){p(s,e,g),f(e,n),f(e,l),f(e,r),Z.m(r,null),p(s,o,g),p(s,c,g),f(c,i),f(c,a),f(c,u),f(u,d),J(d,t[0].mqttServer),p(s,m,g),p(s,$,g),f($,b),f($,x),f($,k),f(k,_),J(_,t[0].mqttPort),p(s,j,g),p(s,q,g),f(q,S),f(q,T),f(q,O),f(O,C),J(C,t[0].mqttPrefix),p(s,L,g),p(s,N,g),f(N,E),f(N,M),f(N,H),f(H,P),J(P,t[0].mqttUser),p(s,A,g),p(s,D,g),f(D,B),f(D,z),f(D,I),f(I,R),J(R,t[0].mqttPass),p(s,F,g),p(s,W,g),U||(Y=[v(d,"input",t[15]),v(_,"input",t[16]),v(C,"input",t[17]),v(P,"input",t[18]),v(R,"input",t[19]),v(W,"click",t[20])],U=!0)},p(t,e){Q!==(Q=K(t))&&(Z.d(1),Z=Q(t),Z&&(Z.c(),Z.m(r,null))),5&e&&d.value!==t[0].mqttServer&&J(d,t[0].mqttServer),5&e&&_.value!==t[0].mqttPort&&J(_,t[0].mqttPort),5&e&&C.value!==t[0].mqttPrefix&&J(C,t[0].mqttPrefix),5&e&&P.value!==t[0].mqttUser&&J(P,t[0].mqttUser),5&e&&R.value!==t[0].mqttPass&&J(R,t[0].mqttPass)},d(t){t&&g(e),Z.d(),t&&g(o),t&&g(c),t&&g(m),t&&g($),t&&g(j),t&&g(q),t&&g(L),t&&g(N),t&&g(A),t&&g(D),t&&g(F),t&&g(W),U=!1,s(Y)}}}function Ue(e){let n,s,l;return{c(){n=h("button"),n.textContent="Перезагрузить устройство",y(n,"class","btn-lg")},m(t,r){p(t,n,r),s||(l=v(n,"click",e[21]),s=!0)},p:t,d(t){t&&g(n),s=!1,l()}}}function Ye(t){let e,n,s,l;const r=[Pe,He],o=[];function c(t,e){return t[3]?0:1}return e=c(t),n=o[e]=r[e](t),{c(){n.c(),s=x()},m(t,n){o[e].m(t,n),p(t,s,n),l=!0},p(t,[l]){let i=e;e=c(t),e===i?o[e].p(t,l):(Q(),V(o[i],1,1,(()=>{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function Ke(t,e,n){let{settingsJson:s}=e,{errorsJson:l}=e,{ssidJson:r}=e,{show:o}=e,{ssidClick:c=(()=>{})}=e,{saveSett:i=(()=>{})}=e,{saveMqtt:a=(()=>{})}=e,{rebootEsp:u=(()=>{})}=e;return t.$$set=t=>{"settingsJson"in t&&n(0,s=t.settingsJson),"errorsJson"in t&&n(1,l=t.errorsJson),"ssidJson"in t&&n(2,r=t.ssidJson),"show"in t&&n(3,o=t.show),"ssidClick"in t&&n(4,c=t.ssidClick),"saveSett"in t&&n(5,i=t.saveSett),"saveMqtt"in t&&n(6,a=t.saveMqtt),"rebootEsp"in t&&n(7,u=t.rebootEsp)},[s,l,r,o,c,i,a,u,function(){s.name=this.value,n(0,s),n(2,r)},function(){s.apssid=this.value,n(0,s),n(2,r)},function(){s.appass=this.value,n(0,s),n(2,r)},function(){s.routerssid=q(this),n(0,s),n(2,r)},()=>c(),function(){s.routerpass=this.value,n(0,s),n(2,r)},()=>i(),function(){s.mqttServer=this.value,n(0,s),n(2,r)},function(){s.mqttPort=this.value,n(0,s),n(2,r)},function(){s.mqttPrefix=this.value,n(0,s),n(2,r)},function(){s.mqttUser=this.value,n(0,s),n(2,r)},function(){s.mqttPass=this.value,n(0,s),n(2,r)},()=>a(),()=>u()]}class Qe extends lt{constructor(t){super(),st(this,t,Ke,Ye,r,{settingsJson:0,errorsJson:1,ssidJson:2,show:3,ssidClick:4,saveSett:5,saveMqtt:6,rebootEsp:7})}}function Ze(t,e,n){const s=t.slice();return s[13]=e[n],s[15]=n,s}function Ge(e){let n,s;return n=new Nt({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function Ve(t){let e,n,s,l,r;return n=new Dt({props:{title:"Список устройств",$$slots:{default:[en]},$$scope:{ctx:t}}}),l=new Nt({props:{$$slots:{default:[nn]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),s=w(),tt(l.$$.fragment),y(e,"class","grd-1col1")},m(t,o){p(t,e,o),et(n,e,null),f(e,s),et(l,e,null),r=!0},p(t,e){const s={};65591&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s);const r={};65536&e&&(r.$$scope={dirty:e,ctx:t}),l.$set(r)},i(t){r||(G(n.$$.fragment,t),G(l.$$.fragment,t),r=!0)},o(t){V(n.$$.fragment,t),V(l.$$.fragment,t),r=!1},d(t){t&&g(e),nt(n),nt(l)}}}function Xe(t){let e,n,s,l,r,o,c,i,a,u,d,m,$,x,v,k,J,j,q,S=t[13].name+"",T=t[13].ip+"",O=t[13].id+"",C=t[13].status?"online":"offline";return j=new St({props:{click:function(){return t[7](t[15])}}}),{c(){e=h("tr"),n=h("td"),s=b(S),l=w(),r=h("td"),o=h("a"),c=b(T),a=w(),u=h("td"),d=b(O),m=w(),$=h("td"),x=b(C),k=w(),J=h("td"),tt(j.$$.fragment),y(n,"class","tbl-bdy-lg ipt-lg w-full"),y(o,"href",i="http://"+t[13].ip),y(r,"class","tbl-bdy-lg ipt-lg w-full"),y(u,"class","tbl-bdy-lg ipt-lg w-full"),y($,"class",v="tbl-bdy-lg ipt-lg w-full "+(t[13].status?"bg-green-50":"bg-red-50")),y(J,"class","tbl-bdy-lg"),y(e,"class","txt-sz txt-pad")},m(t,i){p(t,e,i),f(e,n),f(n,s),f(e,l),f(e,r),f(r,o),f(o,c),f(e,a),f(e,u),f(u,d),f(e,m),f(e,$),f($,x),f(e,k),f(e,J),et(j,J,null),q=!0},p(e,n){t=e,(!q||1&n)&&S!==(S=t[13].name+"")&&_(s,S),(!q||1&n)&&T!==(T=t[13].ip+"")&&_(c,T),(!q||1&n&&i!==(i="http://"+t[13].ip))&&y(o,"href",i),(!q||1&n)&&O!==(O=t[13].id+"")&&_(d,O),(!q||1&n)&&C!==(C=t[13].status?"online":"offline")&&_(x,C),(!q||1&n&&v!==(v="tbl-bdy-lg ipt-lg w-full "+(t[13].status?"bg-green-50":"bg-red-50")))&&y($,"class",v)},i(t){q||(G(j.$$.fragment,t),q=!0)},o(t){V(j.$$.fragment,t),q=!1},d(t){t&&g(e),nt(j)}}}function tn(t){let e,n,l,r,o,c,i,a,u,d,m,$,b;return{c(){e=h("tr"),n=h("td"),l=h("input"),r=w(),o=h("td"),c=h("input"),i=w(),a=h("td"),u=h("input"),d=w(),m=h("td"),y(l,"class","ipt-lg w-full"),y(l,"type","text"),y(n,"class","tbl-bdy-lg"),y(c,"class","ipt-lg w-full"),y(c,"type","text"),y(o,"class","tbl-bdy-lg"),y(u,"class","ipt-lg w-full"),y(u,"type","text"),y(a,"class","tbl-bdy-lg"),y(m,"class","tbl-bdy-lg"),y(e,"class","txt-sz txt-pad")},m(s,g){p(s,e,g),f(e,n),f(n,l),J(l,t[2].name),f(e,r),f(e,o),f(o,c),J(c,t[2].ip),f(e,i),f(e,a),f(a,u),J(u,t[2].id),f(e,d),f(e,m),$||(b=[v(l,"input",t[8]),v(c,"input",t[9]),v(u,"input",t[10])],$=!0)},p(t,e){4&e&&l.value!==t[2].name&&J(l,t[2].name),4&e&&c.value!==t[2].ip&&J(c,t[2].ip),4&e&&u.value!==t[2].id&&J(u,t[2].id)},d(t){t&&g(e),$=!1,s(b)}}}function en(t){let e,n,l,r,o,c,i,a,u,d,$,x,k,J=t[1]?"Сохранить":"Добавить устройство",j=t[0],q=[];for(let e=0;eV(q[t],1,1,(()=>{q[t]=null}));let T=t[1]&&tn(t);return{c(){e=h("table"),n=h("thead"),n.innerHTML='Название устройства \n IP адрес \n Идентификатор \n Состояние \n ',l=w(),r=h("tbody");for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function ln(t,e,n){let{show:s}=e,{deviceList:l}=e,{showInput:r}=e,{newDevice:o={}}=e,{addDevInList:c=(()=>{})}=e,{sendToAllDevices:i=(t=>{})}=e;function a(t){for(let e=0;e{"show"in t&&n(3,s=t.show),"deviceList"in t&&n(0,l=t.deviceList),"showInput"in t&&n(1,r=t.showInput),"newDevice"in t&&n(2,o=t.newDevice),"addDevInList"in t&&n(4,c=t.addDevInList),"sendToAllDevices"in t&&n(5,i=t.sendToAllDevices)},[l,r,o,s,c,i,a,t=>a(t),function(){o.name=this.value,n(2,o)},function(){o.ip=this.value,n(2,o)},function(){o.id=this.value,n(2,o)},()=>(n(1,r=!r),c()),t=>i("/reboot|")]}class rn extends lt{constructor(t){super(),st(this,t,ln,sn,r,{show:3,deviceList:0,showInput:1,newDevice:2,addDevInList:4,sendToAllDevices:5})}}function on(t,e,n){const s=t.slice();return s[9]=e[n][0],s[10]=e[n][1],s}function cn(e){let n,s;return n=new Nt({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function an(t){let e,n,s,l,r,o,c,i;return n=new Dt({props:{title:"Системная информация",$$slots:{default:[$n]},$$scope:{ctx:t}}}),l=new Dt({props:{title:"Системные ошибки",$$slots:{default:[yn]},$$scope:{ctx:t}}}),c=new Dt({props:{$$slots:{default:[kn]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),s=w(),tt(l.$$.fragment),r=w(),o=h("div"),tt(c.$$.fragment),y(e,"class","grd-2col1"),y(o,"class","grd-1col1")},m(t,a){p(t,e,a),et(n,e,null),f(e,s),et(l,e,null),p(t,r,a),p(t,o,a),et(c,o,null),i=!0},p(t,e){const s={};8195&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s);const r={};8210&e&&(r.$$scope={dirty:e,ctx:t}),l.$set(r);const o={};8196&e&&(o.$$scope={dirty:e,ctx:t}),c.$set(o)},i(t){i||(G(n.$$.fragment,t),G(l.$$.fragment,t),G(c.$$.fragment,t),i=!0)},o(t){V(n.$$.fragment,t),V(l.$$.fragment,t),V(c.$$.fragment,t),i=!1},d(t){t&&g(e),nt(n),nt(l),t&&g(r),t&&g(o),nt(c)}}}function un(t){let e;return{c(){e=h("p"),e.textContent="не подключено",y(e,"class","text-red-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function dn(t){let e;return{c(){e=h("p"),e.textContent="нет сигнала",y(e,"class","text-red-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function fn(t){let e;return{c(){e=h("p"),e.textContent="очень низкий",y(e,"class","text-red-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function pn(t){let e;return{c(){e=h("p"),e.textContent="низкий",y(e,"class","text-yellow-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function gn(t){let e;return{c(){e=h("p"),e.textContent="хороший",y(e,"class","text-yellow-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function mn(t){let e;return{c(){e=h("p"),e.textContent="очень хороший",y(e,"class","text-green-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function hn(t){let e;return{c(){e=h("p"),e.textContent="отличный",y(e,"class","text-green-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function $n(t){let e,n,s,l,r,o,c,i,a,u,d,m,$,x,v,k,J,j,q,S,T,O,C,L,N,E,M,H,P,A,D,B,z,I,R,F,W,U,Y,K,Q,Z,G,V,X,tt=t[1].bver+"",et=t[1].upt+"",nt=t[1].uptm+"",st=t[1].heap+"",lt=0===t[1].rssi&&un(),rt=1===t[1].rssi&&dn(),ot=2===t[1].rssi&&fn(),ct=3===t[1].rssi&&pn(),it=4===t[1].rssi&&gn(),at=5===t[1].rssi&&mn(),ut=6===t[1].rssi&&hn();return{c(){e=h("div"),n=h("div"),n.innerHTML='

Версия прошивки

',s=w(),l=h("div"),r=h("p"),o=b(tt),c=w(),i=h("div"),a=h("div"),a.innerHTML='

Версия файловой системы

',u=w(),d=h("div"),m=h("p"),$=b(t[0]),x=w(),v=h("div"),k=h("div"),k.innerHTML='

Uptime устройства

',J=w(),j=h("div"),q=h("p"),S=b(et),T=w(),O=h("div"),C=h("div"),C.innerHTML='

Uptime сессии mqtt

',L=w(),N=h("div"),E=h("p"),M=b(nt),H=w(),P=h("div"),A=h("div"),A.innerHTML='

Качество WiFi сигнала

',D=w(),B=h("div"),lt&<.c(),z=w(),rt&&rt.c(),I=w(),ot&&ot.c(),R=w(),ct&&ct.c(),F=w(),it&&it.c(),W=w(),at&&at.c(),U=w(),ut&&ut.c(),Y=w(),K=h("div"),Q=h("div"),Q.innerHTML='

Остаток оперативной памяти

',Z=w(),G=h("div"),V=h("p"),X=b(st),y(n,"class","w-3/4"),y(r,"class","text-gray-500 font-bold"),y(l,"class","flex justify-center w-1/4"),y(e,"class","crd-itm-psn"),y(a,"class","w-3/4"),y(m,"class","text-gray-500 font-bold"),y(d,"class","flex justify-center w-1/4"),y(i,"class","crd-itm-psn"),y(k,"class","w-3/4"),y(q,"class","text-gray-500 font-bold"),y(j,"class","flex justify-center w-1/4"),y(v,"class","crd-itm-psn"),y(C,"class","w-3/4"),y(E,"class","text-gray-500 font-bold"),y(N,"class","flex justify-center w-1/4"),y(O,"class","crd-itm-psn"),y(A,"class","w-3/4"),y(B,"class","flex justify-center w-1/4 text-xs sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words"),y(P,"class","crd-itm-psn"),y(Q,"class","w-3/4"),y(V,"class","text-green-500 font-bold"),y(G,"class","flex justify-center w-1/4"),y(K,"class","crd-itm-psn")},m(t,g){p(t,e,g),f(e,n),f(e,s),f(e,l),f(l,r),f(r,o),p(t,c,g),p(t,i,g),f(i,a),f(i,u),f(i,d),f(d,m),f(m,$),p(t,x,g),p(t,v,g),f(v,k),f(v,J),f(v,j),f(j,q),f(q,S),p(t,T,g),p(t,O,g),f(O,C),f(O,L),f(O,N),f(N,E),f(E,M),p(t,H,g),p(t,P,g),f(P,A),f(P,D),f(P,B),lt&<.m(B,null),f(B,z),rt&&rt.m(B,null),f(B,I),ot&&ot.m(B,null),f(B,R),ct&&ct.m(B,null),f(B,F),it&&it.m(B,null),f(B,W),at&&at.m(B,null),f(B,U),ut&&ut.m(B,null),p(t,Y,g),p(t,K,g),f(K,Q),f(K,Z),f(K,G),f(G,V),f(V,X)},p(t,e){2&e&&tt!==(tt=t[1].bver+"")&&_(o,tt),1&e&&_($,t[0]),2&e&&et!==(et=t[1].upt+"")&&_(S,et),2&e&&nt!==(nt=t[1].uptm+"")&&_(M,nt),0===t[1].rssi?lt||(lt=un(),lt.c(),lt.m(B,z)):lt&&(lt.d(1),lt=null),1===t[1].rssi?rt||(rt=dn(),rt.c(),rt.m(B,I)):rt&&(rt.d(1),rt=null),2===t[1].rssi?ot||(ot=fn(),ot.c(),ot.m(B,R)):ot&&(ot.d(1),ot=null),3===t[1].rssi?ct||(ct=pn(),ct.c(),ct.m(B,F)):ct&&(ct.d(1),ct=null),4===t[1].rssi?it||(it=gn(),it.c(),it.m(B,W)):it&&(it.d(1),it=null),5===t[1].rssi?at||(at=mn(),at.c(),at.m(B,U)):at&&(at.d(1),at=null),6===t[1].rssi?ut||(ut=hn(),ut.c(),ut.m(B,null)):ut&&(ut.d(1),ut=null),2&e&&st!==(st=t[1].heap+"")&&_(X,st)},d(t){t&&g(e),t&&g(c),t&&g(i),t&&g(x),t&&g(v),t&&g(T),t&&g(O),t&&g(H),t&&g(P),lt&<.d(),rt&&rt.d(),ot&&ot.d(),ct&&ct.d(),it&&it.d(),at&&at.d(),ut&&ut.d(),t&&g(Y),t&&g(K)}}}function bn(t){let e,n;function s(){return t[6](t[9])}return e=new Nt({props:{title:t[5][t[9]][t[10]].descr,cross:t[5][t[9]][t[10]].cancel,close:s,$$slots:{default:[xn]},$$scope:{ctx:t}}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(n,l){t=n;const r={};2&l&&(r.title=t[5][t[9]][t[10]].descr),2&l&&(r.cross=t[5][t[9]][t[10]].cancel),18&l&&(r.close=s),8194&l&&(r.$$scope={dirty:l,ctx:t}),e.$set(r)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function wn(t){let e,n,s="Количество: "+t[1][t[9]+"n"];return{c(){e=h("p"),n=b(s),y(e,"class","break-words text-center")},m(t,s){p(t,e,s),f(e,n)},p(t,e){2&e&&s!==(s="Количество: "+t[1][t[9]+"n"])&&_(n,s)},d(t){t&&g(e)}}}function xn(t){let e,n,s,l,r=t[5][t[9]][t[10]].txt+"",o=t[5][t[9]][t[10]].num&&wn(t);return{c(){e=h("p"),n=b(r),s=w(),o&&o.c(),l=w(),y(e,"class","break-words text-center")},m(t,r){p(t,e,r),f(e,n),p(t,s,r),o&&o.m(t,r),p(t,l,r)},p(t,e){2&e&&r!==(r=t[5][t[9]][t[10]].txt+"")&&_(n,r),t[5][t[9]][t[10]].num?o?o.p(t,e):(o=wn(t),o.c(),o.m(l.parentNode,l)):o&&(o.d(1),o=null)},d(t){t&&g(e),t&&g(s),o&&o.d(t),t&&g(l)}}}function vn(t){let e,n,s=t[9]in t[5]&&t[10]in t[5][t[9]]&&bn(t);return{c(){s&&s.c(),e=x()},m(t,l){s&&s.m(t,l),p(t,e,l),n=!0},p(t,n){t[9]in t[5]&&t[10]in t[5][t[9]]?s?(s.p(t,n),2&n&&G(s,1)):(s=bn(t),s.c(),G(s,1),s.m(e.parentNode,e)):s&&(Q(),V(s,1,1,(()=>{s=null})),Z())},i(t){n||(G(s),n=!0)},o(t){V(s),n=!1},d(t){s&&s.d(t),t&&g(e)}}}function yn(t){let e,n,s=Object.entries(t[1]),l=[];for(let e=0;eV(l[t],1,1,(()=>{l[t]=null}));return{c(){e=h("div");for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function Jn(t,e,n){let{version:s}=e,{errorsJson:l}=e,{rebootEsp:r=(()=>{})}=e,{show:o}=e,{cancelAlarm:c=(t=>{})}=e;return t.$$set=t=>{"version"in t&&n(0,s=t.version),"errorsJson"in t&&n(1,l=t.errorsJson),"rebootEsp"in t&&n(2,r=t.rebootEsp),"show"in t&&n(3,o=t.show),"cancelAlarm"in t&&n(4,c=t.cancelAlarm)},[s,l,r,o,c,{mqtt:{e1:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Нет ответа от сервера",cancel:!1},e2:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Соединение было разорвано",cancel:!1},e3:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT",cancel:!1},e4:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Клиент был отключен",cancel:!1},e6:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Ошибка версии",cancel:!1},e7:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Отклонен идентификатор",cancel:!1},e8:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Не могу установить соединение",cancel:!1},e9:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Неправильное имя пользователя/пароль"},e10:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Не авторизован для подключения",cancel:!1},e11:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Название сервера пустое",cancel:!1},e12:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Имя пользователя или пароль пустые",cancel:!1},e13:{descr:"Mqtt",color:"text-red-500",txt:"Подключение в процессе",cancel:!1}},wse1:{1:{descr:"Ошибка веб сокетов",color:"text-red-500",txt:"Слишком много клиентов было открыто. Допускается не более четырех.",cancel:!0}},jse1:{1:{descr:"Ошибка json",color:"text-red-500",txt:"Недостаточный размер буфера библиотеки Arduino Json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",cancel:!0}},jse2:{1:{descr:"Ошибка json",color:"text-red-500",txt:"Ошибка записи/чтения json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",cancel:!0,num:!0}},jse3:{1:{descr:"Ошибка json",color:"text-red-500",txt:"Ошибка чтения файла json с виджетами",cancel:!0}}},t=>c(t),()=>r()]}class jn extends lt{constructor(t){super(),st(this,t,Jn,_n,r,{version:0,errorsJson:1,rebootEsp:2,show:3,cancelAlarm:4})}}function qn(e){let n,s,l,r;return{c(){n=$("svg"),s=$("path"),y(s,"d","M7 18a4.6 4.4 0 0 1 0 -9h0a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-12"),y(n,"class",l="h-8 w-8 "+e[0]),y(n,"width","8"),y(n,"height","8"),y(n,"viewBox",r=e[1]+" "+e[2]+" 24 24"),y(n,"stroke-width","2"),y(n,"stroke","currentColor"),y(n,"fill","none"),y(n,"stroke-linecap","round"),y(n,"stroke-linejoin","round")},m(t,e){p(t,n,e),f(n,s)},p(t,[e]){1&e&&l!==(l="h-8 w-8 "+t[0])&&y(n,"class",l),6&e&&r!==(r=t[1]+" "+t[2]+" 24 24")&&y(n,"viewBox",r)},i:t,o:t,d(t){t&&g(n)}}}function Sn(t,e,n){let{color:s}=e,{x:l=0}=e,{y:r=0}=e;return t.$$set=t=>{"color"in t&&n(0,s=t.color),"x"in t&&n(1,l=t.x),"y"in t&&n(2,r=t.y)},[s,l,r]}class Tn extends lt{constructor(t){super(),st(this,t,Sn,qn,r,{color:0,x:1,y:2})}}function On(t,e,n){const s=t.slice();return s[109]=e[n],s}function Cn(t){let e,n;return e=new Mt({}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Ln(t){let e,n,s,l,r=t[109].name+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[109].ws,e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){32768&s[0]&&r!==(r=t[109].name+"")&&_(n,r),32768&s[0]&&l!==(l=t[109].ws)&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function Nn(t){let e,n,s,l,r,o,c,i,a,u;return e=new Jt({props:{path:"/",$$slots:{default:[Mn]},$$scope:{ctx:t}}}),s=new Jt({props:{path:"/config",$$slots:{default:[Hn]},$$scope:{ctx:t}}}),r=new Jt({props:{path:"/connection",$$slots:{default:[Pn]},$$scope:{ctx:t}}}),c=new Jt({props:{path:"/list",$$slots:{default:[An]},$$scope:{ctx:t}}}),a=new Jt({props:{path:"/system",$$slots:{default:[Dn]},$$scope:{ctx:t}}}),{c(){tt(e.$$.fragment),n=w(),tt(s.$$.fragment),l=w(),tt(r.$$.fragment),o=w(),tt(c.$$.fragment),i=w(),tt(a.$$.fragment)},m(t,d){et(e,t,d),p(t,n,d),et(s,t,d),p(t,l,d),et(r,t,d),p(t,o,d),et(c,t,d),p(t,i,d),et(a,t,d),u=!0},p(t,n){const l={};2060&n[0]|524288&n[3]&&(l.$$scope={dirty:n,ctx:t}),e.$set(l);const o={};1808&n[0]|524288&n[3]&&(o.$$scope={dirty:n,ctx:t}),s.$set(o);const i={};28704&n[0]|524288&n[3]&&(i.$$scope={dirty:n,ctx:t}),r.$set(i);const u={};294976&n[0]|524288&n[3]&&(u.$$scope={dirty:n,ctx:t}),c.$set(u);const d={};8320&n[0]|524288&n[3]&&(d.$$scope={dirty:n,ctx:t}),a.$set(d)},i(t){u||(G(e.$$.fragment,t),G(s.$$.fragment,t),G(r.$$.fragment,t),G(c.$$.fragment,t),G(a.$$.fragment,t),u=!0)},o(t){V(e.$$.fragment,t),V(s.$$.fragment,t),V(r.$$.fragment,t),V(c.$$.fragment,t),V(a.$$.fragment,t),u=!1},d(t){nt(e,t),t&&g(n),nt(s,t),t&&g(l),nt(r,t),t&&g(o),nt(c,t),t&&g(i),nt(a,t)}}}function En(e){let n,s;return n=new Nt({props:{title:"Нет соединения"}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function Mn(t){let e,n;return e=new pe({props:{show:t[3],layoutJson:t[11],pages:t[2],wsPush:t[35]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};8&n[0]&&(s.show=t[3]),2048&n[0]&&(s.layoutJson=t[11]),4&n[0]&&(s.pages=t[2]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Hn(t){let e,n;return e=new Ee({props:{show:t[4],configJson:t[8],widgetsJson:t[9],itemsJson:t[10],saveConfig:t[36]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};16&n[0]&&(s.show=t[4]),256&n[0]&&(s.configJson=t[8]),512&n[0]&&(s.widgetsJson=t[9]),1024&n[0]&&(s.itemsJson=t[10]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Pn(t){let e,n;return e=new Qe({props:{show:t[5],rebootEsp:t[37],ssidClick:t[38],saveSett:t[39],saveMqtt:t[40],settingsJson:t[12],errorsJson:t[13],ssidJson:t[14]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};32&n[0]&&(s.show=t[5]),4096&n[0]&&(s.settingsJson=t[12]),8192&n[0]&&(s.errorsJson=t[13]),16384&n[0]&&(s.ssidJson=t[14]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function An(t){let e,n;return e=new rn({props:{show:t[6],deviceList:t[15],showInput:In,addDevInList:t[41],newDevice:t[18],sendToAllDevices:t[42]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};64&n[0]&&(s.show=t[6]),32768&n[0]&&(s.deviceList=t[15]),262144&n[0]&&(s.newDevice=t[18]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Dn(t){let e,n;return e=new jn({props:{show:t[7],errorsJson:t[13],rebootEsp:t[43],cancelAlarm:t[44],version:zn}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};128&n[0]&&(s.show=t[7]),8192&n[0]&&(s.errorsJson=t[13]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Bn(t){let e,n,l,r,o,c,i,a,u,d,$,b,x,k,_,J,q,S,T,O,C,L,N,E,M,H,P,A,D,B,I,R,F,W,U,Y,K,X,st,lt,rt,ot,ct=t[19]&&Cn(),it=t[15],at=[];for(let e=0;e",_=w(),J=h("ul"),q=h("li"),S=h("a"),S.textContent="Управление",T=w(),O=h("li"),C=h("a"),C.textContent="Конфигуратор",L=w(),N=h("li"),E=h("a"),E.textContent="Подключение",M=w(),H=h("li"),P=h("a"),P.textContent="Устройства",A=w(),D=h("li"),B=h("a"),B.textContent="Системные",I=w(),R=h("main"),F=h("ul"),W=h("div"),Y.c(),X=w(),st=h("footer"),st.innerHTML='
Developed by Dmitry Borisenko
',y(c,"class","border border-indigo-500 border-4"),void 0===t[17]&&z((()=>t[31].call(c))),y(o,"class","px-15 py-1"),y(a,"class","pl-4 pr-4 py-1"),y(r,"class","flex content-center items-center justify-end"),y(l,"class","h-10 w-full bg-gray-100 overflow-auto shadow-md"),y(b,"id","menu__toggle"),y(b,"type","checkbox"),y(k,"class","menu__btn"),y(k,"for","menu__toggle"),y(S,"class","menu__item"),y(S,"href","/"),y(C,"class","menu__item"),y(C,"href","/config"),y(E,"class","menu__item"),y(E,"href","/connection"),y(P,"class","menu__item"),y(P,"href","/list"),y(B,"class","menu__item"),y(B,"href","/system"),y(J,"class","menu__box"),y($,"class","flex"),y(W,"class","bg-cover pt-0 px-4"),y(F,"class","menu__main"),y(R,"class",K="flex-1 overflow-y-auto p-0 "+(!0!==t[0]||t[1]?"ml-0":"ml-36")),y(st,"class","h-4 bg-gray-100 border-gray-200 shadow-lg"),y(e,"class","flex flex-col h-screen bg-gray-50")},m(s,g){p(s,e,g),ct&&ct.m(e,null),f(e,n),f(e,l),f(l,r),f(r,o),f(o,c);for(let t=0;t{ct=null})),Z()),32768&s[0]){let e;for(it=t[15],e=0;e{dt[r]=null})),Z(),Y=dt[U],Y?Y.p(t,s):(Y=dt[U]=ut[U](t),Y.c()),G(Y,1),Y.m(W,null)),(!lt||3&s[0]&&K!==(K="flex-1 overflow-y-auto p-0 "+(!0!==t[0]||t[1]?"ml-0":"ml-36")))&&y(R,"class",K)},i(t){lt||(G(ct),G(u.$$.fragment,t),G(Y),lt=!0)},o(t){V(ct),V(u.$$.fragment,t),V(Y),lt=!1},d(t){t&&g(e),ct&&ct.d(),m(at,t),nt(u),dt[U].d(),rt=!1,s(ot)}}}let zn=403,In=!1;function Rn(t,e,n){let s;o(t,bt,(t=>n(73,s=t))),bt.mode.hash();let l=!1,r=!1,c=document.location.hostname,i=!0,a=[],u=!1,d=!1,f=!1,p=!1,g=!1,m=[],h=!1,$=!1,b=[],w=!1,x=!1,v=[],y=!1,k=!1,_=[],J=!1,j=!1,S={},T=!1,O=!1,L={},N=!1,E={},M=!1,H={},P=!1,A=[],D=!1,B=[];B=[{name:"--",id:"--",ip:c,ws:0,status:!1}];let z,I=[],R=!1,F=0,W=!0,U={};var Y=function(){this.parts=[]};let K;Y.prototype.append=function(t){this.parts.push(t),this.blob=void 0},Y.prototype.getBlob=function(){return this.blob||(this.blob=new Blob(this.parts,{type:"binary"})),this.blob},Y.prototype.clear=function(){this.parts=[]};var Q=new Y,Z=new Y,G=new Y,V=new Y,X=new Y;function tt(){void 0!==F&>(F,K)}function et(){vt(F);let t=0;B.forEach((e=>{e.ws=t,e.status||(st(t),rt(t)),t++})),n(15,B)}function nt(t,e){B.forEach((n=>{n.ws===t&&(n.status=e,n.status?console.log("[i]",n.ip,"status online"):console.log("[i]",n.ip,"status offline"))})),n(15,B),vt(F),n(16,R=z.status)}function st(t){let e=lt(t);"error"===e?console.log("[e]","device list wrong"):(I[t]=new WebSocket("ws://"+e+":81"),I.binaryType="blob",console.log("[i]",e,t,"started connecting..."))}function lt(t){let e="error";return B.forEach((n=>{t===n.ws&&(e=n.ip)})),e}function rt(t){if(I[t]){let e=lt(t);console.log("[i]",e,t,"web socket events added"),I[t].addEventListener("open",(function(n){console.log("[i]",e,t,"completed connecting"),nt(t,!0),i&>(0,"/list|"),t===F&&tt()})),I[t].addEventListener("message",(function(e){if("string"==typeof e.data){let c=e.data;if(t===F){if(c.includes("devicelist")&&kt(c)&&(A=JSON.parse(c),A=A,D=!0,console.log("✔","incDeviceList json parced"),ot(),i?(n(15,B=A),n(15,B[0].status=!0,B)):n(15,(l=B,r=A,o=new Set(l.map((t=>t.ip))),B=[...l,...r.filter((t=>!o.has(t.ip)))])),i=!1,n(15,B),wt(),et()),c.includes("status")&&kt(c)){!function(t){for(let e=0;e<_.length;e++){if(_[e].topic===t.topic){n(11,_[e].status=t.status,_);break}}}(JSON.parse(c)),$t(),console.log("✔","statusJson parced"),ot()}if(c.includes("params")&&kt(c)&&(H=JSON.parse(c),console.log("✔","paramsJson parced",t),P=!0,ot()),c.includes("ssid")&&kt(c)&&(n(14,E=JSON.parse(c)),n(14,E),console.log("✔","ssidJson parced"),M=!0,ot()),c.includes("errors")&&kt(c)&&(n(13,L=JSON.parse(c)),n(13,L),N=!0,console.log("✔","errorsJson json parced"),ot()),"/st/config.json"===c&&(h=!0),"/end/config.json"===c){h=!1;var s=Q.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;kt(e)&&(n(8,m=JSON.parse(e)),n(8,m),$=!0,console.log("✔","configJson parced"),ot())}}if("/st/widgets.json"===c&&(w=!0),"/end/widgets.json"===c){w=!1;s=Z.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;kt(e)&&(n(9,b=JSON.parse(e)),n(9,b),x=!0,console.log("✔","widgetsJson parced"),ot())}}if("/st/items.json"===c&&(y=!0),"/end/items.json"===c){y=!1;s=G.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;kt(e)&&(n(10,v=JSON.parse(e)),n(10,v),k=!0,console.log("✔","itemsJson parced"),ot())}}if("/st/layout.json"===c&&(J=!0),"/end/layout.json"===c){J=!1;s=V.getBlob();let e=new FileReader;e.readAsText(s),e.onload=()=>{let s=e.result;kt(s)&&(n(11,_=JSON.parse(s)),n(11,_),$t(),j=!0,console.log("✔","layoutJson parced",t),ot())}}if("/st/settings.json"===c&&(T=!0),"/end/settings.json"===c){T=!1;s=X.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;kt(e)&&(n(12,S=JSON.parse(e)),n(12,S),$t(),O=!0,console.log("✔","settingsJson parced"),ot())}}}}var l,r,o;e.data instanceof Blob&&t===F&&(h&&Q.append(e.data),w&&Z.append(e.data),y&&G.append(e.data),J&&V.append(e.data),T&&X.append(e.data))})),I[t].addEventListener("close",(n=>{console.log("[e]",e,"connection closed"),nt(t,!1)})),I[t].addEventListener("error",(function(n){console.log("[e]",e,"connection error"),nt(t,!1)}))}else console.log("[e]","socket not exist")}function ot(t){"/|"===K&&j&&P&&(dt(),console.log("✔✔","dashboard data parced"),function(t){for(const[e,s]of Object.entries(t))for(let t=0;t<_.length;t++){let l=_[t].topic;if(l=l.substring(l.lastIndexOf("/")+1,l.length),e===l){console.log("[i]","value "+l+" updated"),n(11,_[t].status=s,_);break}}}(H),$t(),n(3,u=!0)),"/config|"===K&&k&&x&&$&&O&&(dt(),console.log("✔✔","config data parced"),n(4,d=!0)),"/connection|"===K&&M&&O&&N&&(dt(),console.log("✔✔","connection data parced"),n(5,f=!0)),"/list|"===K&&D&&(dt(),console.log("✔✔","list data parced"),n(6,p=!0)),"/system|"===K&&N&&(dt(),console.log("✔✔","system data parced"),n(7,g=!0))}function ct(){gt(F,"/tuoyal|"+JSON.stringify(function(){let t=[];for(let e=0;e5?(!function(t,e,n,s,l){for(let r=0;r5?gt(F,"/sgnittes|"+JSON.stringify(S)):window.alert("Ошибка"),ut(),gt(F,"/mqtt|")}function ut(){n(8,m=[]),Q.clear(),n(9,b=[]),Z.clear(),n(10,v=[]),G.clear(),n(11,_=[]),V.clear(),n(12,S={}),X.clear(),n(13,L={}),n(3,u=!1),n(4,d=!1),n(5,f=!1),n(6,p=!1),n(7,g=!1),dt(),console.log("[i]","all app data cleared")}function dt(){$=!1,x=!1,k=!1,j=!1,O=!1,N=!1,M=!1,P=!1,D=!1}function ft(t,e,n){let s=e+" "+n;console.log("[i]","send to ws msg:",s),gt(t,s)}function pt(){setTimeout(pt,2e4),console.log("[i]","----timer tick----"),W||B.forEach((t=>{!function(t){let e=!1;return B.forEach((n=>{t===n.ws&&(e=n.status)})),e}(t.ws)?(st(t.ws),rt(t.ws)):gt(t.ws,"/tst|")})),W=!1}function gt(t,e){I[t]&&1===I[t].readyState?(I[t].send(e),console.log("[i]",lt(t),t,"msg send success",e)):console.log("[e]",lt(t),t,"msg not send",e)}function mt(t){B.forEach((e=>{e.status&>(e.ws,t)}))}function ht(){n(2,a=[]);Array.from(new Set(Array.from(_,(({page:t})=>t)))).forEach((function(t,e,s){n(2,a=[...a,JSON.parse(JSON.stringify({page:t}))])})),a.sort((function(t,e){return t.pagee.page?1:0}))}function $t(){ht(),n(11,_)}function wt(){vt(F),n(16,R=z.status)}function xt(){wt(),ut(),tt(),console.log("[i]","user selected device:",z.name),z.ip===c&&console.log("[i]","user selected original device",z.name)}function vt(t){for(let e=0;e{console.log("[i]","mounted"),wt(),i=!0,et(),pt(),ht()}));return[l,r,a,u,d,f,p,g,m,b,v,_,S,L,E,B,R,F,U,jt,ct,it,at,ft,mt,xt,yt,_t,Jt,St,Ot,function(){F=q(this),n(17,F),n(15,B)},()=>xt(),function(){l=this.checked,n(0,l)},()=>_t(),(t,e,n)=>ft(t,e,n),()=>ct(),()=>St(),()=>Jt(),()=>it(),()=>at(),()=>yt(),t=>mt(t),()=>St(),t=>Ot(t)]}return new class extends lt{constructor(t){super(),st(this,t,Rn,Bn,r,{},null,[-1,-1,-1,-1])}}({target:document.body,props:{name:"world"}})}(); +var app=function(){"use strict";function t(){}function e(t){return t()}function n(){return Object.create(null)}function s(t){t.forEach(e)}function l(t){return"function"==typeof t}function r(t,e){return t!=t?e==e:t!==e||t&&"object"==typeof t||"function"==typeof t}function o(e,n,s){e.$$.on_destroy.push(function(e,...n){if(null==e)return t;const s=e.subscribe(...n);return s.unsubscribe?()=>s.unsubscribe():s}(n,s))}function c(t,e,n,s){if(t){const l=i(t,e,n,s);return t[0](l)}}function i(t,e,n,s){return t[1]&&s?function(t,e){for(const n in e)t[n]=e[n];return t}(n.ctx.slice(),t[1](s(e))):n.ctx}function a(t,e,n,s){if(t[2]&&s){const l=t[2](s(n));if(void 0===e.dirty)return l;if("object"==typeof l){const t=[],n=Math.max(e.dirty.length,l.length);for(let s=0;s32){const e=[],n=t.ctx.length/32;for(let t=0;tt.removeEventListener(e,n,s)}function y(t,e,n){null==n?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function k(t){return""===t?null:+t}function _(t,e){e=""+e,t.wholeText!==e&&(t.data=e)}function J(t,e){t.value=null==e?"":e}function j(t,e){for(let n=0;n{Y.delete(t),s&&(n&&t.d(1),s())})),t.o(e)}}function X(t,e,n){const s=t.$$.props[e];void 0!==s&&(t.$$.bound[s]=n,n(t.$$.ctx[s]))}function tt(t){t&&t.c()}function et(t,n,r,o){const{fragment:c,on_mount:i,on_destroy:a,after_update:u}=t.$$;c&&c.m(n,r),o||I((()=>{const n=i.map(e).filter(l);a?a.push(...n):s(n),t.$$.on_mount=[]})),u.forEach(I)}function nt(t,e){const n=t.$$;null!==n.fragment&&(s(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function st(e,l,r,o,c,i,a,u=[-1]){const d=S;T(e);const f=e.$$={fragment:null,ctx:null,props:i,update:t,not_equal:c,bound:n(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(l.context||(d?d.$$.context:[])),callbacks:n(),dirty:u,skip_bound:!1,root:l.target||d.$$.root};a&&a(f.root);let p=!1;if(f.ctx=r?r(e,l.props||{},((t,n,...s)=>{const l=s.length?s[0]:n;return f.ctx&&c(f.ctx[t],f.ctx[t]=l)&&(!f.skip_bound&&f.bound[t]&&f.bound[t](l),p&&function(t,e){-1===t.$$.dirty[0]&&(O.push(t),D(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const t=n.indexOf(e);-1!==t&&n.splice(t,1)}}$set(t){var e;this.$$set&&(e=t,0!==Object.keys(e).length)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const rt=[];function ot(e,n=t){let s;const l=new Set;function o(t){if(r(e,t)&&(e=t,s)){const t=!rt.length;for(const t of l)t[1](),rt.push(t,e);if(t){for(let t=0;t{l.delete(i),0===l.size&&(s(),s=null)}}}}function ct(t,e=!1){return(t=t.slice(t.startsWith("/#")?2:0,t.endsWith("/*")?-2:void 0)).startsWith("/")||(t="/"+t),"/"===t&&(t=""),e&&!t.endsWith("/")&&(t+="/"),t}function it(t,e,n){if(""===n)return t;if("/"===n[0])return n;let s=t=>t.split("/").filter((t=>""!==t)),l=s(t);return"/"+(e?s(e):[]).map(((t,e)=>l[e])).join("/")+"/"+n}function at(t,e,n,s){let l=[e,"data-"+e].reduce(((e,s)=>{let l=t.getAttribute(s);return n&&t.removeAttribute(s),null===l?e:l}),!1);return!s&&""===l||(l||s||!1)}function ut(t){let e=t.split("&").map((t=>t.split("="))).reduce(((t,e)=>{let n=e[0];if(!n)return t;let s=!(e.length>1)||e[e.length-1];return"string"==typeof s&&s.includes(",")&&(s=s.split(",")),void 0===t[n]?t[n]=[s]:t[n].push(s),t}),{});return Object.entries(e).reduce(((t,e)=>(t[e[0]]=e[1].length>1?e[1]:e[1][0],t)),{})}var dt,ft,pt={HISTORY:1,HASH:2,MEMORY:3,OFF:4,run:function(t,e,n,s){return 1===t?e&&e():2===t?n&&n():s&&s()},getDeafault:function(){return window&&"srcdoc"!==window.location.pathname?1:3}},gt=function(){let t,e=pt.getDeafault(),n=n=>t&&t(mt(e));function s(t){t&&(e=t),window.onhashchange=window.onpopstate=ft=null,e!==pt.OFF&&pt.run(e,(t=>window.onpopstate=n),(t=>window.onhashchange=n))&&n()}return{mode:t=>s(t),get:t=>mt(e),go(t,s){(function(t,e,n){let s=t=>history[n?"replaceState":"pushState"]({},"",t);pt.run(t,(t=>s(e)),(t=>s(`#${e}`)),(t=>ft=e))})(e,t,s),n()},start(e){t=e,s()},stop(){t=null,s(pt.OFF)}}}();function mt(t){let e=dt,n=dt=pt.run(t,(t=>window.location.pathname+window.location.search),(t=>String(window.location.hash.slice(1)||"/")),(t=>ft||"/")),s=n.match(/^([^?#]+)(?:\?([^#]+))?(?:\#(.+))?$/);return{url:n,from:e,path:s[1]||"",query:ut(s[2]||""),hash:s[3]||""}}function ht(t){let e=L("tinro");e&&(e.exact||e.fallback)&&function(t){throw new Error("[Tinro] "+t)}(`${t.fallback?"":``} can't be inside ${e.fallback?"":` with exact path`}`);let n=t.fallback?"fallbacks":"childs",s=ot({}),l={router:{},exact:!1,pattern:null,meta:{},parent:e,fallback:t.fallback,redirect:!1,firstmatch:!1,breadcrumb:null,matched:!1,childs:new Set,activeChilds:new Set,fallbacks:new Set,update(t){l.exact=!t.path.endsWith("/*"),l.pattern=ct(`${l.parent&&l.parent.pattern||""}${t.path}`),l.redirect=t.redirect,l.firstmatch=t.firstmatch,l.breadcrumb=t.breadcrumb,l.match()},register:()=>{if(l.parent)return l.parent[n].add(l),()=>{l.parent[n].delete(l),l.router.un&&l.router.un()}},show:()=>{t.onShow(),!l.fallback&&l.parent&&l.parent.activeChilds.add(l)},hide:()=>{t.onHide(),!l.fallback&&l.parent&&l.parent.activeChilds.delete(l)},match:async()=>{l.matched=!1;let{path:e,url:n,from:r,query:o}=l.router,c=function(t,e){t=ct(t,!0),e=ct(e,!0);let n=[],s={},l=!0,r=t.split("/").map((t=>t.startsWith(":")?(n.push(t.slice(1)),"([^\\/]+)"):t)).join("\\/"),o=e.match(new RegExp(`^${r}$`));return o||(l=!1,o=e.match(new RegExp(`^${r}`))),o?(n.forEach(((t,e)=>s[t]=o[e+1])),{exact:l,params:s,part:o[0].slice(0,-1)}):null}(l.pattern,e);if(!l.fallback&&c&&l.redirect&&(!l.exact||l.exact&&c.exact)){await B();let t=it(e,l.parent&&l.parent.pattern,l.redirect);return bt.goto(t,!0)}if(l.meta=c&&{from:r,url:n,query:o,match:c.part,pattern:l.pattern,breadcrumbs:l.parent&&l.parent.meta&&l.parent.meta.breadcrumbs.slice()||[],params:c.params,subscribe:s.subscribe},l.breadcrumb&&l.meta&&l.meta.breadcrumbs.push({name:l.breadcrumb,path:c.part}),s.set(l.meta),!c||l.fallback||!(!l.exact||l.exact&&c.exact)||l.parent&&l.parent.firstmatch&&l.parent.matched?l.hide():(t.onMeta(l.meta),l.parent&&(l.parent.matched=!0),l.show()),await B(),c&&!l.fallback&&(l.childs.size>0&&0==l.activeChilds.size||0==l.childs.size&&l.fallbacks.size>0)){let t=l;for(;0==t.fallbacks.size;)if(t=t.parent,!t)return;t&&t.fallbacks.forEach((t=>{if(t.redirect){let e=it("/",t.parent&&t.parent.pattern,t.redirect);bt.goto(e,!0)}else t.show()}))}}};return r="tinro",o=l,E().$$.context.set(r,o),C((()=>l.register())),l.router.un=bt.subscribe((t=>{l.router.path=t.path,l.router.url=t.url,l.router.query=t.query,l.router.from=t.from,null!==l.pattern&&l.match()})),l;var r,o}function $t(){return L("tinro").meta}var bt=function(){let{subscribe:t}=ot(gt.get(),(t=>{gt.start(t);let e=function(t){let e=e=>{let n=e.target.closest("a[href]"),s=n&&at(n,"target",!1,"_self"),l=n&&at(n,"tinro-ignore"),r=e.ctrlKey||e.metaKey||e.altKey||e.shiftKey;if("_self"==s&&!l&&!r&&n){let s=n.getAttribute("href").replace(/^\/#/,"");/^\/\/|^[a-zA-Z]+:/.test(s)||(e.preventDefault(),t(s.startsWith("/")?s:n.href.replace(window.location.origin,"")))}};return addEventListener("click",e),()=>removeEventListener("click",e)}(gt.go);return()=>{gt.stop(),e()}}));return{subscribe:t,goto:gt.go,params:wt,meta:$t,useHashNavigation:t=>gt.mode(t?pt.HASH:pt.HISTORY),mode:{hash:()=>gt.mode(pt.HASH),history:()=>gt.mode(pt.HISTORY),memory:()=>gt.mode(pt.MEMORY)}}}();function wt(){return L("tinro").meta.params}const xt=t=>({params:2&t,meta:4&t}),vt=t=>({params:t[1],meta:t[2]});function yt(t){let e;const n=t[9].default,s=c(n,t,t[8],vt);return{c(){s&&s.c()},m(t,n){s&&s.m(t,n),e=!0},p(t,l){s&&s.p&&(!e||262&l)&&u(s,n,t,t[8],e?a(n,t[8],l,xt):d(t[8]),vt)},i(t){e||(G(s,t),e=!0)},o(t){V(s,t),e=!1},d(t){s&&s.d(t)}}}function kt(t){let e,n,s=t[0]&&yt(t);return{c(){s&&s.c(),e=x()},m(t,l){s&&s.m(t,l),p(t,e,l),n=!0},p(t,[n]){t[0]?s?(s.p(t,n),1&n&&G(s,1)):(s=yt(t),s.c(),G(s,1),s.m(e.parentNode,e)):s&&(Q(),V(s,1,1,(()=>{s=null})),Z())},i(t){n||(G(s),n=!0)},o(t){V(s),n=!1},d(t){s&&s.d(t),t&&g(e)}}}function _t(t,e,n){let{$$slots:s={},$$scope:l}=e,{path:r="/*"}=e,{fallback:o=!1}=e,{redirect:c=!1}=e,{firstmatch:i=!1}=e,{breadcrumb:a=null}=e,u=!1,d={},f={};const p=ht({fallback:o,onShow(){n(0,u=!0)},onHide(){n(0,u=!1)},onMeta(t){n(2,f=t),n(1,d=f.params)}});return t.$$set=t=>{"path"in t&&n(3,r=t.path),"fallback"in t&&n(4,o=t.fallback),"redirect"in t&&n(5,c=t.redirect),"firstmatch"in t&&n(6,i=t.firstmatch),"breadcrumb"in t&&n(7,a=t.breadcrumb),"$$scope"in t&&n(8,l=t.$$scope)},t.$$.update=()=>{232&t.$$.dirty&&p.update({path:r,redirect:c,firstmatch:i,breadcrumb:a})},[u,d,f,r,o,c,i,a,l,s]}class Jt extends lt{constructor(t){super(),st(this,t,_t,kt,r,{path:3,fallback:4,redirect:5,firstmatch:6,breadcrumb:7})}}function jt(e){let n,s,r,o,c;return{c(){n=$("svg"),s=$("line"),r=$("line"),y(s,"x1","18"),y(s,"y1","6"),y(s,"x2","6"),y(s,"y2","18"),y(r,"x1","6"),y(r,"y1","6"),y(r,"x2","18"),y(r,"y2","18"),y(n,"class","h-6 w-6 text-red-400 cursor-pointer"),y(n,"viewBox","0 -2 24 24"),y(n,"fill","none"),y(n,"stroke","currentColor"),y(n,"stroke-width","2"),y(n,"stroke-linecap","round"),y(n,"stroke-linejoin","round")},m(t,i){p(t,n,i),f(n,s),f(n,r),o||(c=v(n,"click",(function(){l(e[0]())&&e[0]().apply(this,arguments)})),o=!0)},p(t,[n]){e=t},i:t,o:t,d(t){t&&g(n),o=!1,c()}}}function qt(t,e,n){let{click:s=(()=>{})}=e;return t.$$set=t=>{"click"in t&&n(0,s=t.click)},[s]}class St extends lt{constructor(t){super(),st(this,t,qt,jt,r,{click:0})}}function Tt(t){let e,n,s,l,r,o,c,i;return c=new St({props:{click:t[5]}}),{c(){e=h("div"),n=h("div"),s=h("h1"),l=b(t[0]),r=w(),o=h("div"),tt(c.$$.fragment),y(s,"class","alm-hdr"),y(n,"class","w-11/12"),y(o,"class","flex justify-end w-1/12"),y(e,"class","flex items-center")},m(t,a){p(t,e,a),f(e,n),f(n,s),f(s,l),f(e,r),f(e,o),et(c,o,null),i=!0},p(t,e){(!i||1&e)&&_(l,t[0]);const n={};4&e&&(n.click=t[5]),c.$set(n)},i(t){i||(G(c.$$.fragment,t),i=!0)},o(t){V(c.$$.fragment,t),i=!1},d(t){t&&g(e),nt(c)}}}function Et(e){let n,s;return{c(){n=h("h1"),s=b(e[0]),y(n,"class","alm-hdr")},m(t,e){p(t,n,e),f(n,s)},p(t,e){1&e&&_(s,t[0])},i:t,o:t,d(t){t&&g(n)}}}function Ct(t){let e,n,s,l,r;const o=[Et,Tt],i=[];function m(t,e){return t[0]&&!t[1]?0:t[0]&&t[1]?1:-1}~(n=m(t))&&(s=i[n]=o[n](t));const $=t[4].default,b=c($,t,t[3],null);return{c(){e=h("div"),s&&s.c(),l=w(),b&&b.c(),y(e,"class","alm")},m(t,s){p(t,e,s),~n&&i[n].m(e,null),f(e,l),b&&b.m(e,null),r=!0},p(t,[c]){let f=n;n=m(t),n===f?~n&&i[n].p(t,c):(s&&(Q(),V(i[f],1,1,(()=>{i[f]=null})),Z()),~n?(s=i[n],s?s.p(t,c):(s=i[n]=o[n](t),s.c()),G(s,1),s.m(e,l)):s=null),b&&b.p&&(!r||8&c)&&u(b,$,t,t[3],r?a($,t[3],c,null):d(t[3]),null)},i(t){r||(G(s),G(b,t),r=!0)},o(t){V(s),V(b,t),r=!1},d(t){t&&g(e),~n&&i[n].d(),b&&b.d(t)}}}function Lt(t,e,n){let{$$slots:s={},$$scope:l}=e,{title:r=!1}=e,{cross:o=!1}=e,{close:c=(()=>{})}=e;return t.$$set=t=>{"title"in t&&n(0,r=t.title),"cross"in t&&n(1,o=t.cross),"close"in t&&n(2,c=t.close),"$$scope"in t&&n(3,l=t.$$scope)},[r,o,c,l,s,()=>c()]}class Ot extends lt{constructor(t){super(),st(this,t,Lt,Ct,r,{title:0,cross:1,close:2})}}function Mt(e){let n;return{c(){n=h("div"),n.innerHTML=' \n
',y(n,"class","z-50")},m(t,e){p(t,n,e)},p:t,i:t,o:t,d(t){t&&g(n)}}}class Nt extends lt{constructor(t){super(),st(this,t,null,Mt,r,{})}}function Ht(t){let e,n;return{c(){e=h("h1"),n=b(t[0]),y(e,"class","crd-hdr")},m(t,s){p(t,e,s),f(e,n)},p(t,e){1&e&&_(n,t[0])},d(t){t&&g(e)}}}function Pt(t){let e,n,s,l=t[0]&&Ht(t);const r=t[2].default,o=c(r,t,t[1],null);return{c(){e=h("div"),l&&l.c(),n=w(),o&&o.c(),y(e,"class","crd")},m(t,r){p(t,e,r),l&&l.m(e,null),f(e,n),o&&o.m(e,null),s=!0},p(t,[c]){t[0]?l?l.p(t,c):(l=Ht(t),l.c(),l.m(e,n)):l&&(l.d(1),l=null),o&&o.p&&(!s||2&c)&&u(o,r,t,t[1],s?a(r,t[1],c,null):d(t[1]),null)},i(t){s||(G(o,t),s=!0)},o(t){V(o,t),s=!1},d(t){t&&g(e),l&&l.d(),o&&o.d(t)}}}function At(t,e,n){let{$$slots:s={},$$scope:l}=e,{title:r=!1}=e;return t.$$set=t=>{"title"in t&&n(0,r=t.title),"$$scope"in t&&n(1,l=t.$$scope)},[r,l,s]}class Dt extends lt{constructor(t){super(),st(this,t,At,Pt,r,{title:0})}}function Bt(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"step","0.1"),y(e,"type","number")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[3]),v(e,"input",t[4])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&k(e.value)!==t[0].status&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function It(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"type","text")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[5]),v(e,"input",t[6])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&e.value!==t[0].status&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function zt(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"type","date")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[7]),v(e,"input",t[8])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function Rt(t){let e,n,l,r;return{c(){e=h("input"),y(e,"class",n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500"),y(e,"type","time")},m(n,s){p(n,e,s),J(e,t[0].status),l||(r=[v(e,"change",t[9]),v(e,"input",t[10])],l=!0)},p(t,s){1&s&&n!==(n=1==t[0].send?"ipt-rnd text-right border-red-500":"ipt-rnd text-right focus:border-indigo-500")&&y(e,"class",n),1&s&&J(e,t[0].status)},d(t){t&&g(e),l=!1,s(r)}}}function Ft(e){let n,s,l,r,o,c,i,a,u,d=(e[0].descr?e[0].descr:"")+"",m="number"==e[0].type&&Bt(e),$="text"==e[0].type&&It(e),x="date"==e[0].type&&zt(e),v="time"==e[0].type&&Rt(e);return{c(){n=h("div"),s=h("div"),l=h("label"),r=b(d),o=w(),c=h("div"),m&&m.c(),i=w(),$&&$.c(),a=w(),x&&x.c(),u=w(),v&&v.c(),y(l,"class","wgt-dscr-stl"),y(s,"class","w-2/3"),y(c,"class","flex justify-end w-1/3"),y(n,"class","crd-itm-psn")},m(t,e){p(t,n,e),f(n,s),f(s,l),f(l,r),f(n,o),f(n,c),m&&m.m(c,null),f(c,i),$&&$.m(c,null),f(c,a),x&&x.m(c,null),f(c,u),v&&v.m(c,null)},p(t,[e]){1&e&&d!==(d=(t[0].descr?t[0].descr:"")+"")&&_(r,d),"number"==t[0].type?m?m.p(t,e):(m=Bt(t),m.c(),m.m(c,i)):m&&(m.d(1),m=null),"text"==t[0].type?$?$.p(t,e):($=It(t),$.c(),$.m(c,a)):$&&($.d(1),$=null),"date"==t[0].type?x?x.p(t,e):(x=zt(t),x.c(),x.m(c,u)):x&&(x.d(1),x=null),"time"==t[0].type?v?v.p(t,e):(v=Rt(t),v.c(),v.m(c,null)):v&&(v.d(1),v=null)},i:t,o:t,d(t){t&&g(n),m&&m.d(),$&&$.d(),x&&x.d(),v&&v.d()}}}function Wt(t,e,n){let{widget:s}=e,{wsPush:l=((t,e,n)=>{})}=e,{value:r}=e;r=r;return t.$$set=t=>{"widget"in t&&n(0,s=t.widget),"wsPush"in t&&n(1,l=t.wsPush),"value"in t&&n(2,r=t.value)},[s,l,r,()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=k(this.value),n(0,s)},()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)},()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)},()=>(n(0,s.send=!0,s),l(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)}]}class Ut extends lt{constructor(t){super(),st(this,t,Wt,Ft,r,{widget:0,wsPush:1,value:2})}}function Yt(e){let n,l,r,o,c,i,a,u,d,m,$,x,k,j,q,S,T,E,C=(e[0].descr?e[0].descr:"")+"";return{c(){n=h("div"),l=h("div"),r=h("label"),o=b(C),c=w(),i=h("div"),a=h("label"),u=h("div"),d=h("input"),$=w(),x=h("div"),k=w(),j=h("div"),y(r,"class","wgt-dscr-stl"),y(l,"class","w-2/3"),y(d,"id",m=e[0].topic),y(d,"type","checkbox"),y(d,"class","sr-only"),y(x,"class","block bg-gray-600 w-10 h-6 rounded-full"),y(j,"class",q="dot "+(1==e[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition"),y(u,"class","relative"),y(a,"for",S=e[0].topic),y(a,"class","items-center cursor-pointer"),y(i,"class","flex justify-end w-1/3"),y(n,"class","crd-itm-psn")},m(t,s){p(t,n,s),f(n,l),f(l,r),f(r,o),f(n,c),f(n,i),f(i,a),f(a,u),f(u,d),J(d,e[0].status),f(u,$),f(u,x),f(u,k),f(u,j),T||(E=[v(d,"change",e[3]),v(d,"change",e[4])],T=!0)},p(t,[e]){1&e&&C!==(C=(t[0].descr?t[0].descr:"")+"")&&_(o,C),1&e&&m!==(m=t[0].topic)&&y(d,"id",m),1&e&&J(d,t[0].status),1&e&&q!==(q="dot "+(1==t[0].send?"bg-red-400":"bg-white")+" absolute left-1 top-1 w-4 h-4 rounded-full transition")&&y(j,"class",q),1&e&&S!==(S=t[0].topic)&&y(a,"for",S)},i:t,o:t,d(t){t&&g(n),T=!1,s(E)}}}function Kt(t,e,n){let{widget:s}=e,{value:l}=e;l=l;let{wsPush:r=((t,e,n)=>{})}=e;return t.$$set=t=>{"widget"in t&&n(0,s=t.widget),"value"in t&&n(2,l=t.value),"wsPush"in t&&n(1,r=t.wsPush)},[s,r,l,()=>(n(0,s.send=!0,s),r(s.ws,s.topic,s.status)),function(){s.status=this.value,n(0,s)}]}class Qt extends lt{constructor(t){super(),st(this,t,Kt,Yt,r,{widget:0,value:2,wsPush:1})}}function Zt(e){let n,s,l,r,o,c,i,a,u,d,m,$,x=(e[0].descr?e[0].descr:"")+"",v=(e[0].status?e[0].status:"")+"",k=(e[0].after?e[0].after:"")+"";return{c(){n=h("div"),s=h("div"),l=h("label"),r=b(x),o=w(),c=h("div"),i=h("label"),a=b(v),u=w(),d=h("label"),m=b(" "),$=b(k),y(l,"class","wgt-dscr-stl"),y(s,"class","w-2/3"),y(i,"class","wgt-adt-stl"),y(d,"class","wgt-adt-stl"),y(c,"class","flex justify-end w-1/3"),y(n,"class","crd-itm-psn")},m(t,e){p(t,n,e),f(n,s),f(s,l),f(l,r),f(n,o),f(n,c),f(c,i),f(i,a),f(c,u),f(c,d),f(d,m),f(d,$)},p(t,[e]){1&e&&x!==(x=(t[0].descr?t[0].descr:"")+"")&&_(r,x),1&e&&v!==(v=(t[0].status?t[0].status:"")+"")&&_(a,v),1&e&&k!==(k=(t[0].after?t[0].after:"")+"")&&_($,k)},i:t,o:t,d(t){t&&g(n)}}}function Gt(t,e,n){let{widget:s}=e,{value:l}=e;return l=l,t.$$set=t=>{"widget"in t&&n(0,s=t.widget),"value"in t&&n(1,l=t.value)},[s,l]}class Vt extends lt{constructor(t){super(),st(this,t,Gt,Zt,r,{widget:0,value:1})}}function Xt(t,e,n){const s=t.slice();return s[9]=e[n],s[11]=n,s}function te(t,e,n){const s=t.slice();return s[12]=e[n],s[13]=e,s[11]=n,s}function ee(e){let n,s;return n=new Ot({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function ne(t){let e,n,s,l=t[0]===[]&&se(),r=t[1],o=[];for(let e=0;eV(o[t],1,1,(()=>{o[t]=null}));return{c(){e=h("div"),l&&l.c(),n=w();for(let t=0;t{l=null})),Z()),11&s){let n;for(r=t[1],n=0;n{r=null})),Z()),"toggle"===t[12].widget?o?(o.p(t,l),1&l&&G(o,1)):(o=oe(t),o.c(),G(o,1),o.m(n.parentNode,n)):o&&(Q(),V(o,1,1,(()=>{o=null})),Z()),"anydata"===t[12].widget?c?(c.p(t,l),1&l&&G(c,1)):(c=ce(t),c.c(),G(c,1),c.m(s.parentNode,s)):c&&(Q(),V(c,1,1,(()=>{c=null})),Z())},i(t){l||(G(r),G(o),G(c),l=!0)},o(t){V(r),V(o),V(c),l=!1},d(t){r&&r.d(t),t&&g(e),o&&o.d(t),t&&g(n),c&&c.d(t),t&&g(s)}}}function re(t){let e,n,s;function l(e){t[5](e,t[12])}let r={widget:t[12],wsPush:t[4]};return void 0!==t[12].status&&(r.value=t[12].status),e=new Ut({props:r}),M.push((()=>X(e,"value",l))),{c(){tt(e.$$.fragment)},m(t,n){et(e,t,n),s=!0},p(s,l){t=s;const r={};1&l&&(r.widget=t[12]),8&l&&(r.wsPush=t[4]),!n&&1&l&&(n=!0,r.value=t[12].status,z((()=>n=!1))),e.$set(r)},i(t){s||(G(e.$$.fragment,t),s=!0)},o(t){V(e.$$.fragment,t),s=!1},d(t){nt(e,t)}}}function oe(t){let e,n,s;function l(e){t[7](e,t[12])}let r={widget:t[12],wsPush:t[6]};return void 0!==t[12].status&&(r.value=t[12].status),e=new Qt({props:r}),M.push((()=>X(e,"value",l))),{c(){tt(e.$$.fragment)},m(t,n){et(e,t,n),s=!0},p(s,l){t=s;const r={};1&l&&(r.widget=t[12]),8&l&&(r.wsPush=t[6]),!n&&1&l&&(n=!0,r.value=t[12].status,z((()=>n=!1))),e.$set(r)},i(t){s||(G(e.$$.fragment,t),s=!0)},o(t){V(e.$$.fragment,t),s=!1},d(t){nt(e,t)}}}function ce(t){let e,n,s;function l(e){t[8](e,t[12])}let r={widget:t[12]};return void 0!==t[12].status&&(r.value=t[12].status),e=new Vt({props:r}),M.push((()=>X(e,"value",l))),{c(){tt(e.$$.fragment)},m(t,n){et(e,t,n),s=!0},p(s,l){t=s;const r={};1&l&&(r.widget=t[12]),!n&&1&l&&(n=!0,r.value=t[12].status,z((()=>n=!1))),e.$set(r)},i(t){s||(G(e.$$.fragment,t),s=!0)},o(t){V(e.$$.fragment,t),s=!1},d(t){nt(e,t)}}}function ie(t){let e,n,s=t[12].page===t[9].page&&le(t);return{c(){s&&s.c(),e=x()},m(t,l){s&&s.m(t,l),p(t,e,l),n=!0},p(t,n){t[12].page===t[9].page?s?(s.p(t,n),3&n&&G(s,1)):(s=le(t),s.c(),G(s,1),s.m(e.parentNode,e)):s&&(Q(),V(s,1,1,(()=>{s=null})),Z())},i(t){n||(G(s),n=!0)},o(t){V(s),n=!1},d(t){s&&s.d(t),t&&g(e)}}}function ae(t){let e,n,s=t[0],l=[];for(let e=0;eV(l[t],1,1,(()=>{l[t]=null}));return{c(){for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function fe(t,e,n){let{layoutJson:s}=e,{pages:l}=e,{show:r}=e,{wsPush:o=((t,e,n)=>{})}=e;return t.$$set=t=>{"layoutJson"in t&&n(0,s=t.layoutJson),"pages"in t&&n(1,l=t.pages),"show"in t&&n(2,r=t.show),"wsPush"in t&&n(3,o=t.wsPush)},[s,l,r,o,(t,e,n)=>o(t,e,n),function(e,l){t.$$.not_equal(l.status,e)&&(l.status=e,n(0,s))},(t,e,n)=>o(t,e,n),function(e,l){t.$$.not_equal(l.status,e)&&(l.status=e,n(0,s))},function(e,l){t.$$.not_equal(l.status,e)&&(l.status=e,n(0,s))}]}class pe extends lt{constructor(t){super(),st(this,t,fe,de,r,{layoutJson:0,pages:1,show:2,wsPush:3})}}function ge(e){let n,s,r,o,c,i,a;return{c(){n=$("svg"),s=$("path"),r=$("circle"),o=$("circle"),c=$("circle"),y(s,"stroke","none"),y(s,"d","M0 0h24v24H0z"),y(r,"cx","5"),y(r,"cy","12"),y(r,"r","1"),y(o,"cx","12"),y(o,"cy","12"),y(o,"r","1"),y(c,"cx","19"),y(c,"cy","12"),y(c,"r","1"),y(n,"class","h-6 w-6 text-green-400 cursor-pointer"),y(n,"width","24"),y(n,"height","24"),y(n,"viewBox","0 -2 24 24"),y(n,"stroke-width","2"),y(n,"stroke","currentColor"),y(n,"fill","none"),y(n,"stroke-linecap","round"),y(n,"stroke-linejoin","round")},m(t,u){p(t,n,u),f(n,s),f(n,r),f(n,o),f(n,c),i||(a=v(n,"click",(function(){l(e[0]())&&e[0]().apply(this,arguments)})),i=!0)},p(t,[n]){e=t},i:t,o:t,d(t){t&&g(n),i=!1,a()}}}function me(t,e,n){let{click:s=(()=>{})}=e;return t.$$set=t=>{"click"in t&&n(0,s=t.click)},[s]}class he extends lt{constructor(t){super(),st(this,t,me,ge,r,{click:0})}}function $e(t,e,n){const s=t.slice();return s[21]=e[n],s[22]=e,s[23]=n,s}function be(t,e,n){const s=t.slice();return s[24]=e[n][0],s[25]=e[n][1],s[26]=e,s[27]=n,s}function we(t,e,n){const s=t.slice();return s[28]=e[n],s}function xe(t,e,n){const s=t.slice();return s[31]=e[n],s}function ve(e){let n,s;return n=new Ot({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function ye(t){let e,n,s;return n=new Dt({props:{$$slots:{default:[Ce]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),y(e,"class","grd-1col1")},m(t,l){p(t,e,l),et(n,e,null),s=!0},p(t,e){const s={};247&e[0]|8&e[1]&&(s.$$scope={dirty:e,ctx:t}),n.$set(s)},i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){t&&g(e),nt(n)}}}function ke(t){let e,n;return{c(){e=h("optgroup"),y(e,"label",n=t[31].header)},m(t,n){p(t,e,n)},p(t,s){4&s[0]&&n!==(n=t[31].header)&&y(e,"label",n)},d(t){t&&g(e)}}}function _e(t){let e,n,s,l,r=t[31].name+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[31].num,e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){4&s[0]&&r!==(r=t[31].name+"")&&_(n,r),4&s[0]&&l!==(l=t[31].num)&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function Je(t){let e,n,s=t[31].header&&ke(t),l=!t[31].header&&_e(t);return{c(){s&&s.c(),e=x(),l&&l.c(),n=x()},m(t,r){s&&s.m(t,r),p(t,e,r),l&&l.m(t,r),p(t,n,r)},p(t,r){t[31].header?s?s.p(t,r):(s=ke(t),s.c(),s.m(e.parentNode,e)):s&&(s.d(1),s=null),t[31].header?l&&(l.d(1),l=null):l?l.p(t,r):(l=_e(t),l.c(),l.m(n.parentNode,n))},d(t){s&&s.d(t),t&&g(e),l&&l.d(t),t&&g(n)}}}function je(t){let e,n,s,l,r=t[28].label+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[28].name,e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){2&s[0]&&r!==(r=t[28].label+"")&&_(n,r),2&s[0]&&l!==(l=t[28].name)&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function qe(t){let e,n=Object.entries(t[21]),s=[];for(let e=0;eV(C[t],1,1,(()=>{C[t]=null}));return{c(){e=h("div"),n=h("select");for(let t=0;tТип \n Id \n Виджет \n Вкладка \n Название \n \n ',u=w(),d=h("tbody");for(let t=0;tt[10].call(n))),o.__value="Выберите пресет",o.value=o.__value,y(r,"class","slct-lg"),y(e,"class","grd-2col2"),y(a,"class","bg-gray-100"),y(d,"class","bg-white"),y(i,"class","tbl"),y(b,"class","btn-lg mb-2"),y(k,"class","btn-lg mb-2")},m(s,g){p(s,e,g),f(e,n);for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function Oe(t,e,n){let{configJson:s}=e,{widgetsJson:l}=e,{itemsJson:r}=e,{show:o}=e,c=0,{saveConfig:i=(()=>{})}=e,{rebootEsp:a=(()=>{})}=e,u=!0;function d(){for(let t=0;t{"configJson"in t&&n(0,s=t.configJson),"widgetsJson"in t&&n(1,l=t.widgetsJson),"itemsJson"in t&&n(2,r=t.itemsJson),"show"in t&&n(3,o=t.show),"saveConfig"in t&&n(4,i=t.saveConfig),"rebootEsp"in t&&n(5,a=t.rebootEsp)},[s,l,r,o,i,a,c,u,d,f,function(){c=q(this),n(6,c),n(2,r)},()=>d(),function(t,e){t[e].id=this.value,n(0,s),n(1,l)},function(t,e){t[e].widget=q(this),n(0,s),n(1,l)},function(t,e){t[e].page=this.value,n(0,s),n(1,l)},function(t,e){t[e].descr=this.value,n(0,s),n(1,l)},()=>n(7,u=!u),t=>f(t),function(t,e,r){e[r][t]=this.value,n(0,s),n(1,l)},()=>i(),()=>a()]}class Me extends lt{constructor(t){super(),st(this,t,Oe,Le,r,{configJson:0,widgetsJson:1,itemsJson:2,show:3,saveConfig:4,rebootEsp:5},null,[-1,-1])}}function Ne(t,e,n){const s=t.slice();return s[22]=e[n][0],s[23]=e[n][1],s}function He(e){let n,s;return n=new Ot({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function Pe(t){let e,n,s,l,r,o,c,i;return n=new Dt({props:{title:"Подключение к WiFi",$$slots:{default:[Be]},$$scope:{ctx:t}}}),l=new Dt({props:{title:"Подключение к MQTT",$$slots:{default:[We]},$$scope:{ctx:t}}}),c=new Dt({props:{$$slots:{default:[Ue]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),s=w(),tt(l.$$.fragment),r=w(),o=h("div"),tt(c.$$.fragment),y(e,"class","grd-2col1"),y(o,"class","grd-1col1")},m(t,a){p(t,e,a),et(n,e,null),f(e,s),et(l,e,null),p(t,r,a),p(t,o,a),et(c,o,null),i=!0},p(t,e){const s={};67108919&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s);const r={};67108931&e&&(r.$$scope={dirty:e,ctx:t}),l.$set(r);const o={};67108992&e&&(o.$$scope={dirty:e,ctx:t}),c.$set(o)},i(t){i||(G(n.$$.fragment,t),G(l.$$.fragment,t),G(c.$$.fragment,t),i=!0)},o(t){V(n.$$.fragment,t),V(l.$$.fragment,t),V(c.$$.fragment,t),i=!1},d(t){t&&g(e),nt(n),nt(l),t&&g(r),t&&g(o),nt(c)}}}function Ae(t){let e,n,s,l,r=t[23]+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[23],e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){4&s&&r!==(r=t[23]+"")&&_(n,r),4&s&&l!==(l=t[23])&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function De(t){let e,n,s;return n=new Ot({props:{title:"Введен неправильный пароль"}}),{c(){e=h("div"),tt(n.$$.fragment),y(e,"class","grd-1col1")},m(t,l){p(t,e,l),et(n,e,null),s=!0},i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){t&&g(e),nt(n)}}}function Be(t){let e,n,l,r,o,c,i,a,u,d,$,b,x,k,_,q,S,T,E,C,L,O,M,N,H,P,A,D,B,z,R,F,W,U,Y,K=Object.entries(t[2]),X=[];for(let e=0;eНазвание устройства

',l=w(),r=h("div"),o=h("input"),c=w(),i=h("div"),a=h("div"),a.innerHTML='

Точка доступа

',u=w(),d=h("div"),$=h("input"),b=w(),x=h("div"),k=h("div"),k.innerHTML='

Пароль точки доступа

',_=w(),q=h("div"),S=h("input"),T=w(),E=h("div"),C=h("div"),C.innerHTML='

Название wifi сети

',L=w(),O=h("div"),M=h("select");for(let t=0;tПароль

',A=w(),D=h("div"),B=h("input"),z=w(),tt&&tt.c(),R=w(),F=h("button"),F.textContent="Сохранить",y(n,"class","w-4/6"),y(o,"class","ipt-rnd text-left focus:border-indigo-500"),y(o,"type","text"),y(r,"class","flex justify-end w-3/6"),y(e,"class","crd-itm-psn"),y(a,"class","w-4/6"),y($,"class","ipt-rnd text-left focus:border-indigo-500"),y($,"type","text"),y(d,"class","flex justify-end w-3/6"),y(i,"class","crd-itm-psn"),y(k,"class","w-4/6"),y(S,"class","ipt-rnd text-left focus:border-indigo-500"),y(S,"type","text"),y(q,"class","flex justify-end w-3/6"),y(x,"class","crd-itm-psn"),y(C,"class","w-4/6"),y(M,"class","ipt-rnd text-left focus:border-indigo-500"),void 0===t[0].routerssid&&I((()=>t[11].call(M))),y(O,"class","flex justify-end w-3/6"),y(E,"class","crd-itm-psn"),y(P,"class","w-4/6"),y(B,"class","ipt-rnd text-left focus:border-indigo-500"),y(B,"type","text"),y(D,"class","flex justify-end w-3/6"),y(H,"class","crd-itm-psn"),y(F,"class","btn-lg")},m(s,g){p(s,e,g),f(e,n),f(e,l),f(e,r),f(r,o),J(o,t[0].name),p(s,c,g),p(s,i,g),f(i,a),f(i,u),f(i,d),f(d,$),J($,t[0].apssid),p(s,b,g),p(s,x,g),f(x,k),f(x,_),f(x,q),f(q,S),J(S,t[0].appass),p(s,T,g),p(s,E,g),f(E,C),f(E,L),f(E,O),f(O,M);for(let t=0;t{tt=null})),Z())},i(t){W||(G(tt),W=!0)},o(t){V(tt),W=!1},d(t){t&&g(e),t&&g(c),t&&g(i),t&&g(b),t&&g(x),t&&g(T),t&&g(E),m(X,t),t&&g(N),t&&g(H),t&&g(z),tt&&tt.d(t),t&&g(R),t&&g(F),U=!1,s(Y)}}}function Ie(t){let e;return{c(){e=h("p"),e.textContent="Ошибка",y(e,"class","text-red-500 font-bold h-8 bg-red-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function ze(t){let e;return{c(){e=h("p"),e.textContent="Ожидание",y(e,"class","text-blue-500 font-bold h-8 bg-blue-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function Re(t){let e;return{c(){e=h("p"),e.textContent="Подключение",y(e,"class","text-yellow-500 font-bold h-8 bg-yellow-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function Fe(t){let e;return{c(){e=h("p"),e.textContent="Подключено",y(e,"class","text-green-500 font-bold h-8 bg-green-50 border-2 border-gray-200 rounded w-full text-center")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function We(t){let e,n,l,r,o,c,i,a,u,d,m,$,b,x,k,_,j,q,S,T,E,C,L,O,M,N,H,P,A,D,B,I,z,R,F,W,U,Y;function K(t,e){return"e5"===t[1].mqtt?Fe:"e13"===t[1].mqtt?Re:void 0===t[1].mqtt?ze:Ie}let Q=K(t),Z=Q(t);return{c(){e=h("div"),n=h("div"),n.innerHTML='

Состояние подключения

',l=w(),r=h("div"),Z.c(),o=w(),c=h("div"),i=h("div"),i.innerHTML='

Название сервера

',a=w(),u=h("div"),d=h("input"),m=w(),$=h("div"),b=h("div"),b.innerHTML='

Порт

',x=w(),k=h("div"),_=h("input"),j=w(),q=h("div"),S=h("div"),S.innerHTML='

Префикс

',T=w(),E=h("div"),C=h("input"),L=w(),O=h("div"),M=h("div"),M.innerHTML='

Имя пользователя

',N=w(),H=h("div"),P=h("input"),A=w(),D=h("div"),B=h("div"),B.innerHTML='

Пароль

',I=w(),z=h("div"),R=h("input"),F=w(),W=h("button"),W.textContent="Сохранить",y(n,"class","w-4/6"),y(r,"class","flex justify-center w-3/6 align-baseline text-sm sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words"),y(e,"class","crd-itm-psn"),y(i,"class","w-4/6"),y(d,"class","ipt-rnd text-left focus:border-indigo-500"),y(d,"type","text"),y(u,"class","flex justify-end w-3/6"),y(c,"class","crd-itm-psn"),y(b,"class","w-4/6"),y(_,"class","ipt-rnd text-left focus:border-indigo-500"),y(_,"type","text"),y(k,"class","flex justify-end w-3/6"),y($,"class","crd-itm-psn"),y(S,"class","w-4/6"),y(C,"class","ipt-rnd text-left focus:border-indigo-500"),y(C,"type","text"),y(E,"class","flex justify-end w-3/6"),y(q,"class","crd-itm-psn"),y(M,"class","w-4/6"),y(P,"class","ipt-rnd text-left focus:border-indigo-500"),y(P,"type","text"),y(H,"class","flex justify-end w-3/6"),y(O,"class","crd-itm-psn"),y(B,"class","w-4/6"),y(R,"class","ipt-rnd text-left focus:border-indigo-500"),y(R,"type","text"),y(z,"class","flex justify-end w-3/6"),y(D,"class","crd-itm-psn"),y(W,"class","btn-lg")},m(s,g){p(s,e,g),f(e,n),f(e,l),f(e,r),Z.m(r,null),p(s,o,g),p(s,c,g),f(c,i),f(c,a),f(c,u),f(u,d),J(d,t[0].mqttServer),p(s,m,g),p(s,$,g),f($,b),f($,x),f($,k),f(k,_),J(_,t[0].mqttPort),p(s,j,g),p(s,q,g),f(q,S),f(q,T),f(q,E),f(E,C),J(C,t[0].mqttPrefix),p(s,L,g),p(s,O,g),f(O,M),f(O,N),f(O,H),f(H,P),J(P,t[0].mqttUser),p(s,A,g),p(s,D,g),f(D,B),f(D,I),f(D,z),f(z,R),J(R,t[0].mqttPass),p(s,F,g),p(s,W,g),U||(Y=[v(d,"input",t[15]),v(_,"input",t[16]),v(C,"input",t[17]),v(P,"input",t[18]),v(R,"input",t[19]),v(W,"click",t[20])],U=!0)},p(t,e){Q!==(Q=K(t))&&(Z.d(1),Z=Q(t),Z&&(Z.c(),Z.m(r,null))),5&e&&d.value!==t[0].mqttServer&&J(d,t[0].mqttServer),5&e&&_.value!==t[0].mqttPort&&J(_,t[0].mqttPort),5&e&&C.value!==t[0].mqttPrefix&&J(C,t[0].mqttPrefix),5&e&&P.value!==t[0].mqttUser&&J(P,t[0].mqttUser),5&e&&R.value!==t[0].mqttPass&&J(R,t[0].mqttPass)},d(t){t&&g(e),Z.d(),t&&g(o),t&&g(c),t&&g(m),t&&g($),t&&g(j),t&&g(q),t&&g(L),t&&g(O),t&&g(A),t&&g(D),t&&g(F),t&&g(W),U=!1,s(Y)}}}function Ue(e){let n,s,l;return{c(){n=h("button"),n.textContent="Перезагрузить устройство",y(n,"class","btn-lg")},m(t,r){p(t,n,r),s||(l=v(n,"click",e[21]),s=!0)},p:t,d(t){t&&g(n),s=!1,l()}}}function Ye(t){let e,n,s,l;const r=[Pe,He],o=[];function c(t,e){return t[3]?0:1}return e=c(t),n=o[e]=r[e](t),{c(){n.c(),s=x()},m(t,n){o[e].m(t,n),p(t,s,n),l=!0},p(t,[l]){let i=e;e=c(t),e===i?o[e].p(t,l):(Q(),V(o[i],1,1,(()=>{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function Ke(t,e,n){let{settingsJson:s}=e,{errorsJson:l}=e,{ssidJson:r}=e,{show:o}=e,{ssidClick:c=(()=>{})}=e,{saveSett:i=(()=>{})}=e,{saveMqtt:a=(()=>{})}=e,{rebootEsp:u=(()=>{})}=e;return t.$$set=t=>{"settingsJson"in t&&n(0,s=t.settingsJson),"errorsJson"in t&&n(1,l=t.errorsJson),"ssidJson"in t&&n(2,r=t.ssidJson),"show"in t&&n(3,o=t.show),"ssidClick"in t&&n(4,c=t.ssidClick),"saveSett"in t&&n(5,i=t.saveSett),"saveMqtt"in t&&n(6,a=t.saveMqtt),"rebootEsp"in t&&n(7,u=t.rebootEsp)},[s,l,r,o,c,i,a,u,function(){s.name=this.value,n(0,s),n(2,r)},function(){s.apssid=this.value,n(0,s),n(2,r)},function(){s.appass=this.value,n(0,s),n(2,r)},function(){s.routerssid=q(this),n(0,s),n(2,r)},()=>c(),function(){s.routerpass=this.value,n(0,s),n(2,r)},()=>i(),function(){s.mqttServer=this.value,n(0,s),n(2,r)},function(){s.mqttPort=this.value,n(0,s),n(2,r)},function(){s.mqttPrefix=this.value,n(0,s),n(2,r)},function(){s.mqttUser=this.value,n(0,s),n(2,r)},function(){s.mqttPass=this.value,n(0,s),n(2,r)},()=>a(),()=>u()]}class Qe extends lt{constructor(t){super(),st(this,t,Ke,Ye,r,{settingsJson:0,errorsJson:1,ssidJson:2,show:3,ssidClick:4,saveSett:5,saveMqtt:6,rebootEsp:7})}}function Ze(t,e,n){const s=t.slice();return s[13]=e[n],s[15]=n,s}function Ge(e){let n,s;return n=new Ot({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function Ve(t){let e,n,s,l,r;return n=new Dt({props:{title:"Список устройств",$$slots:{default:[en]},$$scope:{ctx:t}}}),l=new Ot({props:{$$slots:{default:[nn]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),s=w(),tt(l.$$.fragment),y(e,"class","grd-1col1")},m(t,o){p(t,e,o),et(n,e,null),f(e,s),et(l,e,null),r=!0},p(t,e){const s={};65591&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s);const r={};65536&e&&(r.$$scope={dirty:e,ctx:t}),l.$set(r)},i(t){r||(G(n.$$.fragment,t),G(l.$$.fragment,t),r=!0)},o(t){V(n.$$.fragment,t),V(l.$$.fragment,t),r=!1},d(t){t&&g(e),nt(n),nt(l)}}}function Xe(t){let e,n,s,l,r,o,c,i,a,u,d,m,$,x,v,k,J,j,q,S=t[13].name+"",T=t[13].ip+"",E=t[13].id+"",C=t[13].status?"online":"offline";return j=new St({props:{click:function(){return t[7](t[15])}}}),{c(){e=h("tr"),n=h("td"),s=b(S),l=w(),r=h("td"),o=h("a"),c=b(T),a=w(),u=h("td"),d=b(E),m=w(),$=h("td"),x=b(C),k=w(),J=h("td"),tt(j.$$.fragment),y(n,"class","tbl-bdy-lg ipt-lg w-full"),y(o,"href",i="http://"+t[13].ip),y(r,"class","tbl-bdy-lg ipt-lg w-full"),y(u,"class","tbl-bdy-lg ipt-lg w-full"),y($,"class",v="tbl-bdy-lg ipt-lg w-full "+(t[13].status?"bg-green-50":"bg-red-50")),y(J,"class","tbl-bdy-lg"),y(e,"class","txt-sz txt-pad")},m(t,i){p(t,e,i),f(e,n),f(n,s),f(e,l),f(e,r),f(r,o),f(o,c),f(e,a),f(e,u),f(u,d),f(e,m),f(e,$),f($,x),f(e,k),f(e,J),et(j,J,null),q=!0},p(e,n){t=e,(!q||1&n)&&S!==(S=t[13].name+"")&&_(s,S),(!q||1&n)&&T!==(T=t[13].ip+"")&&_(c,T),(!q||1&n&&i!==(i="http://"+t[13].ip))&&y(o,"href",i),(!q||1&n)&&E!==(E=t[13].id+"")&&_(d,E),(!q||1&n)&&C!==(C=t[13].status?"online":"offline")&&_(x,C),(!q||1&n&&v!==(v="tbl-bdy-lg ipt-lg w-full "+(t[13].status?"bg-green-50":"bg-red-50")))&&y($,"class",v)},i(t){q||(G(j.$$.fragment,t),q=!0)},o(t){V(j.$$.fragment,t),q=!1},d(t){t&&g(e),nt(j)}}}function tn(t){let e,n,l,r,o,c,i,a,u,d,m,$,b;return{c(){e=h("tr"),n=h("td"),l=h("input"),r=w(),o=h("td"),c=h("input"),i=w(),a=h("td"),u=h("input"),d=w(),m=h("td"),y(l,"class","ipt-lg w-full"),y(l,"type","text"),y(n,"class","tbl-bdy-lg"),y(c,"class","ipt-lg w-full"),y(c,"type","text"),y(o,"class","tbl-bdy-lg"),y(u,"class","ipt-lg w-full"),y(u,"type","text"),y(a,"class","tbl-bdy-lg"),y(m,"class","tbl-bdy-lg"),y(e,"class","txt-sz txt-pad")},m(s,g){p(s,e,g),f(e,n),f(n,l),J(l,t[2].name),f(e,r),f(e,o),f(o,c),J(c,t[2].ip),f(e,i),f(e,a),f(a,u),J(u,t[2].id),f(e,d),f(e,m),$||(b=[v(l,"input",t[8]),v(c,"input",t[9]),v(u,"input",t[10])],$=!0)},p(t,e){4&e&&l.value!==t[2].name&&J(l,t[2].name),4&e&&c.value!==t[2].ip&&J(c,t[2].ip),4&e&&u.value!==t[2].id&&J(u,t[2].id)},d(t){t&&g(e),$=!1,s(b)}}}function en(t){let e,n,l,r,o,c,i,a,u,d,$,x,k,J=t[1]?"Сохранить":"Добавить устройство",j=t[0],q=[];for(let e=0;eV(q[t],1,1,(()=>{q[t]=null}));let T=t[1]&&tn(t);return{c(){e=h("table"),n=h("thead"),n.innerHTML='Название устройства \n IP адрес \n Идентификатор \n Состояние \n ',l=w(),r=h("tbody");for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function ln(t,e,n){let{show:s}=e,{deviceList:l}=e,{showInput:r}=e,{newDevice:o={}}=e,{addDevInList:c=(()=>{})}=e,{sendToAllDevices:i=(t=>{})}=e;function a(t){for(let e=0;e{"show"in t&&n(3,s=t.show),"deviceList"in t&&n(0,l=t.deviceList),"showInput"in t&&n(1,r=t.showInput),"newDevice"in t&&n(2,o=t.newDevice),"addDevInList"in t&&n(4,c=t.addDevInList),"sendToAllDevices"in t&&n(5,i=t.sendToAllDevices)},[l,r,o,s,c,i,a,t=>a(t),function(){o.name=this.value,n(2,o)},function(){o.ip=this.value,n(2,o)},function(){o.id=this.value,n(2,o)},()=>(n(1,r=!r),c()),t=>i("/reboot|")]}class rn extends lt{constructor(t){super(),st(this,t,ln,sn,r,{show:3,deviceList:0,showInput:1,newDevice:2,addDevInList:4,sendToAllDevices:5})}}function on(t,e,n){const s=t.slice();return s[9]=e[n][0],s[10]=e[n][1],s}function cn(e){let n,s;return n=new Ot({props:{title:"Загрузка..."}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function an(t){let e,n,s,l,r,o,c,i;return n=new Dt({props:{title:"Системная информация",$$slots:{default:[$n]},$$scope:{ctx:t}}}),l=new Dt({props:{title:"Системные ошибки",$$slots:{default:[yn]},$$scope:{ctx:t}}}),c=new Dt({props:{$$slots:{default:[kn]},$$scope:{ctx:t}}}),{c(){e=h("div"),tt(n.$$.fragment),s=w(),tt(l.$$.fragment),r=w(),o=h("div"),tt(c.$$.fragment),y(e,"class","grd-2col1"),y(o,"class","grd-1col1")},m(t,a){p(t,e,a),et(n,e,null),f(e,s),et(l,e,null),p(t,r,a),p(t,o,a),et(c,o,null),i=!0},p(t,e){const s={};8195&e&&(s.$$scope={dirty:e,ctx:t}),n.$set(s);const r={};8210&e&&(r.$$scope={dirty:e,ctx:t}),l.$set(r);const o={};8196&e&&(o.$$scope={dirty:e,ctx:t}),c.$set(o)},i(t){i||(G(n.$$.fragment,t),G(l.$$.fragment,t),G(c.$$.fragment,t),i=!0)},o(t){V(n.$$.fragment,t),V(l.$$.fragment,t),V(c.$$.fragment,t),i=!1},d(t){t&&g(e),nt(n),nt(l),t&&g(r),t&&g(o),nt(c)}}}function un(t){let e;return{c(){e=h("p"),e.textContent="не подключено",y(e,"class","text-red-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function dn(t){let e;return{c(){e=h("p"),e.textContent="нет сигнала",y(e,"class","text-red-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function fn(t){let e;return{c(){e=h("p"),e.textContent="очень низкий",y(e,"class","text-red-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function pn(t){let e;return{c(){e=h("p"),e.textContent="низкий",y(e,"class","text-yellow-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function gn(t){let e;return{c(){e=h("p"),e.textContent="хороший",y(e,"class","text-yellow-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function mn(t){let e;return{c(){e=h("p"),e.textContent="очень хороший",y(e,"class","text-green-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function hn(t){let e;return{c(){e=h("p"),e.textContent="отличный",y(e,"class","text-green-500 font-bold")},m(t,n){p(t,e,n)},d(t){t&&g(e)}}}function $n(t){let e,n,s,l,r,o,c,i,a,u,d,m,$,x,v,k,J,j,q,S,T,E,C,L,O,M,N,H,P,A,D,B,I,z,R,F,W,U,Y,K,Q,Z,G,V,X,tt,et,nt,st,lt,rt,ot,ct,it,at,ut,dt,ft,pt,gt=t[1].bn+"",mt=t[1].bver+"",ht=t[1].upt+"",$t=t[1].uptm+"",bt=t[1].heap+"",wt=t[1].fl+"",xt=0===t[1].rssi&&un(),vt=1===t[1].rssi&&dn(),yt=2===t[1].rssi&&fn(),kt=3===t[1].rssi&&pn(),_t=4===t[1].rssi&&gn(),Jt=5===t[1].rssi&&mn(),jt=6===t[1].rssi&&hn();return{c(){e=h("div"),n=h("div"),n.innerHTML='

Название прошивки

',s=w(),l=h("div"),r=h("p"),o=b(gt),c=w(),i=h("div"),a=h("div"),a.innerHTML='

Версия прошивки

',u=w(),d=h("div"),m=h("p"),$=b(mt),x=w(),v=h("div"),k=h("div"),k.innerHTML='

Версия файловой системы

',J=w(),j=h("div"),q=h("p"),S=b(t[0]),T=w(),E=h("div"),C=h("div"),C.innerHTML='

Uptime устройства

',L=w(),O=h("div"),M=h("p"),N=b(ht),H=w(),P=h("div"),A=h("div"),A.innerHTML='

Uptime сессии mqtt

',D=w(),B=h("div"),I=h("p"),z=b($t),R=w(),F=h("div"),W=h("div"),W.innerHTML='

Качество WiFi сигнала

',U=w(),Y=h("div"),xt&&xt.c(),K=w(),vt&&vt.c(),Q=w(),yt&&yt.c(),Z=w(),kt&&kt.c(),G=w(),_t&&_t.c(),V=w(),Jt&&Jt.c(),X=w(),jt&&jt.c(),tt=w(),et=h("div"),nt=h("div"),nt.innerHTML='

Остаток оперативной памяти

',st=w(),lt=h("div"),rt=h("p"),ot=b(bt),ct=w(),it=h("div"),at=h("div"),at.innerHTML='

Количество записей на flash

',ut=w(),dt=h("div"),ft=h("p"),pt=b(wt),y(n,"class","w-3/4"),y(r,"class","text-gray-500 font-bold"),y(l,"class","flex justify-center w-1/4"),y(e,"class","crd-itm-psn"),y(a,"class","w-3/4"),y(m,"class","text-gray-500 font-bold"),y(d,"class","flex justify-center w-1/4"),y(i,"class","crd-itm-psn"),y(k,"class","w-3/4"),y(q,"class","text-gray-500 font-bold"),y(j,"class","flex justify-center w-1/4"),y(v,"class","crd-itm-psn"),y(C,"class","w-3/4"),y(M,"class","text-gray-500 font-bold"),y(O,"class","flex justify-center w-1/4"),y(E,"class","crd-itm-psn"),y(A,"class","w-3/4"),y(I,"class","text-gray-500 font-bold"),y(B,"class","flex justify-center w-1/4"),y(P,"class","crd-itm-psn"),y(W,"class","w-3/4"),y(Y,"class","flex justify-center w-1/4 text-xs sm:text-sm md:text-base lg:text-base xl:text-base 2xl:text-base break-words"),y(F,"class","crd-itm-psn"),y(nt,"class","w-3/4"),y(rt,"class","text-green-500 font-bold"),y(lt,"class","flex justify-center w-1/4"),y(et,"class","crd-itm-psn"),y(at,"class","w-3/4"),y(ft,"class","text-green-500 font-bold"),y(dt,"class","flex justify-center w-1/4"),y(it,"class","crd-itm-psn")},m(t,g){p(t,e,g),f(e,n),f(e,s),f(e,l),f(l,r),f(r,o),p(t,c,g),p(t,i,g),f(i,a),f(i,u),f(i,d),f(d,m),f(m,$),p(t,x,g),p(t,v,g),f(v,k),f(v,J),f(v,j),f(j,q),f(q,S),p(t,T,g),p(t,E,g),f(E,C),f(E,L),f(E,O),f(O,M),f(M,N),p(t,H,g),p(t,P,g),f(P,A),f(P,D),f(P,B),f(B,I),f(I,z),p(t,R,g),p(t,F,g),f(F,W),f(F,U),f(F,Y),xt&&xt.m(Y,null),f(Y,K),vt&&vt.m(Y,null),f(Y,Q),yt&&yt.m(Y,null),f(Y,Z),kt&&kt.m(Y,null),f(Y,G),_t&&_t.m(Y,null),f(Y,V),Jt&&Jt.m(Y,null),f(Y,X),jt&&jt.m(Y,null),p(t,tt,g),p(t,et,g),f(et,nt),f(et,st),f(et,lt),f(lt,rt),f(rt,ot),p(t,ct,g),p(t,it,g),f(it,at),f(it,ut),f(it,dt),f(dt,ft),f(ft,pt)},p(t,e){2&e&>!==(gt=t[1].bn+"")&&_(o,gt),2&e&&mt!==(mt=t[1].bver+"")&&_($,mt),1&e&&_(S,t[0]),2&e&&ht!==(ht=t[1].upt+"")&&_(N,ht),2&e&&$t!==($t=t[1].uptm+"")&&_(z,$t),0===t[1].rssi?xt||(xt=un(),xt.c(),xt.m(Y,K)):xt&&(xt.d(1),xt=null),1===t[1].rssi?vt||(vt=dn(),vt.c(),vt.m(Y,Q)):vt&&(vt.d(1),vt=null),2===t[1].rssi?yt||(yt=fn(),yt.c(),yt.m(Y,Z)):yt&&(yt.d(1),yt=null),3===t[1].rssi?kt||(kt=pn(),kt.c(),kt.m(Y,G)):kt&&(kt.d(1),kt=null),4===t[1].rssi?_t||(_t=gn(),_t.c(),_t.m(Y,V)):_t&&(_t.d(1),_t=null),5===t[1].rssi?Jt||(Jt=mn(),Jt.c(),Jt.m(Y,X)):Jt&&(Jt.d(1),Jt=null),6===t[1].rssi?jt||(jt=hn(),jt.c(),jt.m(Y,null)):jt&&(jt.d(1),jt=null),2&e&&bt!==(bt=t[1].heap+"")&&_(ot,bt),2&e&&wt!==(wt=t[1].fl+"")&&_(pt,wt)},d(t){t&&g(e),t&&g(c),t&&g(i),t&&g(x),t&&g(v),t&&g(T),t&&g(E),t&&g(H),t&&g(P),t&&g(R),t&&g(F),xt&&xt.d(),vt&&vt.d(),yt&&yt.d(),kt&&kt.d(),_t&&_t.d(),Jt&&Jt.d(),jt&&jt.d(),t&&g(tt),t&&g(et),t&&g(ct),t&&g(it)}}}function bn(t){let e,n;function s(){return t[6](t[9])}return e=new Ot({props:{title:t[5][t[9]][t[10]].descr,cross:t[5][t[9]][t[10]].cancel,close:s,$$slots:{default:[xn]},$$scope:{ctx:t}}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(n,l){t=n;const r={};2&l&&(r.title=t[5][t[9]][t[10]].descr),2&l&&(r.cross=t[5][t[9]][t[10]].cancel),18&l&&(r.close=s),8194&l&&(r.$$scope={dirty:l,ctx:t}),e.$set(r)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function wn(t){let e,n,s="Количество: "+t[1][t[9]+"n"];return{c(){e=h("p"),n=b(s),y(e,"class","break-words text-center")},m(t,s){p(t,e,s),f(e,n)},p(t,e){2&e&&s!==(s="Количество: "+t[1][t[9]+"n"])&&_(n,s)},d(t){t&&g(e)}}}function xn(t){let e,n,s,l,r=t[5][t[9]][t[10]].txt+"",o=t[5][t[9]][t[10]].num&&wn(t);return{c(){e=h("p"),n=b(r),s=w(),o&&o.c(),l=w(),y(e,"class","break-words text-center")},m(t,r){p(t,e,r),f(e,n),p(t,s,r),o&&o.m(t,r),p(t,l,r)},p(t,e){2&e&&r!==(r=t[5][t[9]][t[10]].txt+"")&&_(n,r),t[5][t[9]][t[10]].num?o?o.p(t,e):(o=wn(t),o.c(),o.m(l.parentNode,l)):o&&(o.d(1),o=null)},d(t){t&&g(e),t&&g(s),o&&o.d(t),t&&g(l)}}}function vn(t){let e,n,s=t[9]in t[5]&&t[10]in t[5][t[9]]&&bn(t);return{c(){s&&s.c(),e=x()},m(t,l){s&&s.m(t,l),p(t,e,l),n=!0},p(t,n){t[9]in t[5]&&t[10]in t[5][t[9]]?s?(s.p(t,n),2&n&&G(s,1)):(s=bn(t),s.c(),G(s,1),s.m(e.parentNode,e)):s&&(Q(),V(s,1,1,(()=>{s=null})),Z())},i(t){n||(G(s),n=!0)},o(t){V(s),n=!1},d(t){s&&s.d(t),t&&g(e)}}}function yn(t){let e,n,s=Object.entries(t[1]),l=[];for(let e=0;eV(l[t],1,1,(()=>{l[t]=null}));return{c(){e=h("div");for(let t=0;t{o[i]=null})),Z(),n=o[e],n?n.p(t,l):(n=o[e]=r[e](t),n.c()),G(n,1),n.m(s.parentNode,s))},i(t){l||(G(n),l=!0)},o(t){V(n),l=!1},d(t){o[e].d(t),t&&g(s)}}}function Jn(t,e,n){let{version:s}=e,{errorsJson:l}=e,{rebootEsp:r=(()=>{})}=e,{show:o}=e,{cancelAlarm:c=(t=>{})}=e;return t.$$set=t=>{"version"in t&&n(0,s=t.version),"errorsJson"in t&&n(1,l=t.errorsJson),"rebootEsp"in t&&n(2,r=t.rebootEsp),"show"in t&&n(3,o=t.show),"cancelAlarm"in t&&n(4,c=t.cancelAlarm)},[s,l,r,o,c,{mqtt:{e1:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Нет ответа от сервера",cancel:!1},e2:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Соединение было разорвано",cancel:!1},e3:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Ошибка соединения. Обычно возникает когда неверно указано название сервера MQTT",cancel:!1},e4:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Клиент был отключен",cancel:!1},e6:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Ошибка версии",cancel:!1},e7:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Отклонен идентификатор",cancel:!1},e8:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Не могу установить соединение",cancel:!1},e9:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Неправильное имя пользователя/пароль"},e10:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Не авторизован для подключения",cancel:!1},e11:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Название сервера пустое",cancel:!1},e12:{descr:"Ошибка mqtt",color:"text-red-500",txt:"Имя пользователя или пароль пустые",cancel:!1},e13:{descr:"Mqtt",color:"text-red-500",txt:"Подключение в процессе",cancel:!1}},wse1:{1:{descr:"Ошибка веб сокетов",color:"text-red-500",txt:"Слишком много клиентов было открыто. Допускается не более четырех.",cancel:!0}},jse1:{1:{descr:"Ошибка json",color:"text-red-500",txt:"Недостаточный размер буфера библиотеки Arduino Json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",cancel:!0}},jse2:{1:{descr:"Ошибка json",color:"text-red-500",txt:"Ошибка записи/чтения json. Устройство может вести себя непредсказуемо. Обратитесь к разработчику.",cancel:!0,num:!0}},jse3:{1:{descr:"Ошибка json",color:"text-red-500",txt:"Ошибка чтения файла json с виджетами",cancel:!0}}},t=>c(t),()=>r()]}class jn extends lt{constructor(t){super(),st(this,t,Jn,_n,r,{version:0,errorsJson:1,rebootEsp:2,show:3,cancelAlarm:4})}}function qn(e){let n,s,l,r;return{c(){n=$("svg"),s=$("path"),y(s,"d","M7 18a4.6 4.4 0 0 1 0 -9h0a5 4.5 0 0 1 11 2h1a3.5 3.5 0 0 1 0 7h-12"),y(n,"class",l="h-8 w-8 "+e[0]),y(n,"width","8"),y(n,"height","8"),y(n,"viewBox",r=e[1]+" "+e[2]+" 24 24"),y(n,"stroke-width","2"),y(n,"stroke","currentColor"),y(n,"fill","none"),y(n,"stroke-linecap","round"),y(n,"stroke-linejoin","round")},m(t,e){p(t,n,e),f(n,s)},p(t,[e]){1&e&&l!==(l="h-8 w-8 "+t[0])&&y(n,"class",l),6&e&&r!==(r=t[1]+" "+t[2]+" 24 24")&&y(n,"viewBox",r)},i:t,o:t,d(t){t&&g(n)}}}function Sn(t,e,n){let{color:s}=e,{x:l=0}=e,{y:r=0}=e;return t.$$set=t=>{"color"in t&&n(0,s=t.color),"x"in t&&n(1,l=t.x),"y"in t&&n(2,r=t.y)},[s,l,r]}class Tn extends lt{constructor(t){super(),st(this,t,Sn,qn,r,{color:0,x:1,y:2})}}function En(t,e,n){const s=t.slice();return s[108]=e[n],s}function Cn(t){let e,n;return e=new Nt({}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Ln(t){let e,n,s,l,r=t[108].name+"";return{c(){e=h("option"),n=b(r),s=w(),e.__value=l=t[108].ws,e.value=e.__value},m(t,l){p(t,e,l),f(e,n),f(e,s)},p(t,s){32768&s[0]&&r!==(r=t[108].name+"")&&_(n,r),32768&s[0]&&l!==(l=t[108].ws)&&(e.__value=l,e.value=e.__value)},d(t){t&&g(e)}}}function On(t){let e,n,s,l,r,o,c,i,a,u;return e=new Jt({props:{path:"/",$$slots:{default:[Nn]},$$scope:{ctx:t}}}),s=new Jt({props:{path:"/config",$$slots:{default:[Hn]},$$scope:{ctx:t}}}),r=new Jt({props:{path:"/connection",$$slots:{default:[Pn]},$$scope:{ctx:t}}}),c=new Jt({props:{path:"/list",$$slots:{default:[An]},$$scope:{ctx:t}}}),a=new Jt({props:{path:"/system",$$slots:{default:[Dn]},$$scope:{ctx:t}}}),{c(){tt(e.$$.fragment),n=w(),tt(s.$$.fragment),l=w(),tt(r.$$.fragment),o=w(),tt(c.$$.fragment),i=w(),tt(a.$$.fragment)},m(t,d){et(e,t,d),p(t,n,d),et(s,t,d),p(t,l,d),et(r,t,d),p(t,o,d),et(c,t,d),p(t,i,d),et(a,t,d),u=!0},p(t,n){const l={};2060&n[0]|262144&n[3]&&(l.$$scope={dirty:n,ctx:t}),e.$set(l);const o={};1808&n[0]|262144&n[3]&&(o.$$scope={dirty:n,ctx:t}),s.$set(o);const i={};28704&n[0]|262144&n[3]&&(i.$$scope={dirty:n,ctx:t}),r.$set(i);const u={};294976&n[0]|262144&n[3]&&(u.$$scope={dirty:n,ctx:t}),c.$set(u);const d={};8320&n[0]|262144&n[3]&&(d.$$scope={dirty:n,ctx:t}),a.$set(d)},i(t){u||(G(e.$$.fragment,t),G(s.$$.fragment,t),G(r.$$.fragment,t),G(c.$$.fragment,t),G(a.$$.fragment,t),u=!0)},o(t){V(e.$$.fragment,t),V(s.$$.fragment,t),V(r.$$.fragment,t),V(c.$$.fragment,t),V(a.$$.fragment,t),u=!1},d(t){nt(e,t),t&&g(n),nt(s,t),t&&g(l),nt(r,t),t&&g(o),nt(c,t),t&&g(i),nt(a,t)}}}function Mn(e){let n,s;return n=new Ot({props:{title:"Нет соединения"}}),{c(){tt(n.$$.fragment)},m(t,e){et(n,t,e),s=!0},p:t,i(t){s||(G(n.$$.fragment,t),s=!0)},o(t){V(n.$$.fragment,t),s=!1},d(t){nt(n,t)}}}function Nn(t){let e,n;return e=new pe({props:{show:t[3],layoutJson:t[11],pages:t[2],wsPush:t[35]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};8&n[0]&&(s.show=t[3]),2048&n[0]&&(s.layoutJson=t[11]),4&n[0]&&(s.pages=t[2]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Hn(t){let e,n;return e=new Me({props:{show:t[4],configJson:t[8],widgetsJson:t[9],itemsJson:t[10],saveConfig:t[36],rebootEsp:t[37]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};16&n[0]&&(s.show=t[4]),256&n[0]&&(s.configJson=t[8]),512&n[0]&&(s.widgetsJson=t[9]),1024&n[0]&&(s.itemsJson=t[10]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Pn(t){let e,n;return e=new Qe({props:{show:t[5],rebootEsp:t[38],ssidClick:t[39],saveSett:t[40],saveMqtt:t[41],settingsJson:t[12],errorsJson:t[13],ssidJson:t[14]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};32&n[0]&&(s.show=t[5]),4096&n[0]&&(s.settingsJson=t[12]),8192&n[0]&&(s.errorsJson=t[13]),16384&n[0]&&(s.ssidJson=t[14]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function An(t){let e,n;return e=new rn({props:{show:t[6],deviceList:t[15],showInput:zn,addDevInList:t[42],newDevice:t[18],sendToAllDevices:t[43]}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};64&n[0]&&(s.show=t[6]),32768&n[0]&&(s.deviceList=t[15]),262144&n[0]&&(s.newDevice=t[18]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Dn(t){let e,n;return e=new jn({props:{show:t[7],errorsJson:t[13],rebootEsp:t[44],cancelAlarm:t[45],version:In}}),{c(){tt(e.$$.fragment)},m(t,s){et(e,t,s),n=!0},p(t,n){const s={};128&n[0]&&(s.show=t[7]),8192&n[0]&&(s.errorsJson=t[13]),e.$set(s)},i(t){n||(G(e.$$.fragment,t),n=!0)},o(t){V(e.$$.fragment,t),n=!1},d(t){nt(e,t)}}}function Bn(t){let e,n,l,r,o,c,i,a,u,d,$,b,x,k,_,J,q,S,T,E,C,L,O,M,N,H,P,A,D,B,z,R,F,W,U,Y,K,X,st,lt,rt,ot,ct=t[19]&&Cn(),it=t[15],at=[];for(let e=0;e",_=w(),J=h("ul"),q=h("li"),S=h("a"),S.textContent="Управление",T=w(),E=h("li"),C=h("a"),C.textContent="Конфигуратор",L=w(),O=h("li"),M=h("a"),M.textContent="Подключение",N=w(),H=h("li"),P=h("a"),P.textContent="Устройства",A=w(),D=h("li"),B=h("a"),B.textContent="Системные",z=w(),R=h("main"),F=h("ul"),W=h("div"),Y.c(),X=w(),st=h("footer"),st.innerHTML='
Developed by Dmitry Borisenko
',y(c,"class","border border-indigo-500 border-4"),void 0===t[17]&&I((()=>t[31].call(c))),y(o,"class","px-15 py-1"),y(a,"class","pl-4 pr-4 py-1"),y(r,"class","flex content-center items-center justify-end"),y(l,"class","h-10 w-full bg-gray-100 overflow-auto shadow-md"),y(b,"id","menu__toggle"),y(b,"type","checkbox"),y(k,"class","menu__btn"),y(k,"for","menu__toggle"),y(S,"class","menu__item"),y(S,"href","/"),y(C,"class","menu__item"),y(C,"href","/config"),y(M,"class","menu__item"),y(M,"href","/connection"),y(P,"class","menu__item"),y(P,"href","/list"),y(B,"class","menu__item"),y(B,"href","/system"),y(J,"class","menu__box"),y($,"class","flex"),y(W,"class","bg-cover pt-0 px-4"),y(F,"class","menu__main"),y(R,"class",K="flex-1 overflow-y-auto p-0 "+(!0!==t[0]||t[1]?"ml-0":"ml-36")),y(st,"class","h-4 bg-gray-100 border-gray-200 shadow-lg"),y(e,"class","flex flex-col h-screen bg-gray-50")},m(s,g){p(s,e,g),ct&&ct.m(e,null),f(e,n),f(e,l),f(l,r),f(r,o),f(o,c);for(let t=0;t{ct=null})),Z()),32768&s[0]){let e;for(it=t[15],e=0;e{dt[r]=null})),Z(),Y=dt[U],Y?Y.p(t,s):(Y=dt[U]=ut[U](t),Y.c()),G(Y,1),Y.m(W,null)),(!lt||3&s[0]&&K!==(K="flex-1 overflow-y-auto p-0 "+(!0!==t[0]||t[1]?"ml-0":"ml-36")))&&y(R,"class",K)},i(t){lt||(G(ct),G(u.$$.fragment,t),G(Y),lt=!0)},o(t){V(ct),V(u.$$.fragment,t),V(Y),lt=!1},d(t){t&&g(e),ct&&ct.d(),m(at,t),nt(u),dt[U].d(),rt=!1,s(ot)}}}let In=404,zn=!1;function Rn(t,e,n){let s;o(t,bt,(t=>n(73,s=t))),bt.mode.hash();let l=!1,r=!1,c=document.location.hostname,i=!0,a=[],u=!1,d=!1,f=!1,p=!1,g=!1,m=[],h=!1,$=!1,b=[],w=!1,x=!1,v=[],y=!1,k=!1,_=[],J=!1,j=!1,S={},T=!1,E={},L=!1,O={},M=!1,N={},H=!1,P=[],A=!1,D=[];D=[{name:"--",id:"--",ip:c,ws:0,status:!1}];let B,I=[],z=!1,R=0,F=!0,W={};var U=function(){this.parts=[]};let Y;U.prototype.append=function(t){this.parts.push(t),this.blob=void 0},U.prototype.getBlob=function(){return this.blob||(this.blob=new Blob(this.parts,{type:"binary"})),this.blob},U.prototype.clear=function(){this.parts=[]};var K=new U,Q=new U,Z=new U,G=new U;function V(){void 0!==R&&ft(R,Y)}function X(){wt(R);let t=0;D.forEach((e=>{e.ws=t,e.status||(et(t),st(t)),t++})),n(15,D)}function tt(t,e){D.forEach((n=>{n.ws===t&&(n.status=e,n.status?console.log("[i]",n.ip,"status online"):console.log("[i]",n.ip,"status offline"))})),n(15,D),wt(R),n(16,z=B.status)}function et(t){let e=nt(t);"error"===e?console.log("[e]","device list wrong"):(I[t]=new WebSocket("ws://"+e+":81"),I.binaryType="blob",console.log("[i]",e,t,"started connecting..."))}function nt(t){let e="error";return D.forEach((n=>{t===n.ws&&(e=n.ip)})),e}function st(t){if(I[t]){let e=nt(t);console.log("[i]",e,t,"web socket events added"),I[t].addEventListener("open",(function(n){console.log("[i]",e,t,"completed connecting"),tt(t,!0),i&&ft(0,"/list|"),t===R&&V()})),I[t].addEventListener("message",(function(e){if("string"==typeof e.data){let c=e.data;if(t===R){if(c.includes("devicelist")&&vt(c)&&(P=JSON.parse(c),P=P,A=!0,console.log("✔","incDeviceList json parced"),lt(),i?(n(15,D=P),n(15,D[0].status=!0,D)):n(15,(l=D,r=P,o=new Set(l.map((t=>t.ip))),D=[...l,...r.filter((t=>!o.has(t.ip)))])),i=!1,n(15,D),ht(),X()),c.includes("status")&&vt(c)){!function(t){for(let e=0;e<_.length;e++){if(_[e].topic===t.topic){n(11,_[e].status=t.status,_);break}}}(JSON.parse(c)),mt(),console.log("✔","statusJson parced"),lt()}if(c.includes("params")&&vt(c)&&(N=JSON.parse(c),console.log("✔","paramsJson parced",t),H=!0,lt()),c.includes("ssid")&&vt(c)&&(n(14,O=JSON.parse(c)),n(14,O),console.log("✔","ssidJson parced"),M=!0,lt()),c.includes("errors")&&vt(c)&&(n(13,E=JSON.parse(c)),n(13,E),L=!0,console.log("✔","errorsJson json parced"),lt()),c.includes("settings")&&vt(c)&&(n(12,S=JSON.parse(c)),n(12,S),mt(),T=!0,console.log("✔","settingsJson json parced"),lt()),"/st/config.json"===c&&(h=!0),"/end/config.json"===c){h=!1;var s=K.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;vt(e)&&(n(8,m=JSON.parse(e)),n(8,m),$=!0,console.log("✔","configJson parced"),lt())}}if("/st/widgets.json"===c&&(w=!0),"/end/widgets.json"===c){w=!1;s=Q.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;vt(e)&&(n(9,b=JSON.parse(e)),n(9,b),x=!0,console.log("✔","widgetsJson parced"),lt())}}if("/st/items.json"===c&&(y=!0),"/end/items.json"===c){y=!1;s=Z.getBlob();let t=new FileReader;t.readAsText(s),t.onload=()=>{let e=t.result;vt(e)&&(n(10,v=JSON.parse(e)),n(10,v),k=!0,console.log("✔","itemsJson parced"),lt())}}if("/st/layout.json"===c&&(J=!0),"/end/layout.json"===c){J=!1;s=G.getBlob();let e=new FileReader;e.readAsText(s),e.onload=()=>{let s=e.result;vt(s)&&(n(11,_=JSON.parse(s)),n(11,_),mt(),j=!0,console.log("✔","layoutJson parced",t),lt())}}}}var l,r,o;e.data instanceof Blob&&t===R&&(h&&K.append(e.data),w&&Q.append(e.data),y&&Z.append(e.data),J&&G.append(e.data))})),I[t].addEventListener("close",(n=>{console.log("[e]",e,"connection closed"),tt(t,!1)})),I[t].addEventListener("error",(function(n){console.log("[e]",e,"connection error"),tt(t,!1)}))}else console.log("[e]","socket not exist")}function lt(t){"/|"===Y&&j&&H&&(at(),console.log("✔✔","dashboard data parced"),function(t){for(const[e,s]of Object.entries(t))for(let t=0;t<_.length;t++){let l=_[t].topic;if(l=l.substring(l.lastIndexOf("/")+1,l.length),e===l){console.log("[i]","value "+l+" updated"),n(11,_[t].status=s,_);break}}}(N),mt(),n(3,u=!0)),"/config|"===Y&&k&&x&&$&&T&&(at(),console.log("✔✔","config data parced"),n(4,d=!0)),"/connection|"===Y&&M&&T&&L&&(at(),console.log("✔✔","connection data parced"),n(5,f=!0)),"/list|"===Y&&A&&(at(),console.log("✔✔","list data parced"),n(6,p=!0)),"/system|"===Y&&L&&(at(),console.log("✔✔","system data parced"),n(7,g=!0))}function rt(){ft(R,"/tuoyal|"+JSON.stringify(function(){let t=[];for(let e=0;e5?(!function(t,e,n,s,l){for(let r=0;r5?ft(R,"/sgnittes|"+JSON.stringify(S)):window.alert("Ошибка"),it(),ft(R,"/mqtt|")}function it(){n(8,m=[]),K.clear(),n(9,b=[]),Q.clear(),n(10,v=[]),Z.clear(),n(11,_=[]),G.clear(),n(12,S={}),n(13,E={}),n(3,u=!1),n(4,d=!1),n(5,f=!1),n(6,p=!1),n(7,g=!1),at(),console.log("[i]","all app data cleared")}function at(){$=!1,x=!1,k=!1,j=!1,T=!1,L=!1,M=!1,H=!1,A=!1}function ut(t,e,n){let s=e+" "+n;console.log("[i]","send to ws msg:",s),ft(t,s)}function dt(){setTimeout(dt,2e4),console.log("[i]","----timer tick----"),F||D.forEach((t=>{!function(t){let e=!1;return D.forEach((n=>{t===n.ws&&(e=n.status)})),e}(t.ws)?(et(t.ws),st(t.ws)):ft(t.ws,"/tst|")})),F=!1}function ft(t,e){I[t]&&1===I[t].readyState?(I[t].send(e),console.log("[i]",nt(t),t,"msg send success",e)):console.log("[e]",nt(t),t,"msg not send",e)}function pt(t){D.forEach((e=>{e.status&&ft(e.ws,t)}))}function gt(){n(2,a=[]);Array.from(new Set(Array.from(_,(({page:t})=>t)))).forEach((function(t,e,s){n(2,a=[...a,JSON.parse(JSON.stringify({page:t}))])})),a.sort((function(t,e){return t.pagee.page?1:0}))}function mt(){gt(),n(11,_)}function ht(){wt(R),n(16,z=B.status)}function $t(){ht(),it(),V(),console.log("[i]","user selected device:",B.name),B.ip===c&&console.log("[i]","user selected original device",B.name)}function wt(t){for(let e=0;e{console.log("[i]","mounted"),ht(),i=!0,X(),dt(),gt()}));return[l,r,a,u,d,f,p,g,m,b,v,_,S,E,O,D,z,R,W,_t,rt,ot,ct,ut,pt,$t,xt,yt,kt,jt,St,function(){R=q(this),n(17,R),n(15,D)},()=>$t(),function(){l=this.checked,n(0,l)},()=>yt(),(t,e,n)=>ut(t,e,n),()=>rt(),()=>jt(),()=>jt(),()=>kt(),()=>ot(),()=>ct(),()=>xt(),t=>pt(t),()=>jt(),t=>St(t)]}return new class extends lt{constructor(t){super(),st(this,t,Rn,Bn,r,{},null,[-1,-1,-1,-1])}}({target:document.body,props:{name:"world"}})}(); //# sourceMappingURL=bundle.js.map diff --git a/data_svelte/favicon.ico b/data_svelte/favicon.ico new file mode 100644 index 00000000..50d908fa Binary files /dev/null and b/data_svelte/favicon.ico differ diff --git a/data_svelte/favicon.png b/data_svelte/favicon.png deleted file mode 100644 index 7e6f5eb5..00000000 Binary files a/data_svelte/favicon.png and /dev/null differ diff --git a/data_svelte/index.html b/data_svelte/index.html index a9c8fd65..ddf9fb00 100644 --- a/data_svelte/index.html +++ b/data_svelte/index.html @@ -4,9 +4,9 @@ - Svelte app + IoT Manager - + diff --git a/data_svelte/settings.json b/data_svelte/settings.json index 69296ea5..db2cc192 100644 --- a/data_svelte/settings.json +++ b/data_svelte/settings.json @@ -1,4 +1,5 @@ { + "settings": "", "name": "IoTmanagerVer4", "apssid": "IoTmanager", "appass": "", diff --git a/include/Const.h b/include/Const.h index fdd1b9c8..69b0c54b 100644 --- a/include/Const.h +++ b/include/Const.h @@ -1,10 +1,18 @@ #pragma once //Это версия прошивки -#define FIRMWARE_VERSION 403 +#define FIRMWARE_VERSION 404 + +#ifdef esp8266_4mb +#define FIRMWARE_NAME "esp8266_4mb" +#endif + +#ifdef esp32_4mb +#define FIRMWARE_NAME "esp32_4mb" +#endif //Размер буфера json -#define JSON_BUFFER_SIZE 1024 +#define JSON_BUFFER_SIZE 2048 //выбор сервера //#define ASYNC_WEB_SERVER diff --git a/include/Global.h b/include/Global.h index beeb9a5f..a53c9c65 100644 --- a/include/Global.h +++ b/include/Global.h @@ -55,7 +55,6 @@ *****************************************глобальные объекты классов*************************************************** **********************************************************************************************************************/ - extern TickerScheduler ts; extern WiFiClient espClient; extern PubSubClient mqtt; @@ -104,6 +103,7 @@ extern String mqttUser; extern String mqttPass; extern unsigned long mqttUptime; +extern unsigned long flashWriteNumber; extern String mqttRootDevice; extern String chipId; diff --git a/include/classes/ScenarioClass3.h b/include/classes/ScenarioClass3.h index 4e25cc83..80b2446d 100644 --- a/include/classes/ScenarioClass3.h +++ b/include/classes/ScenarioClass3.h @@ -70,8 +70,8 @@ class Scenario { oneBlock = deleteBeforeDelimiter(oneBlock, "\n"); oneBlock.replace("end", ""); - // SerialPrint("I", "Event done", incommingEvent); - SerialPrint("I", F("Scenario"), F("All conditions are matched")); + // SerialPrint("i", "Event done", incommingEvent); + SerialPrint("i", F("Scenario"), F("All conditions are matched")); spaceCmdExecute(oneBlock); } @@ -124,8 +124,8 @@ class Scenario { oneBlock = deleteBeforeDelimiter(oneBlock, "\n"); oneBlock.replace("end", ""); - // SerialPrint("I", "Event done", incommingEvent); - SerialPrint("I", F("Scenario"), F("One of all condition are matched")); + // SerialPrint("i", "Event done", incommingEvent); + SerialPrint("i", F("Scenario"), F("One of all condition are matched")); spaceCmdExecute(oneBlock); } @@ -135,8 +135,8 @@ class Scenario { oneBlock = deleteBeforeDelimiter(oneBlock, "\n"); oneBlock.replace("end", ""); - // SerialPrint("I", "Event done", incommingEvent); - SerialPrint("I", F("Scenario"), "Condition are matched: " + condition); + // SerialPrint("i", "Event done", incommingEvent); + SerialPrint("i", F("Scenario"), "Condition are matched: " + condition); spaceCmdExecute(oneBlock); } @@ -146,8 +146,8 @@ class Scenario { oneBlock = deleteBeforeDelimiter(oneBlock, "\n"); oneBlock.replace("end", ""); - // SerialPrint("I", "Event done", incommingEvent); - SerialPrint("I", F("Scenario"), "Condition are matched: " + condition); + // SerialPrint("i", "Event done", incommingEvent); + SerialPrint("i", F("Scenario"), "Condition are matched: " + condition); spaceCmdExecute(oneBlock); } } diff --git a/include/utils/FileUtils.h b/include/utils/FileUtils.h index 76492b9a..4fbcf93d 100644 --- a/include/utils/FileUtils.h +++ b/include/utils/FileUtils.h @@ -9,4 +9,5 @@ extern const String writeFile(const String& filename, const String& str); extern const String readFile(const String& filename, size_t max_size); extern const String filepath(const String& filename); extern bool cutFile(const String& src, const String& dst); -extern const String addFileLn(const String& filename, const String& str); \ No newline at end of file +extern const String addFileLn(const String& filename, const String& str); +extern void onFlashWrite(); \ No newline at end of file diff --git a/src/Buffers.cpp b/src/Buffers.cpp index bcdd3cce..fa7041b9 100644 --- a/src/Buffers.cpp +++ b/src/Buffers.cpp @@ -8,7 +8,7 @@ void eventGen2(String eventName, String eventValue) { String event = eventName + " " + eventValue + ","; eventBuf += event; - SerialPrint("I", "Event add", eventName + " " + eventValue); + SerialPrint("i", "Event add", eventName + " " + eventValue); if (jsonReadBool(settingsFlashJson, "MqttOut")) { if (eventName != "timenow") { @@ -25,7 +25,7 @@ void spaceCmdExecute(String& cmdStr) { String buf = selectToMarker(cmdStr, "\n"); if (buf != "") { sCmd.readStr(buf); - SerialPrint("I", F("Order done W"), buf); + SerialPrint("i", F("Order done W"), buf); } cmdStr = deleteBeforeDelimiter(cmdStr, "\n"); } diff --git a/src/DeviceList.cpp b/src/DeviceList.cpp index 5098aca7..e193a0df 100644 --- a/src/DeviceList.cpp +++ b/src/DeviceList.cpp @@ -12,6 +12,7 @@ const String getThisDevice() { void addThisDeviceToList() { devListHeapJson = getThisDevice(); + SerialPrint("i", "List", "Add this dev to list"); } #ifdef UDP_ENABLED @@ -61,7 +62,7 @@ void asyncUdpInit() { }, nullptr, true); - SerialPrint("I", F("UDP"), F("Udp Init")); + SerialPrint("i", F("UDP"), F("Udp Init")); } bool udpPacketValidation(String& data) { diff --git a/src/ESPConfiguration.cpp b/src/ESPConfiguration.cpp index 436f8a82..16279a8b 100644 --- a/src/ESPConfiguration.cpp +++ b/src/ESPConfiguration.cpp @@ -14,27 +14,32 @@ void configure(String path) { if (jsonArrayElement.startsWith(",")) { jsonArrayElement = jsonArrayElement.substring(1, jsonArrayElement.length()); //это нужно оптимизировать в последствии } - - String subtype; - if (!jsonRead(jsonArrayElement, F("subtype"), subtype)) { //если нет такого ключа в представленном json или он не валидный - SerialPrint(F("E"), F("Config"), "json error " + subtype); - continue; - } else { - myIoTItem = (IoTItem*)getAPI(subtype, jsonArrayElement); - if (myIoTItem) { - IoTGpio* tmp = myIoTItem->getGpioDriver(); - if (tmp) IoTgpio.regDriver(tmp); - IoTItems.push_back(myIoTItem); + if (jsonArrayElement == "]}") { + jsonArrayElement = ""; + } + if (jsonArrayElement != "") { + String subtype; + if (!jsonRead(jsonArrayElement, F("subtype"), subtype)) { //если нет такого ключа в представленном json или он не валидный + SerialPrint(F("E"), F("Config"), "json error " + subtype); + continue; + } else { + myIoTItem = (IoTItem*)getAPI(subtype, jsonArrayElement); + if (myIoTItem) { + IoTGpio* tmp = myIoTItem->getGpioDriver(); + if (tmp) IoTgpio.regDriver(tmp); + IoTItems.push_back(myIoTItem); + } } } } file.close(); + SerialPrint("i", "Config", "Configured"); } void clearConfigure() { Serial.printf("Start clearing config\n"); for (unsigned int i = 0; i < IoTItems.size(); i++) { - if (IoTItems[i]) delete IoTItems[i]; + if (IoTItems[i]) delete IoTItems[i]; } IoTItems.clear(); } \ No newline at end of file diff --git a/src/EspFileSystem.cpp b/src/EspFileSystem.cpp index ae4704f9..05ea75e3 100644 --- a/src/EspFileSystem.cpp +++ b/src/EspFileSystem.cpp @@ -18,8 +18,6 @@ void globalVarsSync() { jsonWriteStr_(settingsFlashJson, "root", mqttRootDevice); jsonWriteStr_(settingsFlashJson, "id", chipId); - syncSettingsFlashJson(); - jsonWriteStr_(errorsHeapJson, "errors", ""); //метка для парсинга jsonWriteStr_(ssidListHeapJson, "ssid", ""); //метка для парсинга jsonWriteStr(paramsHeapJson, "params", ""); //метка для парсинга @@ -39,7 +37,7 @@ const String getChipId() { void setChipId() { chipId = getChipId(); - SerialPrint("I", "System", "id: " + chipId); + SerialPrint("i", "System", "id: " + chipId); } const String getUniqueId(const char* name) { diff --git a/src/Global.cpp b/src/Global.cpp index 5667cf67..28d8b2b9 100644 --- a/src/Global.cpp +++ b/src/Global.cpp @@ -54,7 +54,8 @@ String mqttPrefix = ""; String mqttUser = ""; String mqttPass = ""; -unsigned long mqttUptime; +unsigned long mqttUptime = 0; +unsigned long flashWriteNumber = 0; String chipId = ""; String prex = ""; diff --git a/src/Main.cpp b/src/Main.cpp index e965fbf8..e7f46b3c 100644 --- a/src/Main.cpp +++ b/src/Main.cpp @@ -23,9 +23,6 @@ void setup() { //подключаемся к роутеру routerConnect(); - //запустим один раз асинхронное сканирование сетей wifi для веба - RouterFind(jsonReadStr(settingsFlashJson, F("routerssid"))); - //инициализация асинхронного веб сервера и веб сокетов #ifdef ASYNC_WEB_SERVER asyncWebServerInit(); @@ -51,9 +48,6 @@ void setup() { //инициализация задач переодического выполнения periodicTasksInit(); - //окончательнаясинхронизация настроек - syncSettingsFlashJson(); - //синхронизация списка устройств addThisDeviceToList(); diff --git a/src/MqttClient.cpp b/src/MqttClient.cpp index 74909dee..96c276b6 100644 --- a/src/MqttClient.cpp +++ b/src/MqttClient.cpp @@ -6,9 +6,9 @@ void mqttInit() { WIFI_MQTT_CONNECTION_CHECK, MQTT_RECONNECT_INTERVAL, [&](void*) { if (WiFi.status() == WL_CONNECTED) { - SerialPrint("I", F("WIFI"), F("OK")); + SerialPrint("i", F("WIFI"), F("OK")); if (mqtt.connected()) { - SerialPrint("I", F("MQTT"), "OK"); + SerialPrint("i", F("MQTT"), "OK"); handleMqttStatus(false); static unsigned int prevMillis; @@ -48,10 +48,10 @@ boolean mqttConnect() { return res; } - SerialPrint("I", "MQTT", "connection started"); + SerialPrint("i", "MQTT", "connection started"); - SerialPrint("I", "MQTT", "broker " + mqttServer + ":" + String(mqttPort, DEC)); - SerialPrint("I", "MQTT", "topic " + mqttRootDevice); + SerialPrint("i", "MQTT", "broker " + mqttServer + ":" + String(mqttPort, DEC)); + SerialPrint("i", "MQTT", "topic " + mqttRootDevice); // setLedStatus(LED_FAST); @@ -61,10 +61,10 @@ boolean mqttConnect() { bool connected = false; if (mqttUser != "" && mqttPass != "") { connected = mqtt.connect(chipId.c_str(), mqttUser.c_str(), mqttPass.c_str()); - SerialPrint("I", F("MQTT"), F("Go to connection with login and password")); + SerialPrint("i", F("MQTT"), F("Go to connection with login and password")); } else if (mqttUser == "" && mqttPass == "") { connected = mqtt.connect(chipId.c_str()); - SerialPrint("I", F("MQTT"), F("Go to connection without login and password")); + SerialPrint("i", F("MQTT"), F("Go to connection without login and password")); } else { SerialPrint("E", F("MQTT"), F("✖ Login or password missed")); handleMqttStatus(true, 7); @@ -72,7 +72,7 @@ boolean mqttConnect() { } if (mqtt.state() == 0) { - SerialPrint("I", F("MQTT"), F("✔ connected")); + SerialPrint("i", F("MQTT"), F("✔ connected")); handleMqttStatus(true); // setLedStatus(LED_OFF); mqttSubscribe(); @@ -87,7 +87,7 @@ boolean mqttConnect() { } void mqttDisconnect() { - SerialPrint("I", F("MQTT"), F("disconnected")); + SerialPrint("i", F("MQTT"), F("disconnected")); mqtt.disconnect(); } @@ -104,8 +104,8 @@ void getMqttData() { } void mqttSubscribe() { - SerialPrint("I", F("MQTT"), F("subscribed")); - SerialPrint("I", F("MQTT"), mqttRootDevice); + SerialPrint("i", F("MQTT"), F("subscribed")); + SerialPrint("i", F("MQTT"), mqttRootDevice); mqtt.subscribe(mqttPrefix.c_str()); mqtt.subscribe((mqttRootDevice + "/+/control").c_str()); mqtt.subscribe((mqttRootDevice + "/update").c_str()); @@ -119,17 +119,17 @@ void mqttSubscribe() { void mqttCallback(char* topic, uint8_t* payload, size_t length) { String topicStr = String(topic); - // SerialPrint("I", "=>MQTT", topicStr); + // SerialPrint("i", "=>MQTT", topicStr); String payloadStr; payloadStr.reserve(length + 1); for (size_t i = 0; i < length; i++) { payloadStr += (char)payload[i]; } - // SerialPrint("I", "=>MQTT", payloadStr); + // SerialPrint("i", "=>MQTT", payloadStr); if (payloadStr.startsWith("HELLO")) { - SerialPrint("I", F("MQTT"), F("Full update")); + SerialPrint("i", F("MQTT"), F("Full update")); publishWidgets(); publishState(); #ifdef GATE_MODE @@ -151,7 +151,7 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) { // // loopCmdAdd(order); // - // SerialPrint("I", F("=>MQTT"), "Msg from iotmanager app: " + key + " " + payloadStr); + // SerialPrint("i", F("=>MQTT"), "Msg from iotmanager app: " + key + " " + payloadStr); //} // // else if (topicStr.indexOf("event") != -1) { @@ -161,7 +161,7 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) { // if (topicStr.indexOf(chipId) == -1) { // String devId = selectFromMarkerToMarker(topicStr, "/", 2); // String key = selectFromMarkerToMarker(topicStr, "/", 3); - // SerialPrint("I", F("=>MQTT"), "Received event from other device: '" + devId + "' " + key + " " + payloadStr); + // SerialPrint("i", F("=>MQTT"), "Received event from other device: '" + devId + "' " + key + " " + payloadStr); // String event = key + " " + payloadStr + ","; // eventBuf += event; // } @@ -173,17 +173,17 @@ void mqttCallback(char* topic, uint8_t* payload, size_t length) { // } // String devId = selectFromMarkerToMarker(topicStr, "/", 2); // String key = selectFromMarkerToMarker(topicStr, "/", 3); - // SerialPrint("I", F("=>MQTT"), "Received direct order " + key + " " + payloadStr); + // SerialPrint("i", F("=>MQTT"), "Received direct order " + key + " " + payloadStr); // String order = key + " " + payloadStr + ","; // loopCmdAdd(order); - // SerialPrint("I", "Order add", order); + // SerialPrint("i", "Order add", order); //} // // else if (topicStr.indexOf("info") != -1) { // if (topicStr.indexOf("scen") != -1) { // writeFile(String(DEVICE_SCENARIO_FILE), payloadStr); // loadScenario(); - // SerialPrint("I", F("=>MQTT"), F("Scenario received")); + // SerialPrint("i", F("=>MQTT"), F("Scenario received")); // } //} } diff --git a/src/PeriodicTasks.cpp b/src/PeriodicTasks.cpp index f4178621..19611021 100644 --- a/src/PeriodicTasks.cpp +++ b/src/PeriodicTasks.cpp @@ -14,11 +14,15 @@ void periodicTasksInit() { // uptime jsonWriteStr_(errorsHeapJson, F("upt"), prettyMillis(millis())); jsonWriteStr_(errorsHeapJson, F("uptm"), prettyMillis(mqttUptime)); + // flash + jsonWriteInt_(errorsHeapJson, F("fl"), flashWriteNumber); // build ver jsonWriteStr_(errorsHeapJson, F("bver"), String(FIRMWARE_VERSION)); + jsonWriteStr_(errorsHeapJson, F("bn"), String(FIRMWARE_NAME)); periodicWsSend(); }, nullptr, true); + SerialPrint("i", "Task", "Periodic tasks init"); } void handleError(String errorId, String errorValue) { @@ -43,7 +47,11 @@ void printGlobalVarSize() { size_t halfBuffer = JSON_BUFFER_SIZE / 2; - if (settingsFlashJsonSize > halfBuffer || errorsHeapJsonSize > halfBuffer || paramsFlashJsonSize > halfBuffer || paramsHeapJsonSize > halfBuffer) { + if (settingsFlashJsonSize > halfBuffer || + errorsHeapJsonSize > halfBuffer || + paramsFlashJsonSize > halfBuffer || + paramsHeapJsonSize > halfBuffer || + devListHeapJsonSize > halfBuffer) { SerialPrint(F("EE"), F("Json"), F("Insufficient buffer size!!!")); jsonWriteInt(errorsHeapJson, "jse1", 1); } diff --git a/src/WsServer.cpp b/src/WsServer.cpp index a619ea34..be5d6c99 100644 --- a/src/WsServer.cpp +++ b/src/WsServer.cpp @@ -66,7 +66,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) sendFileToWs("/items.json", num, 1024); sendFileToWs("/widgets.json", num, 1024); sendFileToWs("/config.json", num, 1024); - sendFileToWs("/settings.json", num, 1024); + standWebSocket.sendTXT(num, settingsFlashJson); } //**сохранение**// if (headerStr == "/gifnoc|") { @@ -77,7 +77,7 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) // page connection=================================================================== //**отправка**// if (headerStr == "/connection|") { - sendFileToWs("/settings.json", num, 1024); + standWebSocket.sendTXT(num, settingsFlashJson); standWebSocket.sendTXT(num, ssidListHeapJson); standWebSocket.sendTXT(num, errorsHeapJson); //запуск асинхронного сканирования wifi сетей при переходе на страницу соединений @@ -85,11 +85,10 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } //**сохранение**// if (headerStr == "/sgnittes|") { - writeFileUint8tByFrames("settings.json", payload, length, headerLenth, 256); writeUint8tToString(payload, length, headerLenth, settingsFlashJson); + writeFileUint8tByFrames("settings.json", payload, length, headerLenth, 256); standWebSocket.sendTXT(num, errorsHeapJson); addThisDeviceToList(); - // settingsFlashJson = readFile(F("settings.json"), 4096); } //**отправка**// if (headerStr == "/scan|") { @@ -99,10 +98,10 @@ void webSocketEvent(uint8_t num, WStype_t type, uint8_t* payload, size_t length) } //**сохранение**// if (headerStr == "/mqtt|") { - sendFileToWs("/settings.json", num, 1024); //отправляем в ответ новые полученные настройки - handleMqttStatus(false, 8); //меняем статус на неопределенный - mqttReconnect(); //начинаем переподключение - standWebSocket.sendTXT(num, errorsHeapJson); //отправляем что статус неопределен + standWebSocket.sendTXT(num, settingsFlashJson); //отправляем в ответ новые полученные настройки + handleMqttStatus(false, 8); //меняем статус на неопределенный + mqttReconnect(); //начинаем переподключение + standWebSocket.sendTXT(num, errorsHeapJson); //отправляем что статус неопределен standWebSocket.sendTXT(num, ssidListHeapJson); } // page list ========================================================================== diff --git a/src/classes/IoTItem.cpp b/src/classes/IoTItem.cpp index 8831584e..5f9f0895 100644 --- a/src/classes/IoTItem.cpp +++ b/src/classes/IoTItem.cpp @@ -47,7 +47,7 @@ void IoTItem::regEvent(String value, String consoleInfo = "") { jsonWriteStr(paramsHeapJson, _id, value); publishStatusMqtt(_id, value); publishStatusWs(_id, value); - SerialPrint("I", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'"); + SerialPrint("i", "Sensor " + consoleInfo, "'" + _id + "' data: " + value + "'"); } void IoTItem::regEvent(float value, String consoleInfo = "") { @@ -73,13 +73,13 @@ void IoTItem::regEvent(float value, String consoleInfo = "") { void IoTItem::doByInterval() {} -IoTValue IoTItem::execute(String command, std::vector ¶m) { return {};} +IoTValue IoTItem::execute(String command, std::vector& param) { return {}; } IoTItem* findIoTItem(String name) { // поиск элемента модуля в существующей конфигурации for (unsigned int i = 0; i < IoTItems.size(); i++) { - if(IoTItems[i]->getID() == name) return IoTItems[i]; + if (IoTItems[i]->getID() == name) return IoTItems[i]; } - + return nullptr; } diff --git a/src/utils/FileUtils.cpp b/src/utils/FileUtils.cpp index d6bc6a37..f097d61c 100644 --- a/src/utils/FileUtils.cpp +++ b/src/utils/FileUtils.cpp @@ -21,6 +21,7 @@ void writeFileUint8tByFrames(const String& filename, uint8_t*& big_buf, size_t l yield(); } file.close(); + onFlashWrite(); } // void writeStrValueToJsonFile(const String& filename, String key, String value) { @@ -75,6 +76,7 @@ void writeFileUint8tByByte(const String& filename, uint8_t*& payload, size_t len } } file.close(); + onFlashWrite(); } File seekFile(const String& filename, size_t position) { @@ -96,6 +98,7 @@ const String writeFile(const String& filename, const String& str) { file.print(str); file.close(); return "sucсess"; + onFlashWrite(); } const String readFile(const String& filename, size_t max_size) { @@ -139,6 +142,7 @@ bool cutFile(const String& src, const String& dst) { srcFile.close(); dstFile.close(); FileFS.remove(srcPath); + onFlashWrite(); return true; } @@ -150,5 +154,11 @@ const String addFileLn(const String& filename, const String& str) { } file.println(str); file.close(); + onFlashWrite(); return "sucсess"; +} + +void onFlashWrite() { + flashWriteNumber++; + SerialPrint(F("->"), F("FS"), F("write data on flash")); } \ No newline at end of file